diff --git a/plugins/addons/dashboard/class_dashBoardUsers.inc b/plugins/addons/dashboard/class_dashBoardUsers.inc index 24c6c1b328dbfae8ab3d544cd7b77bdfdfe4e463..d1892a8383491ec1c3e765a903abd286a1ee1c4e 100644 --- a/plugins/addons/dashboard/class_dashBoardUsers.inc +++ b/plugins/addons/dashboard/class_dashBoardUsers.inc @@ -79,11 +79,11 @@ class dashboardUsers extends simplePlugin } } } - $ldap->search("(&(objectClass=inetOrgPerson)(objectClass=gosaMailAccount))", array("cn")); + $ldap->search('(&(objectClass=inetOrgPerson)(objectClass=gosaMailAccount))', array('cn')); $nb_mail_accounts = $ldap->count(); - $ldap->search("(&(objectClass=inetOrgPerson)(objectClass=posixAccount))", array("cn")); + $ldap->search('(&(objectClass=inetOrgPerson)(objectClass=posixAccount))', array('cn')); $nb_posix_accounts = $ldap->count(); - $ldap->search("(&(objectClass=inetOrgPerson)(objectClass=sambaSamAccount))", array("cn")); + $ldap->search('(&(objectClass=inetOrgPerson)(objectClass=sambaSamAccount))', array('cn')); $nb_samba_accounts = $ldap->count(); return array( @@ -136,8 +136,10 @@ class dashboardUsers extends simplePlugin /* search all account with all date, mail, telephone */ $ldap = $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); - $ldap->search('(&(|(objectClass=posixAccount)(objectClass=sambaSamAccount))(shadowExpire=*))', - array('uid','shadowExpire','mail','telephoneNumber','cn','manager')); + $ldap->search( + '(shadowExpire=*)', + array('uid','shadowExpire','mail','telephoneNumber','cn','manager') + ); $expired_accounts = array(); $next_expired_accounts = array(); diff --git a/plugins/admin/groups/class_groupManagement.inc b/plugins/admin/groups/class_groupManagement.inc index 0e16d956e4556e6f1568cf69bc72cda7ec55e7d2..414f047647259e4a4df3c35d97f9d5f8a4cc97be 100644 --- a/plugins/admin/groups/class_groupManagement.inc +++ b/plugins/admin/groups/class_groupManagement.inc @@ -123,12 +123,16 @@ class groupManagement extends simpleManagement $filters = array( array('id' => 'USER', 'label' => _('Show user groups')), array('id' => 'PRIMARY', 'label' => _('Show primary groups')), - array('id' => 'SAMBA', 'label' => _('Show samba groups')), - array('id' => 'MAIL', 'label' => _('Show mail groups')), array('id' => 'ROLE', 'label' => _('Show organizational roles')), array('id' => 'APPLICATION', 'label' => _('Show application groups')), array('id' => 'DEPARTMENT', 'label' => _('Show department groups')), ); + if (class_available('mailAccount')) { + $filters[]= array('id' => 'MAIL', 'label' => _('Show mail groups')); + } + if (class_available('sambaAccount')) { + $filters[]= array('id' => 'SAMBA', 'label' => _('Show samba groups')); + } if (class_available('systemManagement')) { $filters = array_merge( $filters, diff --git a/plugins/admin/users/class_userManagement.inc b/plugins/admin/users/class_userManagement.inc index 1bce22dcc3e0cca63022a08a8d26d1081613b51a..9e387ecee114bf6e003b2a2597f507362a1a0705 100644 --- a/plugins/admin/users/class_userManagement.inc +++ b/plugins/admin/users/class_userManagement.inc @@ -79,19 +79,30 @@ class userManagement extends simpleManagement { parent::configureFilter(); - if (!class_available('mailAccount')) { + $classes = array('posixAccount') + if (class_available('mailAccount')) { + $classes[]= 'gosaMailAccount'; + } else { /* If mail plugin is not installed, ignore mail filter */ - $this->filter->elements['MAIL']['unset'] = ''; - $this->filter->elements['MAIL']['set'] = ''; - /* The FUNCTIONAL filter must not use inexisting gosaMailAccount class */ - $this->filter->elements['FUNCTIONAL']['set'] = '(!(|(objectClass=posixAccount)(objectClass=sambaSamAccount)))'; + $this->filter->elements['MAIL']['unset'] = ''; + $this->filter->elements['MAIL']['set'] = ''; + } + if (class_available('sambaAccount')) { + $classes[]= 'sambaSamAccount'; + } else { + /* If samba plugin is not installed, ignore samba filter */ + $this->filter->elements['SAMBA']['unset'] = ''; + $this->filter->elements['SAMBA']['set'] = ''; } + /* The FUNCTIONAL filter must not use inexisting classes */ + $this->filter->elements['FUNCTIONAL']['set'] = '(!(|(objectClass='.implode(')(objectClass=', $classes).')))'; } function renderList () { $smarty = get_smarty(); $smarty->assign('USE_MAIL', class_available('mailAccount')); + $smarty->assign('USE_SAMBA', class_available('sambaAccount')); return parent::renderList(); } diff --git a/plugins/admin/users/user-filter.tpl b/plugins/admin/users/user-filter.tpl index fc45aa675e09f8022663c7573eb2874980898ea2..23492de04f7445d717d7aed14f40485f2ef20de6 100644 --- a/plugins/admin/users/user-filter.tpl +++ b/plugins/admin/users/user-filter.tpl @@ -12,7 +12,9 @@ {if $USE_MAIL} {$MAIL} <label for='MAIL'>{t}Show Mail users{/t}</label><br/> {/if} -{$SAMBA} <label for='SAMBA'>{t}Show Samba users{/t}</label><br/> +{if $USE_SAMBA} + {$SAMBA} <label for='SAMBA'>{t}Show Samba users{/t}</label><br/> +{/if} <div style="width:100%;border-top:1px solid #AAAAAA"></div> {$SCOPE} diff --git a/plugins/admin/users/user-filter.xml b/plugins/admin/users/user-filter.xml index bda17f0ffb254c1a4d921cf0cdd5701711c021a9..91bb3d277d9ba97a0405c8fb06cb70991d8467d7 100644 --- a/plugins/admin/users/user-filter.xml +++ b/plugins/admin/users/user-filter.xml @@ -55,7 +55,8 @@ <tag>FUNCTIONAL</tag> <default>true</default> <unset></unset> - <set>(!(|(objectClass=posixAccount)(objectClass=sambaSamAccount)(objectClass=gosaMailAccount)))</set> + <!-- The set tag content is defined in userManagement::configureFilter --> + <set>UNSET</set> </element> <element> diff --git a/setup/class_setupStep_Checks.inc b/setup/class_setupStep_Checks.inc index 81ee878b2c419154e0d8048c8cf0c846132a53fd..7bf7abaac6970eed33f15b31ee1f49585cdc4a7e 100644 --- a/setup/class_setupStep_Checks.inc +++ b/setup/class_setupStep_Checks.inc @@ -96,7 +96,7 @@ class Step_Checks extends setupStep $basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ); /* Check for iconv */ - $N = msgPool::checkingFor("inconv"); + $N = msgPool::checkingFor("iconv"); $D = _("FusionDirectory requires this module for the samba integration."); $S = msgPool::installPhpModule("iconv"); $R = is_callable("iconv"); diff --git a/setup/class_setupStep_Migrate.inc b/setup/class_setupStep_Migrate.inc index 3d807cf479611fdf36653353bfd9ee30c067ff37..a7eedcd452aeadc794e38fb894ef363ebde92165 100644 --- a/setup/class_setupStep_Migrate.inc +++ b/setup/class_setupStep_Migrate.inc @@ -532,10 +532,21 @@ class Step_Migrate extends setupStep /* Get all invisible users */ $ldap->cd($config->current['BASE']); - $res = $ldap->search("(&(|(objectClass=posixAccount)(objectClass=organizationalPerson)(objectClass=OpenLDAPperson))(!(objectClass=inetOrgPerson))(!(&(objectClass=Account)(objectClass=sambaSamAccount)))(uid=*))", array("sn","givenName","cn","uid")); + $res = $ldap->search( + '(&'. + '(|'. + '(objectClass=posixAccount)'. + '(objectClass=organizationalPerson)'. + '(objectClass=OpenLDAPperson)'. + ')'. + '(!(objectClass=inetOrgPerson))'. + '(uid=*)'. + ')', + array('sn','givenName','cn','uid') + ); while ($attrs = $ldap->fetch()) { - if (!preg_match("/,dc=addressbook,/", $attrs['dn'])) { + if (!preg_match('/,dc=addressbook,/', $attrs['dn'])) { $attrs['checked'] = FALSE; $attrs['before'] = ""; $attrs['after'] = "";