|
|
@@ -24,48 +24,48 @@ class PwPolicyManager(object):
|
|
|
def __init__(self, instance):
|
|
|
self._instance = instance
|
|
|
self.log = instance.log
|
|
|
- self.pwp_attributes = [
|
|
|
- 'passwordstoragescheme',
|
|
|
- 'passwordChange',
|
|
|
- 'passwordMustChange',
|
|
|
- 'passwordHistory',
|
|
|
- 'passwordInHistory',
|
|
|
- 'passwordAdminDN',
|
|
|
- 'passwordTrackUpdateTime',
|
|
|
- 'passwordWarning',
|
|
|
- 'passwordMaxAge',
|
|
|
- 'passwordMinAge',
|
|
|
- 'passwordExp',
|
|
|
- 'passwordGraceLimit',
|
|
|
- 'passwordSendExpiringTime',
|
|
|
- 'passwordLockout',
|
|
|
- 'passwordUnlock',
|
|
|
- 'passwordMaxFailure',
|
|
|
- 'passwordLockoutDuration',
|
|
|
- 'passwordResetFailureCount',
|
|
|
- 'passwordCheckSyntax',
|
|
|
- 'passwordMinLength',
|
|
|
- 'passwordMinDigits',
|
|
|
- 'passwordMinAlphas',
|
|
|
- 'passwordMinUppers',
|
|
|
- 'passwordMinLowers',
|
|
|
- 'passwordMinSpecials',
|
|
|
- 'passwordMaxRepeats',
|
|
|
- 'passwordMin8bit',
|
|
|
- 'passwordMinCategories',
|
|
|
- 'passwordMinTokenLength',
|
|
|
- 'passwordDictPath',
|
|
|
- 'passwordDictCheck',
|
|
|
- 'passwordPalindrome',
|
|
|
- 'passwordMaxSequence',
|
|
|
- 'passwordMaxClassChars',
|
|
|
- 'passwordMaxSeqSets',
|
|
|
- 'passwordBadWords',
|
|
|
- 'passwordUserAttributes',
|
|
|
- 'passwordIsGlobalPolicy',
|
|
|
- 'nsslapd-pwpolicy-local',
|
|
|
- 'nsslapd-allow-hashed-passwords'
|
|
|
- ]
|
|
|
+ self.arg_to_attr = {
|
|
|
+ 'pwdlocal': 'nsslapd-pwpolicy-local',
|
|
|
+ 'pwdscheme': 'passwordstoragescheme',
|
|
|
+ 'pwdchange': 'passwordChange',
|
|
|
+ 'pwdmustchange': 'passwordMustChange',
|
|
|
+ 'pwdhistory': 'passwordHistory',
|
|
|
+ 'pwdhistorycount': 'passwordInHistory',
|
|
|
+ 'pwdadmin': 'passwordAdminDN',
|
|
|
+ 'pwdtrack': 'passwordTrackUpdateTime',
|
|
|
+ 'pwdwarning': 'passwordWarning',
|
|
|
+ 'pwdisglobal': 'passwordIsGlobalPolicy',
|
|
|
+ 'pwdexpire': 'passwordExp',
|
|
|
+ 'pwdmaxage': 'passwordMaxAge',
|
|
|
+ 'pwdminage': 'passwordMinAge',
|
|
|
+ 'pwdgracelimit': 'passwordGraceLimit',
|
|
|
+ 'pwdsendexpiring': 'passwordSendExpiringTime',
|
|
|
+ 'pwdlockout': 'passwordLockout',
|
|
|
+ 'pwdunlock': 'passwordUnlock',
|
|
|
+ 'pwdlockoutduration': 'passwordLockoutDuration',
|
|
|
+ 'pwdmaxfailures': 'passwordMaxFailure',
|
|
|
+ 'pwdresetfailcount': 'passwordResetFailureCount',
|
|
|
+ 'pwdchecksyntax': 'passwordCheckSyntax',
|
|
|
+ 'pwdminlen': 'passwordMinLength',
|
|
|
+ 'pwdmindigits': 'passwordMinDigits',
|
|
|
+ 'pwdminalphas': 'passwordMinAlphas',
|
|
|
+ 'pwdminuppers': 'passwordMinUppers',
|
|
|
+ 'pwdminlowers': 'passwordMinLowers',
|
|
|
+ 'pwdminspecials': 'passwordMinSpecials',
|
|
|
+ 'pwdmin8bits': 'passwordMin8bit',
|
|
|
+ 'pwdmaxrepeats': 'passwordMaxRepeats',
|
|
|
+ 'pwdpalindrome': 'passwordPalindrome',
|
|
|
+ 'pwdmaxseq': 'passwordMaxSequence',
|
|
|
+ 'pwdmaxseqsets': 'passwordMaxSeqSets',
|
|
|
+ 'pwdmaxclasschars': 'passwordMaxClassChars',
|
|
|
+ 'pwdmincatagories': 'passwordMinCategories',
|
|
|
+ 'pwdmintokenlen': 'passwordMinTokenLength',
|
|
|
+ 'pwdbadwords': 'passwordBadWords',
|
|
|
+ 'pwduserattrs': 'passwordUserAttributes',
|
|
|
+ 'pwddictcheck': 'passwordDictCheck',
|
|
|
+ 'pwddictpath': 'passwordDictPath',
|
|
|
+ 'pwdallowhash': 'nsslapd-allow-hashed-passwords'
|
|
|
+ }
|
|
|
|
|
|
def is_subtree_policy(self, dn):
|
|
|
"""Check if the entry has a subtree password policy. If we can find a
|