def before_first_request(): """ runs before the first request, adds an user account and sets it as 'admin' role. """ # create admin and normal user roles user_datastore.find_or_create_role(name='admin', description='Administrator') user_datastore.find_or_create_role(name='user', description='End user') # create an admin user and add to database encrypted_password = hash_password('password') if not user_datastore.get_user('*****@*****.**'): user_datastore.create_user(email='*****@*****.**', password=encrypted_password) try: db_init.session.commit() except SQLAlchemyError: raise InvalidUsage(status_code=500) # make [email protected] the admin user user_datastore.add_role_to_user('*****@*****.**', 'admin') try: db_init.session.commit() except SQLAlchemyError: raise InvalidUsage(status_code=500)
def create_db(): print('Creating db ... ', end='') db.create_all() user_datastore.find_or_create_role(name='admin', description='Administrator') db.session.commit() print('Done.')
def setUp(self): from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-setuid-sandbox") """Setup the test driver and create test users""" self.driver = webdriver.Chrome(chrome_options=chrome_options) self.driver.get(self.get_server_url()) email_admin = test_admin_email db.session.commit() db.drop_all() db.create_all() user_datastore.create_user(email=test_admin_email, username=test_admin_username, password=test_admin_password) user_datastore.create_user(email=test_user_final_email, username=test_user_final_username, password=test_user_final_password) user_datastore.find_or_create_role(name='admin', description='Administrator') user_datastore.find_or_create_role(name='end-user', description='End user') user_datastore.add_role_to_user(email_admin, 'admin') db.session.commit()
def setUp(self): from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--no-default-browser-check') chrome_options.add_argument('--no-first-run') chrome_options.add_argument('--disable-default-apps') chrome_options.add_argument('--remote-debugging-port=9222') chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') """Setup the test driver and create test users""" self.driver = webdriver.Chrome(chrome_options=chrome_options) self.driver.get(self.get_server_url()) email_admin = test_admin_email db.session.commit() db.drop_all() db.create_all() user_datastore.create_user(email=test_admin_email, username=test_admin_username, password=test_admin_password) user_datastore.create_user(email=test_user_final_email, username=test_user_final_username, password=test_user_final_password) user_datastore.find_or_create_role(name='admin', description='Administrator') user_datastore.find_or_create_role(name='end-user', description='End user') user_datastore.add_role_to_user(email_admin, 'admin') db.session.commit()
def before_first_request(): # Create any database tables that don't exist yet. db.create_all() # Create the Roles "admin" and "end-user" -- unless they already exist user_datastore.find_or_create_role(name='admin', description='Administrator') user_datastore.find_or_create_role(name='end-user', description='End user') # Create two Users for testing purposes -- unless they already exists. # In each case, use Flask-Security utility function to encrypt the password. encrypted_password = utils.encrypt_password(app.config['ADMIN_PASS']) if not user_datastore.get_user(app.config['ADMIN_EMAIL']): user_datastore.create_user(email=app.config['ADMIN_EMAIL'], password=encrypted_password, username=app.config['ADMIN_USERNAME'], name=app.config['ADMIN_NAME']) for specie in ALL_SPECIES: # Commit any database changes; the User and Roles must exist before # we can add a Role to the User specie_to_add = Specie(name=specie) if not db.session.query(Specie)\ .filter(Specie.name == specie_to_add.name).count() > 0: db.session.add(specie_to_add) db.session.commit()
def give_role(role): try: giving_role = user_datastore.find_or_create_role(role) user_datastore.add_role_to_user( current_user, giving_role) #give role to new user IMMEDIATELY db.session.commit() return True except: return False
def db_create(): with app.app_context(): db.create_all() db.session.commit() admin_role = user_datastore.find_or_create_role(name="admin", description="Administrator") user_role = user_datastore.find_or_create_role(name="user", description="User") admin = user_datastore.create_user(email="*****@*****.**", password=encrypt_password("password"), cc_login="******") user_datastore.add_role_to_user(admin, admin_role) user_datastore.add_role_to_user(admin, user_role) admin = user_datastore.create_user(email="*****@*****.**", password=encrypt_password("password"), cc_login="******") user_datastore.add_role_to_user(admin, admin_role) user_datastore.add_role_to_user(admin, user_role) admin = user_datastore.create_user(email="*****@*****.**", password=encrypt_password("password"), cc_login="******") user_datastore.add_role_to_user(admin, admin_role) user_datastore.add_role_to_user(admin, user_role) db.session.commit()
def post(self): # Set default role render structure # admin_role = Role.query.filter_by(name="admin").first() # admin_role.label = "Admin" # admin_role.render_structure = render_admin_client_structure() # manager_role = Role.query.filter_by(name="manager").first() # manager_role.label = "Manager" # manager_role.render_structure = render_manager_client_structure() # user_role = Role.query.filter_by(name="user").first() # user_role.label = "Normal User" # user_role.render_structure = render_user_client_structure() # db_session.commit() if "application/json" in request.headers["Content-Type"]: new_role_name = request.json["new_role_name"] render_structure = request.json["render_structure"] description = request.json["description"] label = request.json["label"] exist_role = Role.query.filter_by(name=new_role_name).first() if exist_role: return { "version": api_version, "message": "Role {} exist in database already".format(new_role_name), "data": { "role": exist_role.name, "description": exist_role.description, "label": exist_role.label, "render_structure": exist_role.render_structure } }, 422 user_datastore.find_or_create_role(new_role_name) db_session.commit() new_role = Role.query.filter_by(name=new_role_name).first() if description: new_role.description = description else: new_role.description = "A brand new role" if label: new_role.label = label else: new_role.label = new_role_name if render_structure: new_role.render_structure = render_structure else: new_role.render_structure = render_user_client_structure() db_session.commit() updated_new_role = Role.query.filter_by(name=new_role_name).first() return { "version": api_version, "message": "Created new role: {}".format(new_role_name), "data": { "role": updated_new_role.name, "label": updated_new_role.label, "description": updated_new_role.description, "render_structure": updated_new_role.render_structure } }, 200 return { "version": api_version, "message": "Check data input", "data": {} }, 404