Bernd Wurst commited on 2014-02-02 08:03:52
Zeige 3 geänderte Dateien mit 45 Einfügungen und 39 Löschungen.
| ... | ... |
@@ -19,7 +19,7 @@ require_once('inc/base.php');
|
| 19 | 19 |
function user_has_accounts() |
| 20 | 20 |
{
|
| 21 | 21 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 22 |
- $result = db_query("SELECT id from `mail`.`mailaccounts` WHERE uid=$uid");
|
|
| 22 |
+ $result = db_query("SELECT id from `mail`.`mailaccounts` WHERE uid=?", array($uid));
|
|
| 23 | 23 |
DEBUG($result->rowCount()." accounts"); |
| 24 | 24 |
return ($result->rowCount() > 0); |
| 25 | 25 |
} |
| ... | ... |
@@ -33,7 +33,7 @@ if (! function_exists("user_has_vmail_domain"))
|
| 33 | 33 |
return false; |
| 34 | 34 |
} |
| 35 | 35 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 36 |
- $result = db_query("SELECT COUNT(*) FROM mail.v_vmail_domains WHERE useraccount='{$uid}'");
|
|
| 36 |
+ $result = db_query("SELECT COUNT(*) FROM mail.v_vmail_domains WHERE useraccount=?", array($uid));
|
|
| 37 | 37 |
$row = $result->fetch(); |
| 38 | 38 |
$count = $row[0]; |
| 39 | 39 |
DEBUG("User has {$count} vmail-domains");
|
| ... | ... |
@@ -23,7 +23,7 @@ if (! function_exists("user_has_vmail_domain"))
|
| 23 | 23 |
return false; |
| 24 | 24 |
} |
| 25 | 25 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 26 |
- $result = db_query("SELECT COUNT(*) FROM mail.v_vmail_domains WHERE useraccount='{$uid}'");
|
|
| 26 |
+ $result = db_query("SELECT COUNT(*) FROM mail.v_vmail_domains WHERE useraccount=?", array($uid));
|
|
| 27 | 27 |
$row = $result->fetch(); |
| 28 | 28 |
$count = $row[0]; |
| 29 | 29 |
DEBUG("User has {$count} vmail-domains");
|
| ... | ... |
@@ -40,8 +40,8 @@ if (! function_exists("user_has_dotcourier_domain"))
|
| 40 | 40 |
return false; |
| 41 | 41 |
} |
| 42 | 42 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 43 |
- $result = db_query("select 1 from mail.custom_mappings as c left join mail.v_domains as d on (d.id=c.domain) where d.user={$uid} or c.uid={$uid} UNION ".
|
|
| 44 |
- "SELECT 1 FROM mail.v_domains AS d WHERE d.user={$uid} AND d.id != ALL(SELECT domain FROM mail.virtual_mail_domains);");
|
|
| 43 |
+ $result = db_query("select 1 from mail.custom_mappings as c left join mail.v_domains as d on (d.id=c.domain) where d.user=:uid or c.uid=:uid}UNION ".
|
|
| 44 |
+ "SELECT 1 FROM mail.v_domains AS d WHERE d.user=:uid AND d.id != ALL(SELECT domain FROM mail.virtual_mail_domains)", array(":uid" => $uid));
|
|
| 45 | 45 |
$ret = ($result->rowCount() > 0); |
| 46 | 46 |
if ($ret) |
| 47 | 47 |
DEBUG("User {$uid} has dotcourier-domains");
|
| ... | ... |
@@ -25,7 +25,7 @@ require_once('common.php');
|
| 25 | 25 |
function mailaccounts($uid) |
| 26 | 26 |
{
|
| 27 | 27 |
$uid = (int) $uid; |
| 28 |
- $result = db_query("SELECT m.id,concat_ws('@',`m`.`local`,if(isnull(`m`.`domain`),'".config('masterdomain')."',`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 ORDER BY if(isnull(`m`.`domain`),'".config('masterdomain')."',`d`.`domainname`), local");
|
|
| 28 |
+ $result = db_query("SELECT m.id,concat_ws('@',`m`.`local`,if(isnull(`m`.`domain`),:masterdomain,`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 ORDER BY if(isnull(`m`.`domain`),:masterdomain,`d`.`domainname`), local", array(":masterdomain" => config("masterdomain"), ":uid" => $uid));
|
|
| 29 | 29 |
DEBUG("Found ".@$result->rowCount()." rows!");
|
| 30 | 30 |
$accounts = array(); |
| 31 | 31 |
if (@$result->rowCount() > 0) |
| ... | ... |
@@ -38,7 +38,7 @@ function get_mailaccount($id) |
| 38 | 38 |
{
|
| 39 | 39 |
$id = (int) $id; |
| 40 | 40 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 41 |
- $result = db_query("SELECT concat_ws('@',`m`.`local`,if(isnull(`m`.`domain`),'".config('masterdomain')."',`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 AND m.uid={$uid}");
|
|
| 41 |
+ $result = db_query("SELECT concat_ws('@',`m`.`local`,if(isnull(`m`.`domain`),:masterdomain,`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=:mid AND m.uid=:uid", array(":masterdomain" => config("masterdomain"), ":uid" => $uid, ":mid" => $id));
|
|
| 42 | 42 |
DEBUG("Found ".$result->rowCount()." rows!");
|
| 43 | 43 |
if ($result->rowCount() != 1) |
| 44 | 44 |
system_failure('Dieser Mailaccount existiert nicht oder gehört Ihnen nicht');
|
| ... | ... |
@@ -52,45 +52,50 @@ function change_mailaccount($id, $arr) |
| 52 | 52 |
{
|
| 53 | 53 |
$id = (int) $id; |
| 54 | 54 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 55 |
- $conditions = array(); |
|
| 55 |
+ $conditions = array("local=:local", "domain=:domain");
|
|
| 56 |
+ $values = array(":id" => $id, ":uid" => $uid);
|
|
| 56 | 57 |
|
| 57 | 58 |
if (isset($arr['account'])) |
| 58 | 59 |
{
|
| 59 | 60 |
list($local, $domain) = explode('@', $arr['account'], 2);
|
| 60 | 61 |
if ($domain == config('masterdomain'))
|
| 61 | 62 |
{
|
| 62 |
- $values['domain'] = "NULL"; |
|
| 63 |
+ $values[':domain'] = NULL; |
|
| 63 | 64 |
} |
| 64 | 65 |
else |
| 65 | 66 |
{
|
| 66 | 67 |
$domain = new Domain( (string) $domain); |
| 67 |
- if ($domain->id == NULL) |
|
| 68 |
- array_push($conditions, "domain=NULL"); |
|
| 69 |
- else |
|
| 70 |
- {
|
|
| 68 |
+ if ($domain->id == NULL) {
|
|
| 69 |
+ $values[":domain"] = NULL; |
|
| 70 |
+ } else {
|
|
| 71 | 71 |
$domain->ensure_userdomain(); |
| 72 |
- array_push($conditions, "domain={$domain->id}");
|
|
| 72 |
+ $values[":domain"] = $domain->id; |
|
| 73 | 73 |
} |
| 74 | 74 |
} |
| 75 |
- array_push($conditions, "local='".db_escape_string($local)."'"); |
|
| 75 |
+ $values[":local"] = $local; |
|
| 76 | 76 |
} |
| 77 |
- if (isset($arr['mailbox'])) |
|
| 77 |
+ if (isset($arr['mailbox'])) {
|
|
| 78 |
+ array_push($conditions, "`maildir`=:maildir"); |
|
| 78 | 79 |
if ($arr['mailbox'] == '') |
| 79 |
- array_push($conditions, "`maildir`=NULL"); |
|
| 80 |
+ $values[":mailbox"] = NULL; |
|
| 80 | 81 |
else |
| 81 |
- array_push($conditions, "`maildir`='".db_escape_string($arr['mailbox'])."'"); |
|
| 82 |
+ $values[":mailbox"] = $arr['mailbox']; |
|
| 83 |
+ } |
|
| 82 | 84 |
|
| 83 | 85 |
if (isset($arr['password'])) |
| 84 | 86 |
{
|
| 85 | 87 |
$encpw = encrypt_mail_password($arr['password']); |
| 86 |
- array_push($conditions, "`password`='$encpw'"); |
|
| 88 |
+ array_push($conditions, "`password`=:password"); |
|
| 89 |
+ $values[":password"] = $encpw; |
|
| 87 | 90 |
} |
| 88 | 91 |
|
| 89 |
- if (isset($arr['enabled'])) |
|
| 90 |
- array_push($conditions, "`aktiv`=".($arr['enabled'] == 'Y' ? "1" : "0")); |
|
| 92 |
+ if (isset($arr['enabled'])) {
|
|
| 93 |
+ array_push($conditions, "`aktiv`=:aktiv"); |
|
| 94 |
+ $values[":aktiv"] = ($arr['enabled'] == 'Y' ? 1 : 0); |
|
| 95 |
+ } |
|
| 91 | 96 |
|
| 92 | 97 |
|
| 93 |
- db_query("UPDATE mail.mailaccounts SET ".implode(",", $conditions)." WHERE id='$id' AND uid={$uid}");
|
|
| 98 |
+ db_query("UPDATE mail.mailaccounts SET ".implode(",", $conditions)." WHERE id=:id AND uid=:uid", $values);
|
|
| 94 | 99 |
logger(LOG_INFO, "modules/imap/include/mailaccounts", "imap", "updated account »{$arr['account']}«");
|
| 95 | 100 |
|
| 96 | 101 |
} |
| ... | ... |
@@ -102,43 +107,44 @@ function create_mailaccount($arr) |
| 102 | 107 |
if (($arr['account']) == '') |
| 103 | 108 |
system_failure('empty account name!');
|
| 104 | 109 |
|
| 105 |
- $values['uid'] = (int) $_SESSION['userinfo']['uid']; |
|
| 110 |
+ $values[':uid'] = (int) $_SESSION['userinfo']['uid']; |
|
| 106 | 111 |
|
| 107 | 112 |
list($local, $domain) = explode('@', $arr['account'], 2);
|
| 108 | 113 |
if ($domain == config('masterdomain'))
|
| 109 | 114 |
{
|
| 110 |
- $values['domain'] = "NULL"; |
|
| 115 |
+ $values[':domain'] = NULL; |
|
| 111 | 116 |
} |
| 112 | 117 |
else |
| 113 | 118 |
{
|
| 114 | 119 |
$domain = new Domain( (string) $domain); |
| 115 | 120 |
if ($domain->id == NULL) |
| 116 |
- $values['domain'] = "NULL"; |
|
| 121 |
+ $values[':domain'] = NULL; |
|
| 117 | 122 |
else {
|
| 118 | 123 |
$domain->ensure_userdomain(); |
| 119 |
- $values['domain'] = $domain->id; |
|
| 124 |
+ $values[':domain'] = $domain->id; |
|
| 120 | 125 |
} |
| 121 | 126 |
} |
| 122 | 127 |
|
| 123 |
- $values['local'] = "'".db_escape_string($local)."'"; |
|
| 128 |
+ $values[':local'] = $local; |
|
| 124 | 129 |
|
| 125 | 130 |
if (isset($arr['mailbox'])) |
| 126 | 131 |
if ($arr['mailbox'] == '') |
| 127 |
- $values['maildir'] = 'NULL'; |
|
| 132 |
+ $values[':maildir'] = NULL; |
|
| 128 | 133 |
else |
| 129 |
- $values['maildir']= "'".db_escape_string($arr['mailbox'])."'"; |
|
| 134 |
+ $values[':maildir']= $arr['mailbox']; |
|
| 130 | 135 |
|
| 131 | 136 |
|
| 132 | 137 |
if (isset($arr['password'])) |
| 133 | 138 |
{
|
| 134 |
- $values['password'] = "'".encrypt_mail_password($arr['password'])."'"; |
|
| 139 |
+ $values[':password'] = encrypt_mail_password($arr['password']); |
|
| 135 | 140 |
} |
| 136 | 141 |
|
| 137 | 142 |
if (isset($arr['enabled'])) |
| 138 |
- $values['aktiv'] = ($arr['enabled'] == 'Y' ? "1" : "0" ); |
|
| 143 |
+ $values[':aktiv'] = ($arr['enabled'] == 'Y' ? 1 : 0 ); |
|
| 139 | 144 |
|
| 140 | 145 |
|
| 141 |
- db_query("INSERT INTO mail.mailaccounts (".implode(',', array_keys($values)).") VALUES (".implode(",", array_values($values)).")");
|
|
| 146 |
+ $fields = array_map( function ($k) { return substr($k, 1);}, array_keys($values));
|
|
| 147 |
+ db_query("INSERT INTO mail.mailaccounts (".implode(',', $fields).") VALUES (".implode(",", array_keys($values)).")", $values);
|
|
| 142 | 148 |
logger(LOG_INFO, "modules/imap/include/mailaccounts", "imap", "created account »{$arr['account']}«");
|
| 143 | 149 |
|
| 144 | 150 |
} |
| ... | ... |
@@ -148,10 +154,10 @@ function get_mailaccount_id($accountname) |
| 148 | 154 |
{
|
| 149 | 155 |
list($local, $domain) = explode('@', $accountname, 2);
|
| 150 | 156 |
|
| 151 |
- $local = db_escape_string($local); |
|
| 152 |
- $domain = db_escape_string($domain); |
|
| 157 |
+ $args = array(":local" => $local,
|
|
| 158 |
+ ":domain" => $domain); |
|
| 153 | 159 |
|
| 154 |
- $result = db_query("SELECT acc.id FROM mail.mailaccounts AS acc LEFT JOIN mail.v_domains AS dom ON (dom.id=acc.domain) WHERE local='{$local}' AND dom.domainname='{$domain}'");
|
|
| 160 |
+ $result = db_query("SELECT acc.id FROM mail.mailaccounts AS acc LEFT JOIN mail.v_domains AS dom ON (dom.id=acc.domain) WHERE local=:local AND dom.domainname=:domain", $args);
|
|
| 155 | 161 |
if ($result->rowCount() != 1) |
| 156 | 162 |
system_failure('account nicht eindeutig');
|
| 157 | 163 |
$acc = $result->fetch(); |
| ... | ... |
@@ -162,7 +168,7 @@ function get_mailaccount_id($accountname) |
| 162 | 168 |
function delete_mailaccount($id) |
| 163 | 169 |
{
|
| 164 | 170 |
$id = (int) $id; |
| 165 |
- db_query("DELETE FROM mail.mailaccounts WHERE id=".$id." LIMIT 1");
|
|
| 171 |
+ db_query("DELETE FROM mail.mailaccounts WHERE id=?", array($id));
|
|
| 166 | 172 |
logger(LOG_INFO, "modules/imap/include/mailaccounts", "imap", "deleted account »{$id}«");
|
| 167 | 173 |
} |
| 168 | 174 |
|
| ... | ... |
@@ -212,7 +218,7 @@ function check_valid($acc) |
| 212 | 218 |
function imap_on_vmail_domain() |
| 213 | 219 |
{
|
| 214 | 220 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 215 |
- $result = db_query("SELECT m.id FROM mail.mailaccounts AS m INNER JOIN mail.virtual_mail_domains AS vd USING (domain) WHERE m.uid={$uid}");
|
|
| 221 |
+ $result = db_query("SELECT m.id FROM mail.mailaccounts AS m INNER JOIN mail.virtual_mail_domains AS vd USING (domain) WHERE m.uid=?", array($uid));
|
|
| 216 | 222 |
if ($result->rowCount() > 0) |
| 217 | 223 |
return true; |
| 218 | 224 |
return false; |
| ... | ... |
@@ -221,11 +227,11 @@ function imap_on_vmail_domain() |
| 221 | 227 |
function user_has_only_vmail_domains() |
| 222 | 228 |
{
|
| 223 | 229 |
$uid = (int) $_SESSION['userinfo']['uid']; |
| 224 |
- $result = db_query("SELECT id FROM mail.v_vmail_domains WHERE useraccount={$uid}");
|
|
| 230 |
+ $result = db_query("SELECT id FROM mail.v_vmail_domains WHERE useraccount=?", array($uid));
|
|
| 225 | 231 |
// User hat keine VMail-Domains |
| 226 | 232 |
if ($result->rowCount() == 0) |
| 227 | 233 |
return false; |
| 228 |
- $result = db_query("SELECT d.id FROM mail.v_domains AS d LEFT JOIN mail.v_vmail_domains AS vd USING (domainname) WHERE vd.id IS NULL AND d.user={$uid}");
|
|
| 234 |
+ $result = db_query("SELECT d.id FROM mail.v_domains AS d LEFT JOIN mail.v_vmail_domains AS vd USING (domainname) WHERE vd.id IS NULL AND d.user=?", array($uid));
|
|
| 229 | 235 |
// User hat keine Domains die nicht vmail-Domains sind |
| 230 | 236 |
if ($result->rowCount() == 0) |
| 231 | 237 |
return true; |
| 232 | 238 |