def setup_roles(app): # create the roles from ogreserver.extensions.flask_security import init_security app.security = init_security(app) app.security.datastore.create_role(name='Admin') app.security.datastore.create_role(name='Editor') app.security.datastore.create_role(name='User') app.security.datastore.commit()
def create_user(username, password, email, role='user', confirmed=False, test=False): """ Create a new user for OGRE test (bool) Only check if user has been created; don't actually do anything """ try: # load a user setup_db_session(app) from ogreserver.models.user import User user = User.query.filter_by(username=username).first() except ProgrammingError as e: if "doesn't exist" in str(e): print 'You must run init_ogre command first!' sys.exit(1) else: raise e if test is True: # only report state in test mode if user is None: print "User doesn't exist" sys.exit(1) else: print 'User {} exists'.format(username) sys.exit(0) else: if user is None: try: # celery is required for flask_security as it imports tasks.py app.celery = make_celery(app) register_tasks(app) from ogreserver.extensions.flask_security import init_security app.security = init_security(app) user = app.security.datastore.create_user( username=username, email=email, password=password ) if confirmed: from flask.ext.security.confirmable import confirm_user confirm_user(user) app.security.datastore.commit() print "Created user {} with role '{}'".format(username, role) except IntegrityError: print 'A user with this email address already exists' sys.exit(1) else: print 'User {} already exists'.format(username) sys.exit(1)