Пример #1
0
def add_default_users(db):
    try:
        UserRole.add_default_roles()
        User.add_default_users()
    except sqlalchemy.exc.IntegrityError as e:
        db.session.rollback()
        print(e)
Пример #2
0
 def setUpClass(cls):
     cls.app = create_app('testing')
     cls.app_context = cls.app.app_context()
     cls.app_context.push()
     db.drop_all()
     db.create_all()
     # insert role
     role1 = Role(id=1,role_name='admin')
     role2 = Role(id=2,role_name='normal')
     db.session.add_all([role1,role2])
     db.session.commit()
     # insert an admin
     u = User(username='******', email='*****@*****.**')
     u.set_password('123456')
     db.session.add(u)
     db.session.commit()
     userroles = UserRole(user_id=u.id, role_id = 1)
     db.session.add(userroles)
     db.session.commit()
     # insert an user
     user = User(username='******', email='*****@*****.**')
     user.set_password('123456')
     db.session.add(user)
     db.session.commit()
     userroles = UserRole(user_id=user.id, role_id = 2)
     db.session.add(userroles)
     db.session.commit()
     cls.client = cls.app.test_client(use_cookies=True)
Пример #3
0
def addAdminUsers():

    # check if roles are present and if not then add them
    roles = []
    roles = Role.query.all()
    if len(roles) == 0:
        roles = addTestRoles()  # pragma: no cover

    user1 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    user2 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    db.session.add(user1)
    db.session.add(user2)
    db.session.commit()

    users = [user1, user2]

    # add all users to two admin roles
    userole1 = UserRole(user_id=user1.id, role_id=1)
    userole2 = UserRole(user_id=user2.id, role_id=2)
    db.session.add(userole1)
    db.session.add(userole2)

    db.session.commit()
Пример #4
0
def create_fake_users(db, nb_users=50, fake=None):
    from app.models import User
    from app.models import UserRole
    from app.models import Whitelist

    if fake is None:
        fake = Faker()

    #logging.getLogger('faker.factory').setLevel(logging.ERROR)

    wl1 = Whitelist(label=fake.word())
    admin = UserRole(label=fake.word())
    contributor = UserRole(label=fake.word())

    db.session.add(wl1)
    db.session.add(admin)
    db.session.add(contributor)
    db.session.commit()

    roles = [admin, contributor]
    whitelists = [wl1]

    for i in range(0, nb_users):
        u1 = User(username=fake.user_name(),
                  password=fake.user_name(),
                  email=fake.free_email(),
                  active=1,
                  first_name=fake.first_name(),
                  last_name=fake.last_name())
        u1.role = roles[1]
        u1.whitelists = whitelists
        db.session.add(u1)
        db.session.commit()
Пример #5
0
def create_fake_users(db, nb_users=50, fake=None):
    from app.models import User
    from app.models import UserRole
    from app.models import Whitelist

    if fake is None:
        fake = Faker()

    wl1 = Whitelist(label=fake.word())
    admin = UserRole(label=fake.word())
    contributor = UserRole(label=fake.word())

    db.session.add(wl1)
    db.session.add(admin)
    db.session.add(contributor)
    db.session.commit()

    roles = [admin, contributor]
    whitelists = [wl1]
    try:
        for i in range(0, nb_users):
            u1 = User(username=fake.user_name(),
                      password=fake.user_name(),
                      email=fake.free_email(),
                      active=random.choice([0, 1]),
                      first_name=fake.first_name(),
                      last_name=fake.last_name())
            u1.role = random.choice(roles)
            u1.whitelists = [random.choice(whitelists)]
            db.session.add(u1)
        db.session.commit()
    except IntegrityError as e:
        db.session.rollback()
Пример #6
0
 def test_role_cascade_reaction(self):
     usr = User(username='******', email='*****@*****.**')
     usr.set_password('test2')
     db.session.add(usr)
     db.session.commit()
     userrole = UserRole(user_id=usr.id)
     userrole.role_id = 2
     db.session.add(userrole)
     db.session.commit()
     user = User.query.filter_by(username='******').first()
     db.session.delete(user)
     db.session.commit()
     role = UserRole.query.filter_by(user_id=user.id).first()
     self.assertIsNone(role)
Пример #7
0
    def get_role(self, username):

        user = self.read(username)

        role = UserRole.select().where(UserRole.id == user.role_id).get()

        return role.role
Пример #8
0
    def create(self, role, **kwargs):

        role = UserRole.select().where(UserRole.role == role).get()

        kwargs["password"] = hash_password(kwargs["password"])

        user = User.create(role_id=role.id, **kwargs)

        return user
