Establecer un rol por defecto en la seguridad del matraz

Estoy tratando de establecer una función predeterminada cuando un usuario se registra en mi sitio, actualmente no hay ninguna función establecida cuando el usuario se registra.

He creado los roles que necesito, así que solo necesito definirlos de alguna manera. No estoy seguro de cómo.

El código que tengo es una copia bastante pegada de la guía de inicio rápido. De todos modos, aquí está:

# Define models roles_users = db.Table('roles_users', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))) 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)) class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(255), unique=True) password = db.Column(db.String(255)) active = db.Column(db.Boolean()) confirmed_at = db.Column(db.DateTime()) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) # Setup Flask-Security user_datastore = SQLAlchemyUserDatastore(db, User, Role) security = Security(app, user_datastore) import users.getUser as getUser #@app.before_first_request def create_user(): db.create_all() user_datastore.create_user(email='my@email.com', password='password') db.session.commit() @flask_sijax.route(app, '/') def test(): print user_datastore.create_role(name='User', description='Generic user role') db.session.commit() return render_template('test.html') 

Lo arreglé usando la información de este problema de git con esto:

 @user_registered.connect_via(app) def user_registered_sighandler(app, user, confirm_token): default_role = user_datastore.find_role("User") user_datastore.add_role_to_user(user, default_role) db.session.commit() 

Si ya ha creado un rol “Usuario”, puede agregar ese rol al usuario cuando cree / registre al usuario.

 def create_user(): db.create_all() user = user_datastore.create_user(email='my@email.com', password='password') default_role = user_datastore.find_role(name="User") user_datastore.add_role_to_user(user, default_role) db.session.commit()