Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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.')
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
    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