mirror of
https://bitbucket.org/jsuto/piler.git
synced 2025-06-12 23:47:02 +02:00
introduced a new group management feature
This commit is contained in:
@ -129,6 +129,9 @@ class ModelUserAuth extends Model {
|
||||
|
||||
$emails = $this->get_email_array_from_ldap_attr($query->rows);
|
||||
|
||||
$extra_emails = $this->model_user_user->get_email_addresses_from_groups($emails));
|
||||
$emails = array_merge($emails, $extra_emails);
|
||||
|
||||
$this->add_session_vars($a['cn'], $username, $emails, $role);
|
||||
|
||||
AUDIT(ACTION_LOGIN, $username, '', '', 'successful auth against LDAP');
|
||||
@ -270,6 +273,7 @@ class ModelUserAuth extends Model {
|
||||
|
||||
private function checkLoginAgainstIMAP($username = '', $password = '') {
|
||||
$session = Registry::get('session');
|
||||
$emails = array($username);
|
||||
|
||||
if(!strchr($username, '@')) { return 0; }
|
||||
|
||||
@ -277,7 +281,10 @@ class ModelUserAuth extends Model {
|
||||
if($imap->login($username, $password)) {
|
||||
$imap->logout();
|
||||
|
||||
$this->add_session_vars($username, $username, array($username), 0);
|
||||
$extra_emails = $this->model_user_user->get_email_addresses_from_groups($emails));
|
||||
$emails = array_merge($emails, $extra_emails);
|
||||
|
||||
$this->add_session_vars($username, $username, $emails, 0);
|
||||
|
||||
$session->set("password", $password);
|
||||
|
||||
@ -290,6 +297,7 @@ class ModelUserAuth extends Model {
|
||||
|
||||
private function checkLoginAgainstPOP3($username = '', $password = '') {
|
||||
$rc = 0;
|
||||
$emails = array($username);
|
||||
|
||||
try {
|
||||
$conn = new Zend_Mail_Protocol_Pop3(POP3_HOST, POP3_PORT, POP3_SSL);
|
||||
@ -302,7 +310,10 @@ class ModelUserAuth extends Model {
|
||||
try {
|
||||
$conn->login($username, $password);
|
||||
|
||||
$this->add_session_vars($username, $username, array($username), 0);
|
||||
$extra_emails = $this->model_user_user->get_email_addresses_from_groups($emails));
|
||||
$emails = array_merge($emails, $extra_emails);
|
||||
|
||||
$this->add_session_vars($username, $username, $emails, 0);
|
||||
$rc = 1;
|
||||
}
|
||||
catch (Zend_Mail_Protocol_Exception $e) {}
|
||||
@ -351,6 +362,9 @@ class ModelUserAuth extends Model {
|
||||
|
||||
$emails = $this->get_email_array_from_ldap_attr($query->rows);
|
||||
|
||||
$extra_emails = $this->model_user_user->get_email_addresses_from_groups($emails));
|
||||
$emails = array_merge($emails, $extra_emails);
|
||||
|
||||
if($this->check_ldap_membership($ldap_auditor_member_dn, $query->rows) == 1) { $role = 2; }
|
||||
if($this->check_ldap_membership($ldap_admin_member_dn, $query->rows) == 1) { $role = 1; }
|
||||
|
||||
|
@ -69,8 +69,7 @@ class ModelUserUser extends Model {
|
||||
}
|
||||
|
||||
|
||||
$query = $this->db->query("SELECT `" . TABLE_GROUP_EMAIL . "`.email FROM `" . TABLE_GROUP_EMAIL . "`, `" . TABLE_GROUP_USER . "` WHERE `" . TABLE_GROUP_EMAIL . "`.id=`" . TABLE_GROUP_USER . "`.id and `" . TABLE_GROUP_USER . "`.uid=?", array($uid) );
|
||||
|
||||
$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 (?))", $data);
|
||||
|
||||
if(isset($query->rows)) {
|
||||
foreach ($query->rows as $q) {
|
||||
@ -359,7 +358,7 @@ class ModelUserUser extends Model {
|
||||
}
|
||||
|
||||
$this->update_domains_settings((int)$user['uid'], $user['domains']);
|
||||
$this->update_group_settings((int)$user['uid'], $user['group']);
|
||||
$this->update_group_settings($emails[0], $user['group']);
|
||||
$this->update_folder_settings((int)$user['uid'], $user['folder']);
|
||||
|
||||
return 1;
|
||||
@ -442,7 +441,7 @@ class ModelUserUser extends Model {
|
||||
}
|
||||
|
||||
$this->update_domains_settings((int)$user['uid'], $user['domains']);
|
||||
$this->update_group_settings((int)$user['uid'], $user['group']);
|
||||
$this->update_group_settings($emails[0], $user['group']);
|
||||
$this->update_folder_settings((int)$user['uid'], $user['folder']);
|
||||
|
||||
return 1;
|
||||
@ -471,12 +470,14 @@ class ModelUserUser extends Model {
|
||||
}
|
||||
|
||||
|
||||
private function update_group_settings($uid = -1, $group = '') {
|
||||
private function update_group_settings($email = '', $group = '') {
|
||||
$__g = array();
|
||||
|
||||
if($uid <= 0) { return 0; }
|
||||
$email = rtrim($email);
|
||||
|
||||
$query = $this->db->query("DELETE FROM `" . TABLE_GROUP_USER . "` WHERE uid=?", array($uid));
|
||||
if($email == '') { return 0; }
|
||||
|
||||
$query = $this->db->query("DELETE FROM `" . TABLE_GROUP_USER . "` WHERE email=?", array($email));
|
||||
|
||||
$query = $this->db->query("SELECT id, groupname FROM `" . TABLE_GROUP . "`");
|
||||
|
||||
@ -492,7 +493,7 @@ class ModelUserUser extends Model {
|
||||
$g = rtrim($g);
|
||||
|
||||
if($g && !isset($__g[$groups[$g]])) {
|
||||
$query = $this->db->query("INSERT INTO `" . TABLE_GROUP_USER . "` (id, uid) VALUES(?,?)", array($groups[$g], (int)$uid));
|
||||
$query = $this->db->query("INSERT INTO `" . TABLE_GROUP_USER . "` (id, email) VALUES(?,?)", array($groups[$g], $email));
|
||||
$__g[$groups[$g]] = 1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user