Add getAccounts and getAlias method

This commit is contained in:
Victor LABORIE 2017-12-13 23:09:54 +01:00
parent c0c4bf1bef
commit 7e1f1f1bbe

View file

@ -2,7 +2,7 @@
class LdapDomain extends LdapServer {
protected $domain,$active=false;
private $quota="0M/0M",$mail_accounts=array(),$mail_alias=array(),$posix_accounts=array(),$smb_accounts=array();
private $quota="0M/0M",$mail_accounts=array(),$mail_alias=array(),$posix_accounts=array(),$smb_accounts=array(),$accounts=array(),$alias=array();
public function __construct($server, $name) {
$this->conn = $server->conn;
@ -11,7 +11,6 @@ class LdapDomain extends LdapServer {
$this->dn = $server->dn;
$this->domain = $name;
$sr = ldap_search($this->conn, "cn=".$this->domain.",".LDAP_BASE, "(ObjectClass=*)");
$objects = ldap_get_entries($this->conn, $sr);
@ -40,6 +39,40 @@ class LdapDomain extends LdapServer {
return $this;
}
public function getAccounts() {
global $conf;
if (count($this->accounts) == 0) {
if (! $conf['domaines']['onlyone']) {
$rdn = ($conf['evoadmin']['version'] > 2) ? "cn=" .$this->domain. "," .LDAP_BASE : "domain=" .$this->domain. "," .LDAP_BASE;
} else {
$rdn = "ou=people," .LDAP_BASE;
}
$sr = ldap_search($this->conn, $rdn, "(objectClass=mailAccount)");
$info = ldap_get_entries($this->conn, $sr);
for ($i=0;$i<$info["count"];$i++) {
array_push($this->accounts,$info[$i]["uid"][0]);
}
}
return $this->accounts;
}
public function getAlias() {
global $conf;
if (count($this->alias) == 0) {
if (! $conf['domaines']['onlyone']) {
$rdn = ($conf['evoadmin']['version'] <= 2) ? "cn=" .$this->domain. "," .LDAP_BASE : "domain=" .$this->domain. "," .LDAP_BASE;
} else {
$rdn = "ou=people," .LDAP_BASE;
}
$sr = ldap_search($this->conn, $rdn, "(objectClass=mailAlias)");
$info = ldap_get_entries($this->conn, $sr);
for ($i=0;$i<$info["count"];$i++) {
array_push($this->alias,$info[$i]["cn"][0]);
}
}
return $this->alias;
}
public function del() {
$del = ldap_delete($this->conn, "cn=".$this->domain.",".LDAP_BASE);
if ($del) {