diff --git a/lam/lib/types/user.inc b/lam/lib/types/user.inc index 34f7b023..f24354df 100644 --- a/lam/lib/types/user.inc +++ b/lam/lib/types/user.inc @@ -809,6 +809,7 @@ class lamUserList extends lamList { $attrs[] = 'userPassword'; $attrs[] = 'userAccountControl'; $attrs[] = 'nsAccountLock'; + $attrs[] = 'accountUnlockTime'; $attrs[] = 'objectClass'; } return $attrs; @@ -872,8 +873,9 @@ class lamUserList extends lamList { $ppolicyLocked = self::isPPolicyLocked($attrs); $windowsLocked = self::isWindowsLocked($attrs); $is389dsDeactivated = self::is389dsDeactivated($attrs); - $partiallyLocked = $unixLocked || $sambaLocked || $ppolicyLocked || $windowsLocked || $is389dsDeactivated; - $fullyLocked = ($unixAvailable || $sambaAvailable || $ppolicyAvailable || $windowsAvailable || $is389dsDeactivated) + $is389dsLocked = self::is389dsLocked($attrs); + $partiallyLocked = $unixLocked || $sambaLocked || $ppolicyLocked || $windowsLocked || $is389dsDeactivated || $is389dsLocked; + $fullyLocked = ($unixAvailable || $sambaAvailable || $ppolicyAvailable || $windowsAvailable || $is389dsDeactivated || $is389dsLocked) && (!$unixAvailable || $unixLocked) && (!$sambaAvailable || $sambaLocked) && (!$ppolicyAvailable || $ppolicyLocked) @@ -920,6 +922,10 @@ class lamUserList extends lamList { } $tipContent .= '' . _('Windows') . '  '; } + // 389 locked + if ($is389dsLocked) { + $tipContent .= '' . _('Locked') . '  '; + } // 389 deactivation if ($is389dsDeactivated) { $tipContent .= '' . _('Deactivated') . '  '; @@ -1022,6 +1028,16 @@ class lamUserList extends lamList { return (isset($attrs['nsaccountlock'][0]) && ($attrs['nsaccountlock'][0] == 'true')); } + /** + * Returns if locked by accountUnlockTime. + * + * @param array $attrs LDAP attributes + * @return boolean account is locked + */ + public static function is389dsLocked(&$attrs) { + return (isset($attrs['accountunlocktime'][0]) && !empty($attrs['accountunlocktime'][0])); + } + } ?> \ No newline at end of file