微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flask-security:如何显示所有角色而不仅仅是 current_users 角色MongoEngine

如何解决Flask-security:如何显示所有角色而不仅仅是 current_users 角色MongoEngine

我有一个注册/添加用户页面,我希望能够在创建用户时将角色附加到用户。我不知道的是如何显示所有角色。我可以获得 current_user.roles 但由于它不是当前用户而是要创建的用户,因此我想显示 user_datastore 中的所有角色。

模型.py

class Role(db.Document,RoleMixin):
    def __str__(self):
        return self.name
    name = db.StringField(max_length=80,unique=True)
    description = db.StringField(max_length=255)
    permissions = db.StringField(max_length=255)

class User(db.Document,UserMixin):
    def __str__(self):
        return self.username

    username = db.StringField(max_length=255)
    password = db.StringField(max_length=255)
    active = db.BooleanField(default=True)
    fs_uniquifier = db.StringField(max_length=64,unique=True)
    confirmed_at = db.DateTimeField()
    current_login_at = db.DateTimeField()
    last_login_at = db.DateTimeField()
    current_login_ip = db.StringField(max_length=255)
    last_login_ip = db.StringField(max_length=255)
    login_count = db.IntField(max_length=255)
    roles = db.ListField(db.ReferenceField(Role),default=[])

auth.py

@auth.route('/register',methods=['POST','GET'])
def register():
    if request.method == 'POST':
        if not user_datastore.find_user(username=request.form.get('username')):
            user_datastore.create_user(username=request.form.get('username'),password=hash_password(request.form.get('password')))
        else:
            flash("User already exists.")
        return redirect(url_for('main.index'))
    return render_template('security/register_user.html')

register_user.html

{% include "security/_messages.html" %}
<div class="login">
    <h1>Add user</h1>
    <form method="post">
        <input type="text" name="username" placeholder="Username" required="required" />
        <input type="password" name="password" placeholder="Password" required="required" />
        <button type="submit" class="btn btn-primary btn-block btn-large">Add user.</button>
    </form>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?