fix: 修复校验用户密码规则

This commit is contained in:
Bai
2021-08-17 16:01:27 +08:00
committed by 老广
parent 9a541ebf05
commit d46f1080f8
5 changed files with 22 additions and 5 deletions

View File

@@ -116,6 +116,18 @@ class UserSerializer(CommonBulkSerializerMixin, serializers.ModelSerializer):
raise serializers.ValidationError(msg)
return value
@property
def is_org_admin(self):
roles = []
role = self.initial_data.get('role')
if role:
roles.append(role)
org_roles = self.initial_data.get('org_roles')
if org_roles:
roles.extend(org_roles)
is_org_admin = User.ROLE.ADMIN.value in roles
return is_org_admin
def validate_password(self, password):
from ..utils import check_password_rules
password_strategy = self.initial_data.get('password_strategy')
@@ -125,7 +137,7 @@ class UserSerializer(CommonBulkSerializerMixin, serializers.ModelSerializer):
if self.instance and not password:
# 更新用户, 未设置密码
return
if not check_password_rules(password, user=self.instance):
if not check_password_rules(password, is_org_admin=self.is_org_admin):
msg = _('Password does not match security rules')
raise serializers.ValidationError(msg)
return password