2

例如,如果需要将用户角色设置为,我该怎么办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')
4

3 回答 3

3

您可以按照以下说明自定义视图:http: //flask-security.readthedocs.org/en/latest/customizing.html

您可以使用信号连接到用户注册过程:http: //flask-security.readthedocs.org/en/latest/api.html#signals

于 2014-08-19T15:06:39.457 回答
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

于 2014-08-20T07:45:21.697 回答
1

要向用户添加角色,您必须使用 flask-security 的 API:

flask_security.datastore.UserDatastore.add_role_to_user(user, role)

您肯定会在自己的create_account或类似代码中执行此操作。ContextProcessors用于在渲染模板之前准备数据。这意味着您创建或获取UserRole对象,然后调用上述 API 将角色分配给用户。如果您需要进一步的帮助,请更具体。

于 2014-08-19T13:20:04.620 回答