check if email is already in use
This commit is contained in:
parent
bcff255441
commit
6f690a27f7
|
@ -53,6 +53,8 @@ class inetOrgPerson extends baseModule implements passwordService {
|
||||||
private $employeeTypeCache = null;
|
private $employeeTypeCache = null;
|
||||||
/** business category cache */
|
/** business category cache */
|
||||||
private $businessCategoryCache = null;
|
private $businessCategoryCache = null;
|
||||||
|
/** cache for email duplication checks */
|
||||||
|
private $emailCheckCache = array();
|
||||||
|
|
||||||
/** session variable for existing user certificates in self service */
|
/** session variable for existing user certificates in self service */
|
||||||
const SESS_CERTIFICATES_LIST = 'inetOrgPerson_certificatesList';
|
const SESS_CERTIFICATES_LIST = 'inetOrgPerson_certificatesList';
|
||||||
|
@ -74,6 +76,7 @@ class inetOrgPerson extends baseModule implements passwordService {
|
||||||
$this->messages['facsimileTelephoneNumber'][0] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!'));
|
$this->messages['facsimileTelephoneNumber'][0] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!'));
|
||||||
$this->messages['facsimileNumber'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_fax', _('Please enter a valid fax number!'));
|
$this->messages['facsimileNumber'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_fax', _('Please enter a valid fax number!'));
|
||||||
$this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!'));
|
$this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!'));
|
||||||
|
$this->messages['mail'][1] = array('WARN', _('Email address'), _('Email "%s" already in use.'));
|
||||||
$this->messages['email'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_email', _('Please enter a valid email address!'));
|
$this->messages['email'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_email', _('Please enter a valid email address!'));
|
||||||
$this->messages['street'][0] = array('ERROR', _('Street'), _('Please enter a valid street name!'));
|
$this->messages['street'][0] = array('ERROR', _('Street'), _('Please enter a valid street name!'));
|
||||||
$this->messages['street'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_street', _('Please enter a valid street name!'));
|
$this->messages['street'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_street', _('Please enter a valid street name!'));
|
||||||
|
@ -981,6 +984,13 @@ class inetOrgPerson extends baseModule implements passwordService {
|
||||||
$mail = str_replace($wildcard, $this->attributes[$key][0], $mail);
|
$mail = str_replace($wildcard, $this->attributes[$key][0], $mail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (empty($this->orig['mail']) || !in_array($mail, $this->orig['mail'])) {
|
||||||
|
if ($this->emailExists($mail)) {
|
||||||
|
$msg = $this->messages['mail'][1];
|
||||||
|
$msg[] = array(htmlspecialchars($mail));
|
||||||
|
$errors[] = $msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3544,6 +3554,24 @@ class inetOrgPerson extends baseModule implements passwordService {
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the given email address already exists in LDAP.
|
||||||
|
*
|
||||||
|
* @param String $mail email address
|
||||||
|
* @return boolean true if already exists
|
||||||
|
*/
|
||||||
|
private function emailExists($mail) {
|
||||||
|
if (empty($mail)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (isset($this->emailCheckCache[$mail])) {
|
||||||
|
return $this->emailCheckCache[$mail];
|
||||||
|
}
|
||||||
|
$result = searchLDAPByAttribute('mail', $mail, 'inetOrgPerson', array('dn'), array('user'));
|
||||||
|
$this->emailCheckCache[$mail] = (sizeof($result) > 0);
|
||||||
|
return $this->emailCheckCache[$mail];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue