Я включил имена пользователей в auth, выполнив:
auth.define_tables(username=True)
Как я могу запретить пользователям регистрироваться с именами в черном списке, такими как:
admin
administrator
moderator
sysadmin
и, возможно, оскорбительные слова
Обновить
Вот валидатор имени пользователя, который я сделал:
class UsernameValidator(object):
def __init__(self, error_message='Invalid username'):
self.error_message = error_message
def __call__(self, value):
if self.validate(value):
return (value, None)
else:
return (value, self.error_message)
def validate(self, value):
blacklist = ['administrator', 'moderator', 'admin', '<swear word>']
if any(word in value for word in blacklist):
return False
else:
return True
Я поместил это в файл модели с именем файла, начинающимся с «0», чтобы он загружался до db.py.