Я использую Flask-Admin и Flask-Security чтобы реализовать админку для моего Python приложения. Вот модели для Role и User соответственно:
class Role(db.Model, RoleMixin):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(80), unique=True)
description = db.Column(db.String(255))
def __str__(self):
return self.name
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(255), unique=True, index=True)
password = db.Column(db.String(255))
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
def __str__(self):
return self.username
Я сделал sqla.ModelView User'а доступной только пользователям с ролями "admin" и "superadmin", и теперь пользователи с этими ролями могут добавлять/редактировать/изменять новых пользователей. Как мне сделать, чтобы только пользователи с ролью "superadmin" могли создавать пользователей с ролями "superadmin" и "admin" (т. е. суперадмины могут создавать всех, а админы - всех, кроме админов и суперадминов)? Иначе говоря, Я хочу специфицировать, какие из этих вариантов будут доступны пользователям с разными ролями:
https://imgur.com/a/GdhUS2Y.
И гуглил, и читал доки, не смог найти ничего по этой проблеме :(