我应该做什么,如果需要设置用户的角色,例如FooUser
?我需要在哪里这样做?在我自己的/create_account
视图或上下文处理器中?
@app.route('/create_account')
def create_account():
user_datastore.find_or_create_role('FooUser')
user_datastore.add_role_to_user(user,role)
return render_template('register_user.html')
答案 0 :(得分:3)
您可以按照以下说明自定义视图: http://flask-security.readthedocs.org/en/latest/customizing.html
您可以使用信号挂钩用户注册过程: http://flask-security.readthedocs.org/en/latest/api.html#signals
答案 1 :(得分:2)
重要!第二种方式很简单。
@user_registered.connect_via(app)
def user_registered_sighandler(sender, **extra):
sender.logger.debug("logger-user_registered_sighandler:", extra)
user = extra.get('user')
role = user_datastore.find_or_create_role('farmer')
user_datastore.add_role_to_user(user,role)
db.session.commit()
print "print-user_registered_sighandler:", extra
答案 2 :(得分:1)
要向用户添加角色,您必须使用flask-security的API:
flask_security.datastore.UserDatastore.add_role_to_user(user, role)
绝对可以在您自己的 create_account 或类似代码中执行此操作。 ContextProcessors 用于在呈现模板之前准备数据。这意味着您创建或获取用户和角色对象,然后调用上述API将角色分配给用户。如果您需要进一步的帮助,请更具体。