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'];
8) $result = db_query("SELECT id, username, homedir, active FROM system.ftpusers WHERE uid=$uid");
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();
19) return array("id" => "0", "username" => "", "password" => "", "homedir" => "", "active" => "1", "server" => $myserver);
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;
28) $result = db_query("SELECT id, username, password, homedir, active, server FROM system.ftpusers WHERE uid={$uid} AND id='{$id}' LIMIT 1");
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)
53) $server = NULL;
54) if ($data['server'] == my_server_id())
55) {
56) $server = NULL;
57) }
58) elseif (in_array($data['server'], additional_servers()))
59) {
60) $server = (int) $data['server'];
61) }
62) $server = maybe_null($server);
63)
64) $password_query = '';
65) $password_hash = '';
66) if ($data['password'] != '')
67) {
|
Auch FTP-User-Passwörter mi...
bernd authored 14 years ago
|
68) if (defined("CRYPT_SHA512") && CRYPT_SHA512 == 1)
69) {
70) $rounds = rand(1000, 5000);
71) $salt = "rounds=".$rounds."$".random_string(8);
72) $password_hash = crypt($data['password'], "\$6\${$salt}\$");
73) }
74) else
75) {
76) $salt = random_string(8);
77) $password_hash = crypt($data['password'], "\$1\${$salt}\$");
78) }
|
Verwaltung von FTP-Accounts...
bernd authored 14 years ago
|
79) $password_query = "password='{$password_hash}', ";
80) }
81) elseif (! $id)
82) {
83) system_failure('Wenn Sie einen neuen Zugang anlegen, müssen Sie ein Passwort setzen');
84) }
85)
86)
87) if ($id)
88) db_query("UPDATE system.ftpusers SET username='{$username}', {$password_query} homedir='{$homedir}', active='{$active}', server={$server} WHERE id={$id} AND uid={$uid} LIMIT 1");
89) else
90) db_query("INSERT INTO system.ftpusers (username, password, homedir, uid, active, server) VALUES ('{$username}', '{$password_hash}', '{$homedir}', '{$uid}', '{$active}', {$server})");
91) }
92)
93)
94) function delete_ftpuser($id)
95) {
96) $uid = (int) $_SESSION['userinfo']['uid'];
97) $id = (int) $id;
98) db_query("DELETE FROM system.ftpusers WHERE id='{$id}' AND uid={$uid} LIMIT 1");
99) }
100)
101)
102) function get_gid($groupname)
103) {
104) $groupname = mysql_real_escape_string($groupname);
105) $result = db_query("SELECT gid FROM system.gruppen WHERE name='{$groupname}' LIMIT 1");
106) if (mysql_num_rows($result) != 1)
107) system_failure('cannot determine gid of ftpusers group');
108) $a = mysql_fetch_assoc($result);
109) $gid = (int) $a['gid'];
110) if ($gid == 0)
111) system_failure('error on determining gid of ftpusers group');
112) return $gid;
113) }
114)
115)
116) function have_regular_ftp()
117) {
118) $gid = get_gid('ftpusers');
119) $uid = (int) $_SESSION['userinfo']['uid'];
120) $result = db_query("SELECT * FROM system.gruppenzugehoerigkeit WHERE gid='$gid' AND uid='$uid'");
121) return (mysql_num_rows($result) > 0);
122) }
123)
124)
125) function enable_regular_ftp()
126) {
|