Example #1
0
    def post(self):

        data = parser.parse_args()
        username = data['username']
        email = data['email']

        # Checking if  user already exist/created
        if UserModel.find_by_username(username):
            return {'message': f'User {username} already exists'}

        # create new user
        new_user = UserModel(username=username,
                             password=UserModel.generate_hash(
                                 data['password']),
                             email=email)

        # try:

        # Saving user in DB and Generating Access and Refresh token
        new_user.save_to_db()
        access_token = create_access_token(identity=username)
        refresh_token = create_refresh_token(identity=username)

        return make_response(
            jsonify({
                'message': f'User {username} was created',
                'access_token': access_token,
                'refresh_token': refresh_token
            }), 200)
Example #2
0
    def post(self):
        data = _global_parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {"message": "A user with that username already exists."}, 404

        hashedpass = UserModel.generate_hash(data['password'])
        user = UserModel(data['username'], hashedpass)
        try:
            user.save_to_db()        
            return {"message": "User '{}' created successfully.".format(data['username'])}, 201
        except:
            return {"message": "Something went wrong."}, 500
Example #3
0
def initrole():
    db.session.add(RoleModel(name="superuser"))
    db.session.add(RoleModel(name="admin"))
    db.session.add(RoleModel(name="editor"))
    db.session.add(RoleModel(name="author"))
    db.session.add(RoleModel(name="user"))
    pwd = os.getenv('FLASK_ADMIN_PWD') or input("Pls input Flask admin pwd:")
    db.session.add(
        UserModel(username="******",
                  email="*****@*****.**",
                  password=UserModel.generate_hash(pwd),
                  active=True))
    db.session.commit()
    ins = roles_users.insert().values(user_id="1", role_id="1")
    db.session.execute(ins)
    db.session.commit()
    print("Roles added!")
Example #4
0
    def post(self):
        parser.add_argument('name', help='name filed required', required=True)
        parser.add_argument('phone',
                            help='phone field required',
                            required=True)
        parser.add_argument('gender',
                            help='gender field required',
                            required=True)
        parser.add_argument('designation',
                            help='designation field required',
                            required=True)
        parser.add_argument('role', help='role field required', required=True)

        data = parser.parse_args()

        if UserModel.find_by_email(data['email']):
            return {
                'message':
                'User {} already exists with this {}'.format(
                    data['name'], data['email'])
            }

        new_user = UserModel(
            name=data['name'],
            email=data['email'],
            password=UserModel.generate_hash(
                data['password']),  #FOR HASH PASSWORD CALL GENERATE HAS METHOD
            phone=data['phone'],
            gender=data['gender'],
            designation=data['designation'],
            role=data['role'])
        try:
            new_user.save_to_db()
            access_token = create_access_token(identity=data['email'])
            return {
                'message':
                ' {} data created successfully'.format(data['name']),
                'access_token': access_token,
            }
        except:
            return {'message': 'Something went wrong'}, 500
Example #5
0
    def post(self):
        data = parser.parse_args()

        if UserModel.find_by_email(data['email']):
            return {
                'message': 'User {} already exists'.format(data['email'])
            }, 422

        new_user = UserModel(email=data['email'],
                             password=UserModel.generate_hash(
                                 data['password']))

        try:
            new_user.save_to_db()
            access_token = create_access_token(identity=data['email'])
            refresh_token = create_refresh_token(identity=data['email'])
            return {
                'message': 'User {} was created'.format(data['email']),
                'access_token': access_token,
                'refresh_token': refresh_token
            }, 201
        except:
            return {'message': 'Something went wrong'}, 500
Example #6
0
    def put(self):
        json_data = request.get_json()

        if not json_data:
            return {'message': 'No input data provided'},400

        try:
            data = updateUserSchema.load(json_data).data
        except ValidationError as err:
            return err.messages,400

        current_user = UserModel.find_by_user(get_jwt_identity())

        if current_user:
            current_user.password=UserModel.generate_hash(data['password'])
            current_user.email=data['email']
            current_user.mobile=data['mobile']

        try:
            current_user.save_to_db()
            return {'message':'Your Information was Successfully Updated'},200
        except Exception as e:
            print (e)
            return {"message":"An error update the customer"},400
