Create FTP - Account when creating domain
diff -ruN vhcs2.orig/engine/vhcs2_common_code.pl vhcs2/engine/vhcs2_common_code.pl
--- vhcs2.orig/engine/vhcs2_common_code.pl 2006-05-16 16:37:11.000000000 +0500
+++ vhcs2/engine/vhcs2_common_code.pl 2006-05-17 21:07:26.000000000 +0500
@@ -1783,7 +1783,7 @@
my $sys_group = "$suexec_user_pref$sys_gid";
- my ($dmn_uid, $dmn_gid) = (@$dmn_data[3], @$dmn_data[2]);
+ my ($dmn_id, $dmn_name, $dmn_gid, $dmn_uid) = @$dmn_data;
my $dmn_id = @$dmn_data[0];
@@ -1816,7 +1816,19 @@
($rs, $rdata) = doSQL($sql);
return $rs if ($rs != 0);
-
+
+ $sql = "update ftp_users set uid='$sys_uid', gid='$sys_gid' where userid='$dmn_name' and gid=0";
+
+ ($rs, $rdata) = doSQL($sql);
+
+ return $rs if ($rs != 0);
+
+ $sql = "update ftp_group set gid='$sys_gid' where groupname='$dmn_name' and gid=0";
+
+ ($rs, $rdata) = doSQL($sql);
+
+ return $rs if ($rs != 0);
+
}
push_el(\@main::el, 'add_dmn_suexec_user()', 'Ending...');
diff -ruN vhcs2.orig/gui/client/add_ftp_acc.php vhcs2/gui/client/add_ftp_acc.php
--- vhcs2.orig/gui/client/add_ftp_acc.php 2006-05-16 16:37:11.000000000 +0500
+++ vhcs2/gui/client/add_ftp_acc.php 2006-05-17 19:28:39.000000000 +0500
@@ -204,146 +204,6 @@
}
}
-function get_ftp_user_gid(&$sql, $dmn_name, $ftp_user)
-{
- global $cfg;
- global $last_gid;
- global $max_gid;
-
- $query = <<<SQL_QUERY
- select gid, members from ftp_group where groupname = ?
-SQL_QUERY;
-
- $rs = exec_query($sql, $query, array($dmn_name));
-
- if ($rs -> RecordCount() == 0) { // there is no such group. we'll need a new one.
- list($temp_dmn_id,
- $temp_dmn_name,
- $temp_dmn_gid,
- $temp_dmn_uid,
- $temp_dmn_created_id,
- $temp_dmn_created,
- $temp_dmn_last_modified,
- $temp_dmn_mailacc_limit,
- $temp_dmn_ftpacc_limit,
- $temp_dmn_traff_limit,
- $temp_dmn_sqld_limit,
- $temp_dmn_sqlu_limit,
- $temp_dmn_status,
- $temp_dmn_als_limit,
- $temp_dmn_subd_limit,
- $temp_dmn_ip_id,
- $temp_dmn_disk_limit,
- $temp_dmn_disk_usage,
- $temp_dmn_php,
- $temp_dmn_cgi) = get_domain_default_props($sql, $_SESSION['user_id']);
-
-
- $query = <<<SQL_QUERY
- insert into ftp_group
- (groupname, gid, members)
- values
- (?, ?, ?)
-SQL_QUERY;
-
- $rs = exec_query($sql, $query, array($dmn_name, $temp_dmn_gid, $ftp_user));
-
- // add entries in the quota tables
- // first check if we have it by one or other reason
- $query = "SELECT count(name) as cnt from quotalimits where name=?";
- $rs = exec_query($sql, $query, array($temp_dmn_name));
- if ($rs -> fields['cnt'] == 0 ) {
- // ok insert it
- if ($temp_dmn_disk_limit == 0) {
- $dlim = 0;
- }
- else {
- $dlim = $temp_dmn_disk_limit*1024*1024;
- }
-
- $query = <<<SQL_QUERY
- INSERT INTO quotalimits
- (name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail)
- VALUES
- (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-SQL_QUERY;
-
- $rs = exec_query($sql, $query, array($temp_dmn_name, 'group', 'false', 'hard', $dlim, 0, 0, 0, 0, 0));
- }
-
- return $temp_dmn_gid;
-
- } else {
-
- $ftp_gid = $rs -> fields['gid'];
- $members = $rs -> fields['members'];
-
- if (preg_match("/".$ftp_user."/", $members) == 0) {
- $members .= ",$ftp_user";
- }
-
- $query = <<<SQL_QUERY
- update
- ftp_group
- set
- members = ?
- where
- gid = ?
- and
- groupname = ?
-SQL_QUERY;
-
- $rs = exec_query($sql, $query, array($members, $ftp_gid, $dmn_name));
- return $ftp_gid;
- }
-}
-
-function get_ftp_user_uid(&$sql, $dmn_name, $ftp_user, $ftp_user_gid)
-{
- global $cfg;
- global $max_uid;
-
- $query = <<<SQL_QUERY
- select
- uid
- from
- ftp_users
- where
- userid = ?
- and
- gid = ?
-SQL_QUERY;
-
- $rs = exec_query($sql, $query, array($ftp_user, $ftp_user_gid));
- if ($rs -> RecordCount() > 0) {
- set_page_message(tr('FTP account already exists!'));
- return -1;
- }
-
- list($temp_dmn_id,
- $temp_dmn_name,
- $temp_dmn_gid,
- $temp_dmn_uid,
- $temp_dmn_created_id,
- $temp_dmn_created,
- $temp_dmn_last_modified,
- $temp_dmn_mailacc_limit,
- $temp_dmn_ftpacc_limit,
- $temp_dmn_traff_limit,
- $temp_dmn_sqld_limit,
- $temp_dmn_sqlu_limit,
- $temp_dmn_status,
- $temp_dmn_als_limit,
- $temp_dmn_subd_limit,
- $temp_dmn_ip_id,
- $temp_dmn_disk_limit,
- $temp_dmn_disk_usage,
- $temp_dmn_php,
- $temp_dmn_cgi) = get_domain_default_props($sql, $_SESSION['user_id']);
-
- return $temp_dmn_uid;
-}
-
function add_ftp_user(&$sql, $dmn_name)
{
global $cfg;
diff -ruN vhcs2.orig/gui/include/client-functions.php vhcs2/gui/include/client-functions.php
--- vhcs2.orig/gui/include/client-functions.php 2006-05-16 16:37:11.000000000 +0500
+++ vhcs2/gui/include/client-functions.php 2006-05-17 19:44:46.000000000 +0500
@@ -15,8 +15,6 @@
// | |
// -------------------------------------------------------------------------------
-
-
function get_domain_default_props(&$sql, $domain_admin_id)
{
$query = <<<SQL_QUERY
@@ -72,6 +70,61 @@
}
+function get_domain_default_props_by_name(&$sql, $domain_name)
+{
+ $query = <<<SQL_QUERY
+ select
+ domain_id,
+ domain_name,
+ domain_gid,
+ domain_uid,
+ domain_created_id,
+ domain_created,
+ domain_last_modified,
+ domain_mailacc_limit,
+ domain_ftpacc_limit,
+ domain_traffic_limit,
+ domain_sqld_limit,
+ domain_sqlu_limit,
+ domain_status,
+ domain_alias_limit,
+ domain_subd_limit,
+ domain_ip_id,
+ domain_disk_limit,
+ domain_disk_usage,
+ domain_php,
+ domain_cgi
+ from
+ domain
+ where
+ domain_name = ?
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($domain_name));
+
+ return array($rs -> fields['domain_id'],
+ $rs -> fields['domain_name'],
+ $rs -> fields['domain_gid'],
+ $rs -> fields['domain_uid'],
+ $rs -> fields['domain_created_id'],
+ $rs -> fields['domain_created'],
+ $rs -> fields['domain_last_modified'],
+ $rs -> fields['domain_mailacc_limit'],
+ $rs -> fields['domain_ftpacc_limit'],
+ $rs -> fields['domain_traffic_limit'],
+ $rs -> fields['domain_sqld_limit'],
+ $rs -> fields['domain_sqlu_limit'],
+ $rs -> fields['domain_status'],
+ $rs -> fields['domain_alias_limit'],
+ $rs -> fields['domain_subd_limit'],
+ $rs -> fields['domain_ip_id'],
+ $rs -> fields['domain_disk_limit'],
+ $rs -> fields['domain_disk_usage'],
+ $rs -> fields['domain_php'],
+ $rs -> fields['domain_cgi']);
+
+}
+
function get_domain_running_sub_cnt(&$sql, $domain_id) {
$query = <<<SQL_QUERY
@@ -1031,4 +1084,127 @@
}
+
+function get_ftp_user_gid(&$sql, $dmn_name, $ftp_user)
+{
+ global $cfg;
+ global $last_gid;
+ global $max_gid;
+
+ $query = <<<SQL_QUERY
+ select gid, members from ftp_group where groupname = ?
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($dmn_name));
+
+ if ($rs -> RecordCount() == 0) { // there is no such group. we'll need a new one.
+ list($temp_dmn_id,
+ $temp_dmn_name,
+ $temp_dmn_gid,
+ $temp_dmn_uid,
+ $temp_dmn_created_id,
+ $temp_dmn_created,
+ $temp_dmn_last_modified,
+ $temp_dmn_mailacc_limit,
+ $temp_dmn_ftpacc_limit,
+ $temp_dmn_traff_limit,
+ $temp_dmn_sqld_limit,
+ $temp_dmn_sqlu_limit,
+ $temp_dmn_status,
+ $temp_dmn_als_limit,
+ $temp_dmn_subd_limit,
+ $temp_dmn_ip_id,
+ $temp_dmn_disk_limit) = get_domain_default_props_by_name($sql, $dmn_name);
+
+
+ $query = <<<SQL_QUERY
+ insert into ftp_group
+ (groupname, gid, members)
+ values
+ (?, ?, ?)
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($dmn_name, $temp_dmn_gid, $ftp_user));
+
+ // add entries in the quota tables
+ // first check if we have it by one or other reason
+ $query = "SELECT count(name) as cnt from quotalimits where name=?";
+ $rs = exec_query($sql, $query, array($temp_dmn_name));
+ if ($rs -> fields['cnt'] == 0 ) {
+ // ok insert it
+ if ($temp_dmn_disk_limit == 0) {
+ $dlim = 0;
+ }
+ else {
+ $dlim = $temp_dmn_disk_limit*1024*1024;
+ }
+
+ $query = <<<SQL_QUERY
+ INSERT INTO quotalimits
+ (name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail)
+ VALUES
+ (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($temp_dmn_name, 'group', 'false', 'hard', $dlim, 0, 0, 0, 0, 0));
+ }
+
+ return $temp_dmn_gid;
+
+ } else {
+
+ $ftp_gid = $rs -> fields['gid'];
+ $members = $rs -> fields['members'];
+
+ if (preg_match("/".$ftp_user."/", $members) == 0) {
+ $members .= ",$ftp_user";
+ }
+
+ $query = <<<SQL_QUERY
+ update
+ ftp_group
+ set
+ members = ?
+ where
+ gid = ?
+ and
+ groupname = ?
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($members, $ftp_gid, $dmn_name));
+ return $ftp_gid;
+ }
+}
+
+function get_ftp_user_uid(&$sql, $dmn_name, $ftp_user, $ftp_user_gid)
+{
+ global $cfg;
+ global $max_uid;
+
+ $query = <<<SQL_QUERY
+ select
+ uid
+ from
+ ftp_users
+ where
+ userid = ?
+ and
+ gid = ?
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($ftp_user, $ftp_user_gid));
+ if ($rs -> RecordCount() > 0) {
+ set_page_message(tr('FTP account already exists!'));
+ return -1;
+ }
+
+ list($temp_dmn_id,
+ $temp_dmn_name,
+ $temp_dmn_gid,
+ $temp_dmn_uid) = get_domain_default_props_by_name($sql, $dmn_name);
+
+ return $temp_dmn_uid;
+}
+
+
?>
diff -ruN vhcs2.orig/gui/reseller/rau3.php vhcs2/gui/reseller/rau3.php
--- vhcs2.orig/gui/reseller/rau3.php 2006-05-17 19:49:09.000000000 +0500
+++ vhcs2/gui/reseller/rau3.php 2006-05-17 22:21:36.000000000 +0500
@@ -735,6 +735,8 @@
au_update_reseller_props($reseller_id, $props);
+ add_default_ftp_user( $dmn_name, $pure_user_pass );
+
if (isset($_POST['add_alias']) && $_POST['add_alias'] === 'on'){
//we have to add some aliases for this looser
$_SESSION['dmn_id'] = $dmn_id;
@@ -749,5 +751,32 @@
}
} // End of add_user_data()
+
+function add_default_ftp_user($dmn_name, $password)
+{
+ global $sql, $cfg;
+
+ $ftp_user = $dmn_name;
+ $ftp_home = $cfg['FTP_HOMEDIR']."/$dmn_name";
+
+ $ftp_gid = get_ftp_user_gid($sql, $dmn_name, $ftp_user);
+ $ftp_uid = get_ftp_user_uid($sql, $dmn_name, $ftp_user, $ftp_gid);
+
+ if ($ftp_uid == -1) return;
+
+ $ftp_shell = $cfg['FTP_SHELL'];
+ $ftp_passwd = crypt_user_ftp_pass($password);
+ write_log("crypt_user_ftp_pass: $password -> $ftp_passwd");
+
+ $query = <<<SQL_QUERY
+ insert into ftp_users
+ (userid, passwd, uid, gid, shell, homedir)
+ values
+ (?, ?, ?, ?, ?, ?)
+SQL_QUERY;
+
+ $rs = exec_query($sql, $query, array($ftp_user, $ftp_passwd, $ftp_uid, $ftp_gid, $ftp_shell, $ftp_home));
+}
+
?>