【问题标题】:Flask-security add role to user (MongoEngine)Flask-security 为用户添加角色(MongoEngine)
【发布时间】:2013-09-13 13:51:02
【问题描述】:

我已经构建了一个小 api,应该能够将角色添加到用户:

user = user_datastore.find_user(email=flask.request.args.get('email'))
role = user_datastore.find_role(flask.request.args.get('role'))
result = user_datastore.add_role_to_user(user, role)

role & email 通过 api 发送)。它找到正确的用户和角色对象,结果给出了True,但没有任何内容添加到用户的角色列表中,该列表保持[],没有任何角色。

我的设置类似于/直接基于MongoEngine example

它一定很简单,但我似乎找不到它:/

BR 卡斯特

【问题讨论】:

标签: python flask mongoengine flask-security


【解决方案1】:

正如 Matt W 所说,这似乎是一个错误。我在 github 上记录了一个问题: https://github.com/mattupstate/flask-security/issues/170

【讨论】:

    【解决方案2】:

    可能是我遗漏了一些东西,但您需要提交更改,对吧?

    user = user_datastore.find_user(email=flask.request.args.get('email'))
    role = user_datastore.find_role(flask.request.args.get('role'))
    result = user_datastore.add_role_to_user(user, role)
    
    # to save in database, you must commit (assuming 'db' is the object)
    db.session.commit()
    

    【讨论】:

    • 嗨 codegeek,这对于 sqlalchemy 来说是正确的,但在使用 mongoengine 时则不然。所以在这种特殊情况下不是这样(但可能是其他人在使用 sql 数据库时遇到问题)
    猜你喜欢
    • 2017-01-24
    • 1970-01-01
    • 2022-01-18
    • 2019-08-11
    • 1970-01-01
    • 2016-02-09
    • 2014-06-27
    • 2012-02-11
    • 2015-11-17
    相关资源
    最近更新 更多