Example #7
0
    def post(self):
        json_data = request.get_json()
        print(json_data,'json_data')
        if not json_data:
            return {'message': 'Error # 27 User Resources, No input data provided'},400

        try:
            data = userRegSchema.load(json_data).data
        except ValidationError as err:
            return err.messages,400


        if data['is_admin'] != '':
            if UserModel.verify_secret_key(data['is_admin']) == 'is_superuser':
                pass
            elif UserModel.verify_secret_key(data['is_admin']) == 'is_admin':
                pass
            else:
                return {'message':'Please provide the correct encryption key'},400
        
        print(data,'data')


        if UserModel.find_by_user(data['username']):
            return {'message':'Response # 35 User Resources, User {} already exists'. format(data['username'])},400

        if not UserModel.verify_secret_key(data['is_admin']) == 'is_superuser':

            approved_zid_list = VbusinessModel.find_all_business_list()

            approved_zid_length = len(approved_zid_list)

            if approved_zid_length == 0:
                return {'message':'Error # 44 in User Resources, Super user has not registered any business for you to use'},400

            if (data['businessId'] != 0 and data['employeeCode'] != "" and approved_zid_length > 0):

                if data['businessId'] not in approved_zid_list:
                    return {'message':'Error # 56 User Resources, This business is not authorized in your system please talk to your IT administrator'},400

                if UserModel.find_by_busIdempCode(data['username'],data['businessId'],data['employeeCode']):
                    return {'message': 'Error # 59 User Resources, This Business ID and Employee Code already exists talk to your adminstrator to Provide you with a new businessId'},400

                if not HrmstModel.find_by_EmployeeDetail(data['businessId'],data['employeeCode']):
                    return {'message':'Error # 62 User Resources, Your Employee Code for Business ID provided does not exist in our system or does not match!'},400

            terminalMax = str(db.session.query(func.max(UserModel.terminal)).first())
            terminalMax = re.sub('[(",)]','',terminalMax)
            terminalMax = terminalMax.replace("'","")

            if terminalMax == 'Super':
                terminalId = 'T0001'
            else:
                terminalId = str(terminalMax)
                terminalId = increment(terminalId)

            employee_name = HrmstModel.find_by_EmployeeDetail(data['businessId'],data['employeeCode']).xname
        else:
            data['username'] = '******'
            employee_name = 'Superuser'
            data['businessId'] = 1
            data['employeeCode'] = 'Super'
            terminalId = 'Super'

        new_user = UserModel(
                            username = data['username'],
                            password = UserModel.generate_hash(data['password']),
                            employee_name = employee_name,
                            email = data['email'],
                            mobile = data['mobile'],
                            businessId = data['businessId'],
                            employeeCode = data['employeeCode'],
                            terminal = terminalId,
                            is_admin = UserModel.verify_secret_key(data['is_admin']),
                            status = UserModel.verify_active_user(data['is_admin'])
                            )
        try:
            new_user.save_to_db()
            if UserModel.verify_secret_key(data['is_admin']) == 'is_admin':
                adminHierarchyDetail = HierarchyModel(
                                                    username=data['username'],
                                                    business_Id=data['businessId'],
                                                    employee_code = data['employeeCode'],
                                                    employee_name = employee_name,
                                                    child_of_code = 'Super',
                                                    child_of_name = 'Superuser'
                                                    )
                adminHierarchyDetail.save_to_db()

            access_token = create_access_token(identity = data['username'])
            refresh_token = create_refresh_token(identity = data['username'])
            current_user = UserModel.find_by_user(data['username'])

            return {
                    'message': 'Response # 148 User Resources, User {} was created'.format(data['username']),
                    'access_token':access_token,
                    'refresh_token':refresh_token,
                    'businessId': current_user.businessId,
                    'employeeCode':current_user.employeeCode,
                    'userRole': current_user.is_admin
                    },200
        except Exception as err:
            return {'message':'Error # 155 User Resources, Issues with saving to database'},400