master 3.7.2.16
root 1 year ago
parent 4330087bf3
commit 0dabba6a6e

@ -165,8 +165,19 @@ class VariableClMigrateRootPwdPlain(GrubHelper, UserHelper, Variable):
self.label = _("Root password")
def check(self, value):
#raise VariableError(self.Get('cl_migrate_root_shadow_pwd'))
#raise VariableError(value)
if not value and not self.Get('cl_migrate_root_shadow_pwd'):
raise PasswordError(_("Enter password for user %s") % "root")
if value != self.stub_hash_value:
if len(value) < 8:
raise VariableError(_(f"Password should contain at least 8 symbols"))
elif not any([x.isupper() for x in value]):
raise VariableError(_(f"Password should contain at least 1 uppercase letter"))
elif not any([x.islower() for x in value]):
raise VariableError(_(f"Password should contain at least 1 lowercase letter"))
elif not any([x.isdigit() for x in value]):
raise VariableError(_(f"Password should contain at least 1 digit"))
# если plain пароля нет (есть только хэш), но требуется установить
# пароль на grub (cl_grub_passwd_set), при этом нет 07_passwd
if (value == self.stub_hash_value and
@ -547,10 +558,22 @@ class VariableClMigrateUserPwd(UserHelper, Variable):
raise PasswordError(
_("Enter password for user %s") % user)
def set(self, value):
"""
Encrypt passwords
"""
for pas in value:
if pas == 'guest':
pass
elif len(pas) < 8:
raise VariableError(_("Password should contain at least 8 symbols"))
elif not any([x.isupper() for x in pas]):
raise VariableError(_("Password should contain at least 1 uppercase letter"))
elif not any([x.islower() for x in pas]):
raise VariableError(_("Password should contain at least 1 lowercase letter"))
elif not any([x.isdigit() for x in pas]):
raise VariableError(_("Password should contain at least 1 digit"))
shadow_hash = get_shadow_hash()
return [x if shadow_hash.identify(x) or not x else shadow_hash.hash(x) for x in value]

Loading…
Cancel
Save