gui fixes

This commit is contained in:
SJ
2014-09-09 15:30:26 +02:00
parent 01f0769413
commit 3831f8641f
13 changed files with 25 additions and 8 deletions

View File

@ -201,7 +201,7 @@ class ModelUserAuth extends Model {
$data = array();
foreach($e as $a) {
syslog(LOG_INFO, "checking ldap entry dn: " . $a['dn'] . ", cn: " . $a['cn']);
//syslog(LOG_INFO, "checking ldap entry dn: " . $a['dn'] . ", cn: " . $a['cn']);
foreach (array("mail", "mailalternateaddress", "proxyaddresses", "zimbraMailForwardingAddress", "member", "memberOfGroup") as $mailattr) {
if(isset($a[$mailattr])) {
@ -209,7 +209,7 @@ class ModelUserAuth extends Model {
if(is_array($a[$mailattr])) {
for($i = 0; $i < $a[$mailattr]['count']; $i++) {
syslog(LOG_INFO, "checking entry: " . $a[$mailattr][$i]);
//syslog(LOG_INFO, "checking entry: " . $a[$mailattr][$i]);
$a[$mailattr][$i] = strtolower($a[$mailattr][$i]);
@ -225,7 +225,7 @@ class ModelUserAuth extends Model {
}
}
else {
syslog(LOG_INFO, "checking entry #2: " . $a[$mailattr]);
//syslog(LOG_INFO, "checking entry #2: " . $a[$mailattr]);
$email = strtolower(preg_replace("/^([\w]+)\:/i", "", $a[$mailattr]));
if(validemail($email) && !in_array($email, $data)) { array_push($data, $email); }
@ -383,7 +383,11 @@ class ModelUserAuth extends Model {
return 0;
}
$query = $ldap->query(LDAP_BASE_DN, "(|(&(objectClass=user)(proxyAddresses=smtp:$username))(&(objectClass=group)(member=$username))(&(objectClass=group)(member=" . stripslashes($a['dn']) . ")))", array());
$ldap_mail_attr = LDAP_MAIL_ATTR;
if(LDAP_MAIL_ATTR == 'proxyAddresses') { $ldap_mail_attr = 'proxyAddresses=smtp:'; }
$query = $ldap->query(LDAP_BASE_DN, "(|(&(objectClass=user)(" . $ldap_mail_attr . "=$username))(&(objectClass=group)(member=$username))(&(objectClass=group)(member=" . stripslashes($a['dn']) . ")))", array());
$emails = $this->get_email_array_from_ldap_attr($query->rows);

View File

@ -76,8 +76,11 @@ class ModelUserUser extends Model {
public function get_email_addresses_from_groups($emails = array()) {
$data = array();
$q = str_repeat("?,", count($emails));
$query = $this->db->query("SELECT g.email FROM `" . TABLE_GROUP_EMAIL . "` g WHERE g.id IN (SELECT u.id FROM `" . TABLE_GROUP_USER . "` u WHERE u.email IN (?))", $emails);
$q = substr($q, 0, strlen($q)-1);
$query = $this->db->query("SELECT g.email FROM `" . TABLE_GROUP_EMAIL . "` g WHERE g.id IN (SELECT u.id FROM `" . TABLE_GROUP_USER . "` u WHERE u.email IN ($q))", $emails);
if(isset($query->rows)) {
foreach ($query->rows as $q) {