webinterface => /webinterface
bernd authored 17 years ago
|
1) <?php
2)
3) require_once('inc/debug.php');
4) require_once('inc/db_connect.php');
|
Logging aktiviert
bernd authored 17 years ago
|
5) require_once('inc/base.php');
|
webinterface => /webinterface
bernd authored 17 years ago
|
6)
7) function mailaccounts($uid)
8) {
9) $uid = (int) $uid;
10) $query = "SELECT m.id,concat_ws('@',`m`.`local`,if(isnull(`m`.`domain`),_utf8'schokokeks.org',`d`.`domainname`)) AS `account`, `m`.`password` AS `cryptpass`,`m`.`maildir` AS `maildir`,aktiv from (`mail`.`mailaccounts` `m` left join `mail`.`v_domains` `d` on((`d`.`id` = `m`.`domain`))) WHERE m.uid=$uid";
11) DEBUG("SQL-Query: {$query}");
12) $result = @mysql_query($query);
13) if (mysql_error())
14) system_failure(mysql_error());
15) DEBUG("Found ".@mysql_num_rows($result)." rows!");
16) $accounts = array();
17) if (@mysql_num_rows($result) > 0)
18) while ($acc = @mysql_fetch_object($result))
19) array_push($accounts, array('id'=> $acc->id, 'account' => $acc->account, 'mailbox' => $acc->maildir, 'cryptpass' => $acc->cryptpass, 'enabled' => ($acc->aktiv == 1)));
20) return $accounts;
21) }
22)
23) function get_mailaccount($id)
24) {
25) $uid = (int) $uid;
26) $query = "SELECT concat_ws('@',`m`.`local`,if(isnull(`m`.`domain`),_utf8'schokokeks.org',`d`.`domainname`)) AS `account`, `m`.`password` AS `cryptpass`,`m`.`maildir` AS `maildir`,aktiv from (`mail`.`mailaccounts` `m` left join `mail`.`v_domains` `d` on((`d`.`id` = `m`.`domain`))) WHERE m.id=$id";
27) $result = mysql_query($query);
28) DEBUG("Found ".mysql_num_rows($result)." rows!");
29) $acc = mysql_fetch_object($result);
30) $ret = array('account' => $acc->account, 'mailbox' => $acc->maildir, 'enabled' => ($acc->aktiv == 1));
31) DEBUG(print_r($ret, true));
32) return $ret;
33) }
34)
35) function encrypt_mail_password($pw)
36) {
37) DEBUG("unencrypted PW: ".$pw);
|
pashword-hashing ohne Aufru...
bernd authored 17 years ago
|
38) require_once('inc/base.php');
39) $salt = random_string(8);
40) $encpw = crypt($pw, "\$1\${$salt}\$");
|
webinterface => /webinterface
bernd authored 17 years ago
|
41) DEBUG("encrypted PW: ".$encpw);
42) return chop($encpw);
43)
44) }
45)
46) function get_domain_id($domain)
47) {
48) $domain = mysql_real_escape_string($domain);
49) $result = mysql_query("SELECT id FROM mail.v_domains WHERE domainname = '{$domain}';");
50) if (mysql_num_rows($result) == 0)
51) return NULL;
52) return mysql_fetch_object($result)->id;
53) }
54)
55)
56) function change_mailaccount($id, $arr)
57) {
58) $id = (int) $id;
59) $conditions = array();
60)
61) if (isset($arr['account']))
62) {
63) list($local, $domain) = explode('@', $arr['account'], 2);
64) $domainid = get_domain_id($domain);
65) if ($domainid == NULL)
66) $domainid='NULL';
67) array_push($conditions, "local='".mysql_real_escape_string($local)."', domain=$domainid");
68) }
69) if (isset($arr['mailbox']))
70) if ($arr['mailbox'] == '')
71) array_push($conditions, "`maildir`=NULL");
72) else
73) array_push($conditions, "`maildir`='".mysql_real_escape_string($arr['mailbox'])."'");
74)
75) if (isset($arr['password']))
76) {
77) $encpw = encrypt_mail_password($arr['password']);
78) array_push($conditions, "`password`='$encpw'");
79) }
80)
81) if (isset($arr['enabled']))
82) array_push($conditions, "`aktiv`=".($arr['enabled'] == 'Y' ? "1" : "0"));
83)
84)
85) $query = "UPDATE mail.mailaccounts SET ".implode(",", $conditions)." WHERE id='$id' LIMIT 1";
86) DEBUG("Query: ".$query);
87)
88) mysql_query($query);
89) if (mysql_error())
90) system_failure('Beim Ändern der Account-Daten ist ein Fehler aufgetreten. Sollte dies wiederholt vorkommen, senden Sie bitte die Fehlermeldung ('.mysql_error().') an einen Administrator.');
|
Logging aktiviert
bernd authored 17 years ago
|
91) logger("modules/imap/include/mailaccounts.php", "imap", "updated account »{$arr['account']}«");
|
webinterface => /webinterface
bernd authored 17 years ago
|
92)
93) }
94)
95) function create_mailaccount($arr)
96) {
97) $values = array();
98)
99) if (($arr['account']) == '')
100) system_failure('empty account name!');
101)
102) $values['uid'] = (int) $_SESSION['userinfo']['uid'];
103)
104) list($local, $domain) = explode('@', $arr['account'], 2);
105) $domainid = get_domain_id($domain);
106) if ($domainid == NULL)
107) $domainid='NULL';
108) $values['local'] = "'".mysql_real_escape_string($local)."'";
109) $values['domain'] = $domainid;
110)
111) if (isset($arr['mailbox']))
112) if ($arr['mailbox'] == '')
113) $values['maildir'] = 'NULL';
114) else
115) $values['maildir']= "'".mysql_real_escape_string($arr['mailbox'])."'";
116)
117)
118) if (isset($arr['password']))
119) {
120) $values['password'] = "'".encrypt_mail_password($arr['password'])."'";
121) }
122)
123) if (isset($arr['enabled']))
124) $values['aktiv'] = ($arr['enabled'] == 'Y' ? "1" : "0" );
125)
126)
127) $query = "INSERT INTO mail.mailaccounts (".implode(',', array_keys($values)).") VALUES (".implode(",", array_values($values)).")";
128) DEBUG("Query: ".$query);
129)
130) mysql_query($query);
131) if (mysql_error())
132) system_failure('Beim Anlegen des Kontos ist ein Fehler aufgetreten. Sollte dies wiederholt vorkommen, senden Sie bitte die Fehlermeldung ('.mysql_error().') an einen Administrator.');
|
Logging aktiviert
bernd authored 17 years ago
|
133) logger("modules/imap/include/mailaccounts.php", "imap", "created account »{$arr['account']}«");
|
webinterface => /webinterface
bernd authored 17 years ago
|
134)
135) }
136)
137)
138) function delete_mailaccount($id)
139) {
140) $id = (int) $id;
141) $query = "DELETE FROM mail.mailaccounts WHERE id=".$id." LIMIT 1";
142) mysql_query($query);
143) if (mysql_error())
144) system_failure('Beim Löschen des Kontos ist ein Fehler aufgetreten. Sollte dies wiederholt vorkommen, senden Sie bitte die Fehlermeldung ('.mysql_error().') an einen Administrator.');
|
Logging aktiviert
bernd authored 17 years ago
|
145) logger("modules/imap/include/mailaccounts.php", "imap", "deleted account »{$id}«");
|