Пример #9
0
    def read_by_role(self, role):

        role = UserRole.select().where(UserRole.role == role).get()

        users = User.select().where(User.role_id == role.id)

        result = list()

        for user in users:

            result.append(user)

        return result
Пример #10
0
        def decorated(*args, **kwargs):

            app = server.get_app()
            dbo = app.user_dbo

            token = request.headers['X-API-KEY']

            user = dbo.read_by_key(token)

            user_role = UserRole.select().where(UserRole.id==user.role_id).get()

            if not user_role.role in roles:
                return {'message' : 'You are not authorized.'}, 401

            return f(*args, **kwargs)
Пример #11
0
        def decorated(*args, **kwargs):

            app = server.get_app()
            dbo = app.user_dbo

            user = dbo.read_by_id(current_user.id)

            user_role = UserRole.select().where(
                UserRole.id == user.role_id).get()

            if not user_role.role in roles:
                message = "Unauthorized"
                description = "You do not have authorization to enter this page"

                return render_message(message, description)

            return f(*args, **kwargs)
Пример #12
0
    def update(self, username, role="", **kwargs):

        user = self.read(username)

        if "new_username" in kwargs:
            kwargs["username"] = kwargs["new_username"]
            del kwargs["new_username"]

        for key, value in kwargs.items():
            setattr(user, key, value)

        if role:
            role = UserRole.select().where(UserRole.role == role).get()

            user.role_id = role.id

        user.save()

        return True
Пример #13
0
def set_up():
    db.create_all()
    UserRole.insert_roles()
    CompanyFeature.insert_features()
Пример #14
0
def create_app():
    from app.config import Config, ConfigDB
    app.config.from_object(Config)
    app.config.from_object(ConfigDB)
    CORS(app)
    db.init_app(app)
    ma.init_app(app)
    configure_uploads(app, files)
    patch_request_class(app)  # set maximum file size, default is 16MB
    excel.init_excel(app)

    with app.app_context():
        from app.models import IndustryArea, EmailStatus, UserRole, User, EmployeeCompany, Employee, \
            Company, CompanyEmailStat, AlumnusEmailStat
        db.create_all()  # create tables in database
        if not UserRole.UserRole.get_all():
            #  initialise default super admin role, dev advices to assign the role id to a user first before login into the system
            new = UserRole.UserRole(
                user_role_description="SuperAdmin",
                user_role_json=json.loads(
                    '{"roles":"full","areas":"full","users":"full","companies":"full","employees":"full","reports":"full","conversations":"full"}'
                ))
            new.save()
        if not IndustryArea.IndustryArea.get_all():
            #  initialise default super admin role, dev advices to assign the role id to a user first before login into the system
            new = IndustryArea.IndustryArea(
                industry_name="All",
                industry_desc=
                "This default area is for user that can manage all company, which separated from admin role.",
                is_read_only=True)
            new.save()
        if not EmailStatus.EmailStatus.get_all():
            #  initialise default super admin role, dev advices to assign the role id to a user first before login into the system
            new = EmailStatus.EmailStatus('Lead-Opened', 'New lead')
            new.save()
            new = EmailStatus.EmailStatus('Lead-Processing',
                                          'Discussion undergoing on')
            new.save()
            new = EmailStatus.EmailStatus('Lead-Closed',
                                          'Closed case on the lead')
            new.save()
            new = EmailStatus.EmailStatus('Opportunity-Opened',
                                          'New opportunity')
            new.save()
            new = EmailStatus.EmailStatus('Opportunity-Processing',
                                          'Discussion undergoing on')
            new.save()
            new = EmailStatus.EmailStatus('Opportunity-Closed',
                                          'Closed case on the opportunity')
            new.save()
        migrate = Migrate(
            app, db, compare_type=True
        )  # provide Flask Migrate command ability, set column type to detect in migrate
        files_path = Config.UPLOADS_DEFAULT_DEST + 'files/'
        template_path = files_path + "company_template.csv"
        if not os.path.exists(files_path):
            os.makedirs(files_path)
        if not os.path.exists(template_path):
            with open(Config.UPLOADS_DEFAULT_DEST +
                      'files/company_template.csv',
                      mode='w') as csv_file:
                fieldnames = [
                    'company_reg_num', 'company_name', 'company_size',
                    'company_industry_id', 'company_desc', 'company_address',
                    'company_postcode', 'company_city', 'company_state',
                    'company_country', 'company_office_contact_num'
                ]
                writer = csv.DictWriter(csv_file, fieldnames=fieldnames)

                writer.writeheader()

    from app.modules.LoginModule import routes as login_route
    app.register_blueprint(login_route.login_bp)
    from app.modules.UserModule import routes as user_route
    app.register_blueprint(user_route.user_bp)
    from app.modules.UserRoleModule import routes as role_route
    app.register_blueprint(role_route.user_role_bp)
    from app.modules.IndustryAreaModule import routes as area_route
    app.register_blueprint(area_route.industry_area_bp)
    from app.modules.CompanyModule import routes as comp_route
    app.register_blueprint(comp_route.company_bp)
    from app.modules.EmployeeModule import routes as emp_route
    app.register_blueprint(emp_route.employee_bp)
    from app.modules.EmailStatModule import routes as email_route
    app.register_blueprint(email_route.email_bp)
    from app.modules.DashboardModule import routes as home_route
    app.register_blueprint(home_route.home_bp)

    from app.services.AuthMiddleware import AuthMiddleware
    app.wsgi_app = AuthMiddleware(app.wsgi_app)
