def allowed_assignment(self, request: LocalProxy, form: Form) -> bool:
"""Return if assignment is allowed, per settings.
:param request: The request context object.
:param form: form to check
"""
lst = self.setting('assignments').value
assignment = request.form['assignment']
category = request.form.get('category', None)
if ':' in lst:
datum = dict(l.split(':') for l in lst.splitlines())
lst = datum.get(category, '*')
if lst == '*':
return True
if assignment not in str2lst(lst):
prefix = 'Assignment'
if category:
prefix = 'For "%s" inquiries, assignment' % category
form.errors.setdefault('assignment', []) \
.append(
'%s "%s" is not allowed. Only the following '
'assignments are: %s' % (prefix, assignment, lst))
return False
return True
评论列表
文章目录