bf65731f700a6da537814bf4bd8dcd1fc17296a5
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

1) <?php
2) 
3) require_once('inc/base.php');
4) 
5) function list_ftpusers()
6) {
7)   $uid = (int) $_SESSION['userinfo']['uid'];
bernd Erlaube unverschlüsselte FT...

bernd authored 12 years ago

8)   $result = db_query("SELECT id, username, homedir, active, forcessl FROM system.ftpusers WHERE uid=$uid");
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

9)   $ftpusers = array();
10)   while ($u = mysql_fetch_assoc($result)) {
11)     $ftpusers[] = $u;
12)   }
13)   return $ftpusers;
14) }
15) 
16) function empty_ftpuser()
17) {
18)   $myserver = my_server_id();
bernd Erlaube unverschlüsselte FT...

bernd authored 12 years ago

19)   return array("id" => "0", "username" => "", "password" => "", "homedir" => "", "active" => "1", "forcessl" => "1", "server" => $myserver);
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

20) }
21) 
22) function load_ftpuser($id)
23) {
24)   if ($id == 0)
25)     return empty_ftpuser();
26)   $uid = (int) $_SESSION['userinfo']['uid'];
27)   $id = (int) $id;
bernd Erlaube unverschlüsselte FT...

bernd authored 12 years ago

28)   $result = db_query("SELECT id, username, password, homedir, active, forcessl, server FROM system.ftpusers WHERE uid={$uid} AND id='{$id}' LIMIT 1");
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

29)   if (mysql_num_rows($result) != 1)
30)     system_failure("Fehler beim auslesen des Accounts");
31)   $account = mysql_fetch_assoc($result);
32)   DEBUG($account);
33)   return $account;
34) }
35) 
36) 
37) function save_ftpuser($data)
38) {
39)   $uid = (int) $_SESSION['userinfo']['uid'];
40)   $id = (int) $data['id'];
41)   verify_input_username($data['username']);
42)   if ($data['username'] == '')
43)     system_failure('Bitte geben Sie eine Erweiterung für den Benutzernamen an!');
44)   $username = $_SESSION['userinfo']['username'].'-'.$data['username'];
45)   $homedir = filter_input_general($data['homedir']);
46)   if (substr($homedir, 0, 1) == '/')
47)     $homedir = substr($homedir, 1);
48)   $homedir = $_SESSION['userinfo']['homedir'].'/'.$homedir;
49)   if (! in_homedir($homedir))
50)     system_failure('Pfad scheint nicht in Ihrem Home zu sein oder enthielt ungültige Zeichen.');
51)   $active = ($data['active'] == 1 ? '1' : '0');
52) 
bernd Erlaube unverschlüsselte FT...

bernd authored 12 years ago

53)   $forcessl = ($data['forcessl'] == 0 ? '0' : '1');
54) 
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

55)   $server = NULL;
56)   if ($data['server'] == my_server_id())
57)   {
58)     $server = NULL;
59)   }
60)   elseif (in_array($data['server'], additional_servers()))
61)   {
62)     $server = (int) $data['server'];
63)   }
64)   $server = maybe_null($server);
65) 
66)   $password_query = '';
67)   $password_hash = '';
68)   if ($data['password'] != '')
69)   {
bernd Auch FTP-User-Passwörter mi...

bernd authored 14 years ago

70)     if (defined("CRYPT_SHA512") && CRYPT_SHA512 == 1)
71)     {
72)       $rounds = rand(1000, 5000);
73)       $salt = "rounds=".$rounds."$".random_string(8);
74)       $password_hash = crypt($data['password'], "\$6\${$salt}\$");
75)     }
76)     else
77)     {
78)       $salt = random_string(8);
79)       $password_hash = crypt($data['password'], "\$1\${$salt}\$");
80)     }
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

81)     $password_query = "password='{$password_hash}', ";
82)   }
83)   elseif (! $id)
84)   {
85)     system_failure('Wenn Sie einen neuen Zugang anlegen, müssen Sie ein Passwort setzen');
86)   }
87)     
88)   
89)   if ($id)
bernd Erlaube unverschlüsselte FT...

bernd authored 12 years ago

90)     db_query("UPDATE system.ftpusers SET username='{$username}', {$password_query} homedir='{$homedir}', active='{$active}', forcessl='{$forcessl}', server={$server} WHERE id={$id} AND uid={$uid} LIMIT 1");
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

91)   else
bernd Erlaube unverschlüsselte FT...

bernd authored 12 years ago

92)     db_query("INSERT INTO system.ftpusers (username, password, homedir, uid, active, forcessl, server) VALUES ('{$username}', '{$password_hash}', '{$homedir}', '{$uid}', '{$active}', '{$forcessl}', {$server})");
bernd Verwaltung von FTP-Accounts...

bernd authored 14 years ago

93) }
94) 
95) 
96) function delete_ftpuser($id)
97) {
98)   $uid = (int) $_SESSION['userinfo']['uid'];
99)   $id = (int) $id;
100)   db_query("DELETE FROM system.ftpusers WHERE id='{$id}' AND uid={$uid} LIMIT 1");
101) }
102) 
103) 
104) function get_gid($groupname)
105) {
106)   $groupname = mysql_real_escape_string($groupname);
107)   $result = db_query("SELECT gid FROM system.gruppen WHERE name='{$groupname}' LIMIT 1");
108)   if (mysql_num_rows($result) != 1)
109)     system_failure('cannot determine gid of ftpusers group');
110)   $a = mysql_fetch_assoc($result);
111)   $gid = (int) $a['gid'];
112)   if ($gid == 0)
113)     system_failure('error on determining gid of ftpusers group');
114)   return $gid;
115) }
116) 
117) 
118) function have_regular_ftp()
119) {
120)   $gid = get_gid('ftpusers');
121)   $uid = (int) $_SESSION['userinfo']['uid'];
122)   $result = db_query("SELECT * FROM system.gruppenzugehoerigkeit WHERE gid='$gid' AND uid='$uid'");
123)   return (mysql_num_rows($result) > 0);
124) }
125) 
126) 
127) function enable_regular_ftp()
128) {
bernd Security-enhancements und a...

bernd authored 14 years ago

129)   require_role(ROLE_SYSTEMUSER);