Пример #15
0
def assign_student_roles(db, role_id):
    for student in Student.query.all():
        user = User.query.filter_by(username=student.username).first()
        db.session.add(UserRole(user_id=user.id, role_id=role_id))
Пример #16
0
from app import db
from app.models import User, Post, Project, ProjectImage, Address, Link, Tag, UserRole

db.session.add(Tag(category_id=1, name='Retail'))
db.session.add(Tag(category_id=1, name='Commercial'))
db.session.add(Tag(category_id=1, name='Office'))
db.session.add(Tag(category_id=1, name='Residential'))
db.session.add(Tag(category_id=2, name='Single Family Residence'))
db.session.add(Tag(category_id=2, name='Duplex'))
db.session.add(Tag(category_id=2, name='Multifamily'))
db.session.add(Tag(category_id=2, name='Townhouse'))
db.session.add(Tag(category_id=2, name='Condominium'))
db.session.add(Tag(category_id=2, name='Apartment'))
db.session.add(Tag(category_id=2, name='Studio'))
db.session.add(Tag(category_id=3, name='Low Rise (Garden)'))
db.session.add(Tag(category_id=3, name='Mid Rise'))
db.session.add(Tag(category_id=3, name='High Rise'))
db.session.add(Tag(category_id=3, name='Dormitory'))
db.session.add(Tag(category_id=3, name='Manufactured'))
db.session.add(Tag(category_id=4, name='Landscape'))
db.session.add(Tag(category_id=4, name='Interior'))
db.session.add(Tag(category_id=4, name='Exterior'))
db.session.add(UserRole(name='Member'))
db.session.add(UserRole(name='Reviewer'))
db.session.add(UserRole(name='Moderator'))
db.session.add(UserRole(name='Admin'))
db.session.commit()
db.session.close()
Пример #17
0
def addNormalUsers():

    # check if countries are present and if not then add them
    roles = []
    roles = Role.query.all()
    if len(roles) == 0:
        roles = addTestRoles()

    user1 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    user2 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    user3 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 deleted=True,
                 delete_date=make_datetime_string(),
                 email='*****@*****.**')

    user4 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    user5 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    user6 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created='Sun, 09 Jun 2019 18:33:32 GMT',
                 last_login='******',
                 email='*****@*****.**')

    user7 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created='Sun, 09 Jun 2019 18:33:32 GMT',
                 last_login=make_datetime_string(),
                 email='brü[email protected]')

    user8 = User(public_id=str(uuid.uuid4()),
                 username='******',
                 password=generate_password_hash('password'),
                 created=make_datetime_string(),
                 last_login=make_datetime_string(),
                 email='*****@*****.**')

    db.session.add(user1)
    db.session.add(user2)
    db.session.add(user3)
    db.session.add(user4)
    db.session.add(user5)
    db.session.add(user6)
    db.session.add(user7)
    db.session.add(user8)
    db.session.commit()

    users = [user1, user2, user3, user4, user5, user6, user7, user8]

    # add all users to users role
    for user in users:
        userole = UserRole(user_id=user.id, role_id=3)
        db.session.add(userole)

    db.session.commit()

    return users
Пример #18
0
def assign_mentor_roles(db, role_id):
    for mentor in Mentor.query.all():
        user = User.query.filter_by(username=mentor.username).first()
        db.session.add(UserRole(user_id=user.id, role_id=role_id))
Пример #19
0
def make_admin(db, username):
    user = User.query.filter_by(username=username).first()
    db.session.add(UserRole(user_id=user.id, role_id=1))
Пример #20
0
def add_default_users(db):
    UserRole.add_default_roles()
    db.session.flush()
    User.add_default_users()