feat(api): password supports regular check

This commit is contained in:
pycook 2024-01-12 16:56:10 +08:00
parent 67081ef005
commit 9bc0ab6009
2 changed files with 10 additions and 4 deletions

View File

@ -360,6 +360,8 @@ class CIManager(object):
if attr.default and attr.default.get('default') == AttributeDefaultValueEnum.UPDATED_AT: if attr.default and attr.default.get('default') == AttributeDefaultValueEnum.UPDATED_AT:
ci_dict[attr.name] = now ci_dict[attr.name] = now
value_manager = AttributeValueManager()
computed_attrs = [] computed_attrs = []
for _, attr in attrs: for _, attr in attrs:
if attr.is_computed: if attr.is_computed:
@ -370,7 +372,8 @@ class CIManager(object):
elif attr.alias in ci_dict: elif attr.alias in ci_dict:
password_dict[attr.id] = ci_dict.pop(attr.alias) password_dict[attr.id] = ci_dict.pop(attr.alias)
value_manager = AttributeValueManager() if attr.re_check and password_dict.get(attr.id):
value_manager.check_re(attr.re_check, password_dict[attr.id])
if computed_attrs: if computed_attrs:
value_manager.handle_ci_compute_attributes(ci_dict, computed_attrs, ci) value_manager.handle_ci_compute_attributes(ci_dict, computed_attrs, ci)
@ -429,6 +432,8 @@ class CIManager(object):
if attr.default and attr.default.get('default') == AttributeDefaultValueEnum.UPDATED_AT: if attr.default and attr.default.get('default') == AttributeDefaultValueEnum.UPDATED_AT:
ci_dict[attr.name] = now ci_dict[attr.name] = now
value_manager = AttributeValueManager()
password_dict = dict() password_dict = dict()
computed_attrs = list() computed_attrs = list()
for _, attr in attrs: for _, attr in attrs:
@ -440,7 +445,8 @@ class CIManager(object):
elif attr.alias in ci_dict: elif attr.alias in ci_dict:
password_dict[attr.id] = ci_dict.pop(attr.alias) password_dict[attr.id] = ci_dict.pop(attr.alias)
value_manager = AttributeValueManager() if attr.re_check and password_dict.get(attr.id):
value_manager.check_re(attr.re_check, password_dict[attr.id])
if computed_attrs: if computed_attrs:
value_manager.handle_ci_compute_attributes(ci_dict, computed_attrs, ci) value_manager.handle_ci_compute_attributes(ci_dict, computed_attrs, ci)

View File

@ -118,7 +118,7 @@ class AttributeValueManager(object):
return abort(400, ErrFormat.attribute_value_required.format(attr.alias)) return abort(400, ErrFormat.attribute_value_required.format(attr.alias))
@staticmethod @staticmethod
def _check_re(expr, value): def check_re(expr, value):
if not re.compile(expr).match(str(value)): if not re.compile(expr).match(str(value)):
return abort(400, ErrFormat.attribute_value_invalid.format(value)) return abort(400, ErrFormat.attribute_value_invalid.format(value))
@ -136,7 +136,7 @@ class AttributeValueManager(object):
v = None v = None
if attr.re_check and value: if attr.re_check and value:
self._check_re(attr.re_check, value) self.check_re(attr.re_check, value)
return v return v