예제 #1
0
    def post(self):
        json_data = request.get_json()

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

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

        try:
            current_user = UserModel.find_by_user(data['username'])
        except KeyError:
            return {'message':'Sorry no username has been provided'},400

        if not current_user:
            return {'message': 'User {} doesn\'t exist'.format(data['username'])},400

        if current_user.status == 'inactive':
            return {'message': 'Your account has not been activated by the admin, please talk to your manager'},400

        try:
            logged_user = LoggedModel.find_by_user_businessid(current_user.username, current_user.businessId)
        except Exception as err:
            print(err)

        if logged_user:
            if current_user.username == logged_user.username:
                return {'message':'You are already logged in, only one session allowed per user'}, 400 

        if UserModel.verify_hash(data['password'],current_user.password):
            access_token = create_access_token(identity = data['username'])
            refresh_token = create_refresh_token(identity = data['username'])
            login_user = LoggedModel(
                    ztime = datetime.datetime.now(),
                    zutime = datetime.datetime.now(),
                    username = current_user.username,
                    businessId = current_user.businessId,
                    access_token = access_token,
                    refresh_token = refresh_token,
                    status = 'Logged In'
            )

            try:
                login_user.save_to_db()
            except Exception as err:
                return {'message':'Error # 171 could not save to logged user'}

            return {
                    'message': 'Logged in as {}'.format(current_user.username),
                    'access_token': access_token,
                    'refresh_token': refresh_token,
                    'businessId': current_user.businessId,
                    'employeeCode' : current_user.employeeCode,
                    'userRole': current_user.is_admin,
                    'employee_name':current_user.employee_name
                    },200
        else:
            return {'message': 'Wrong credentials'},400
예제 #2
0
    def post(self, user_id):
        data = request.get_json()
        blocchi = int(data["blocchi"])
        corsie = int(data["corsie"])
        livelli = int(data["livelli"])
        if blocchi > corsie:
            return "troppi blocchi", 406
        user = UserModel.find_by_id(user_id)
        lobby = LobbyModel.find_by_id(user.lobby_id)
        if lobby.status == 1:
            return "match has already started", 403
        # RANDOM POSITION
        user.give_random_corsia(lobby.corsie)
        lobby.status = 1
        users = UserModel.find_all_by_lobby_id_and_status(lobby.id, 1)
        for u in users:
            u.status = 2
            u.jolly_earthquake = 1
            u.jolly_reveal = 1
            u.save_to_db()

        n_users = UserModel.find_all_by_lobby_id_and_status(lobby.id, 0)
        for u in n_users:
            u.jolly_earthquake = 0
            u.jolly_reveal = 0
            u.pedina_number = 0
            u.save_to_db()

        lobby.update_turn()
        lobby.blocchi = blocchi
        lobby.livelli = livelli
        lobby.corsie = corsie
        lobby.save_to_db()
        lobby.create_blocks()
        return "match started", 200
예제 #3
0
    def post(self):

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

        # Searching user by username
        current_user = UserModel.find_by_username(username)

        # user does not exists
        if not current_user:

            return jsonify({'message': f'User {username} doesn\'t exist'})

        # user exists, comparing password and hash
        if UserModel.verify_hash(data['password'], current_user.password):

            # generating access token and refresh token
            access_token = create_access_token(
                identity=username, expires_delta=timedelta(hours=2))
            refresh_token = create_refresh_token(identity=username)

            return jsonify({
                'message': f'Logged in as {username}',
                'access_token': access_token,
                'refresh_token': refresh_token
            })

        else:

            return jsonify({'message': "Wrong credentials"})
예제 #4
0
파일: app.py 프로젝트: lnogueir/p4Game
def register():
	newUser = request.get_json()
	if UserModel.find_by_username(newUser['username']):
		return {'message':'Username already exists'}, 400
	user = UserModel(newUser['username'],hash_password(newUser['password']))
	user.save_to_db()
	return jsonify({'message':'User created successfully'})
예제 #5
0
 def post():
     user = UserRegisterResource.parser.parse_args()
     if UserModel.find_by_username(user.username):
         abort(409, message="User Already Exists")
     new_user = UserModel(**user)
     new_user.add_user()
     return {'message': f"added {new_user.username}"}, 201
예제 #6
0
    def put(self):
        data = UserRegister.parser.parse_args()
        msg = ''

        if data['username']:
            user = UserModel.find_user_details(data['username'])
            if user:
                if data['password']: user.password = data['password']
                #if data['group'] :
                user.access = data['group']
            else:
                user = UserModel(**data)
            try:
                user.save_to_db()
            except:
                return {'message': "Please recheck the entries."}, 400
            msg += "User has been created/updated."

        if data['code']:
            priv = AccessModel.get_priviledges(data['group'])
            if priv:
                priv.access_granted = data['code']
            else:
                priv = AccessModel(data['group'], data['code'])
            try:
                priv.add_to_db()
            except:
                return {
                    'message': "Please check 'group' or 'code' value."
                }, 400
            msg += "Group has been created/updated."

        return {"message": msg}, 200
예제 #7
0
 def post(self):
     lobby = LobbyModel()
     lobby.save_to_db()
     user = UserModel(lobby_id=lobby.id)
     user.save_to_db()
     LobbyModel.erase_unused()
     return [lobby.tag, user.id]
예제 #8
0
 def post(self, lobby_tag):
     lobby = LobbyModel.find_by_tag(lobby_tag)
     if not lobby:
         return "bleah", 432
     user = UserModel(lobby_id=lobby.id)
     user.save_to_db()
     return user.id
예제 #9
0
    def post(self):
        try:
            data = api.payload

            username = data['username']
            email = data['email']
            password = data['password']

            if UserModel.check_email_exist(email):
                return {"status": "Email already exists"}, 400
            else:

                hashed_password = generate_password_hash(password)

                user = UserModel(username=username,
                                 email=email,
                                 password=hashed_password)
                user.create_record()

                return {"status": "User added successfully"}, 201
        except KeyError as e:
            api.abort(500,
                      e.__doc__,
                      status="Could not perform this action",
                      statusCode="500")
        except KeyError as e:
            api.abort(400,
                      e.__doc__,
                      status="Could not perform this action",
                      statusCode="400")
예제 #10
0
    def post(self):
        # post a user using valid credentials
        try:
            data = api.payload

            email = data['email']
            password = data['password']

            # checks if the email exists
            if UserModel.check_email_exist(email):
                # checks if the password is valid
                if UserModel.check_password(email, password):
                    return {'status': 'User successfully logged in'}, 200
                else:
                    return {'status': 'Wrong login credentials!'}, 401
            else:
                return {'status': 'Email does not exist!'}, 401
        except KeyError as e:
            api.abort(500,
                      e.__doc__,
                      status="Could not perform this action",
                      statusCode="500")
        except KeyError as e:
            api.abort(400,
                      e.__doc__,
                      status="Could not perform this action",
                      statusCode="400")
예제 #11
0
    def post(self):
        mail=request.args.get('mail')
        username=request.args.get('username')
        password=request.args.get('password')
        phone=request.args.get('phoneNumber')
        user=UserModel.find_by_mail(mail)
        if user:
            if user.confirmed==True:
                return "mail already taken", 413
            epsw=password.encode('utf-8')
            hashed_password = hashlib.sha512(epsw).hexdigest()
            user.username=username
            user.password=hashed_password
            user.phone_number=phone
            user.creation_date=time.time()
            user.password_change=time.time()
            user.save_to_db()
        else:
            now = time.time()
            epsw=password.encode('utf-8')
            hashed_password = hashlib.sha512(epsw).hexdigest()
            user=UserModel(mail, phone, username, hashed_password)
            user.save_to_db()


        return user.username
        sendmail(mail, username)

        return "user created, to be confirmed", 200
예제 #12
0
파일: users.py 프로젝트: baz1leus/flaskapi
 def post(self):
     user = UserRegisterResource.parser.parse_args()
     if UserModel.find_by_username(user.username):
         return {'message': 'user already exists'}, 409
     user = UserModel(**user)
     user.add_user()
     return {'message': 'user added'}, 201
예제 #13
0
    def post(self):
        user_data = UserRegister.parser.parse_args()
        if UserModel.find_user_by_username(user_data['username']):
            return {"message": "A user with that username already exists"}, 400

        user = UserModel(**user_data)
        user.save_to_db()
        return {"message": "User created successfully."}, 201
예제 #14
0
    def get(self):
        claims = get_jwt_claims()
        if not claims['is_admin']:
            return {'message': 'admin previlege required'},400

        current_user = UserModel.find_by_user(get_jwt_identity())
        data = [statusL.json() for statusL in UserModel.find_by_status(current_user.businessId,'inactive')]
        return data,200
예제 #15
0
 def get(self):
     user_id = get_jwt_identity()
     if user_id:
         user = UserModel.find_by_id(user_id)
         return user.describe(complete=False), 200
     return {
         'users': [user.describe() for user in UserModel.find_all()]
     }, 200
예제 #16
0
 def post(self):
     newUser = UserRegister.parser.parse_args()
     if UserModel.find_by_username(newUser['username']):
         return {'message': 'Username already exists'}, 400
     user = UserModel(newUser['username'],
                      hash_password(newUser['password']), newUser['email'])
     user.save_to_db()
     return {'message': 'User created successfully'}
예제 #17
0
    def post(self):
        data = LoginUser.parser.parse_args()

        if (UserModel.find_by_username(data['email'], data['password'])):
            user = UserModel.find_by_username(data['email'], data['password'])
            return user.json()

        return {'message': 'Invalid login credential'}
예제 #18
0
def add_claims_to_jwt(identity):
    if UserModel.find_by_user(identity).is_admin == 'is_admin':  # instead of hard-coding, we should read from a config file to get a list of admins instead
        return {'is_admin': True,'active':True,'is_superuser':False}
    elif UserModel.find_by_user(identity).is_admin == 'is_superuser':
        return {'is_superuser': True,'is_admin':True,'active':True}
    elif UserModel.find_by_user(identity).status == 'active':
        return {'active': True,'is_admin':False,'is_superuser':False}
    return {'is_admin': False,'is_superuser':False,'active':False}
예제 #19
0
def password_reset(user_id, password):
    user = UserModel.find_by_id(user_id)
    if not user:
        return {'msg': "Invalid User!!"}, 404
    new_password = Hash_Password(password).hash_pwd()
    UserModel.changePwd(user_id, new_password)
    print(user.username)
    return render_template('pwd_changed.html', username=user.username)
예제 #20
0
 def post(self):
     data = UserRegister.parser.parse_args()
     row = UserModel.get_user_by_username(data['username'])
     if row:
         return {"message":"user already exist"},400
     user = UserModel(**data)
     user.save_to_db()
     return {"message":"user created successfully."},201
예제 #21
0
    def get(self):
        claims = get_jwt_claims()
        if not claims['active']:
            return {
                'message':
                'Error # 25 in Order Resource, You have not been activated by the admin'
            }, 400

        username = UserModel.find_by_user(get_jwt_identity())
        ztime = datetime.datetime.now().date()
        ztime_31 = ztime - datetime.timedelta(31)

        try:
            child_list = HierarchyModel.find_by_child_of_code_single_user(
                username.employeeCode)
            child_list = [hier.json()['employee_code'] for hier in child_list]
        except Exception as e:
            print(e)

        if len(child_list) == 0:
            final_list = [username.employeeCode]
        else:
            try:
                full_list = HierarchyModel.find_all_hierarchy()
                full_list = [{
                    'child': hier.json()['employee_code'],
                    'parent': hier.json()['child_of_code']
                } for hier in full_list]
            except Exception as e:
                print(e)

            final_list = [username.employeeCode]
            for i in final_list:
                for j in full_list:
                    if i == j['parent']:
                        final_list.append(j['child'])

        terminal_list = UserModel.find_by_user_list(final_list)
        terminal_list = [term.json()['terminal'] for term in terminal_list]

        try:

            confirmedOrders = OpmobModel.find_confirmed(
                terminal_list, ztime_31)
        except Exception as e:
            print(e)
            return {'message': 'No orders created under your name'}, 400

        invoice_no = ''
        count = 0
        for orders in confirmedOrders:
            if invoice_no != orders.json()['invoice_no']:
                count += 1
                invoice_no = orders.json()['invoice_no']
            else:
                continue

        return {'Number_of_confirmedOrders': count}, 200
예제 #22
0
 def post(cls):
     data = _global_parser.parse_args()
     user = UserModel.find_by_username(data['username'])
     if user and UserModel.verify_hash(data['password'], user.password):
         access_token = create_access_token(identity=user.id)
         return {
             'access_token': access_token
         }, 200
     return {"message": "Invalid credentials."}, 401
예제 #23
0
    def post(self):
        data = UserRegister.parser.parse_args()
        # check user exist or not
        if UserModel.find_user_mapping(data['username']):
            return {'message': 'user already exists'}, 400

        user = UserModel(**data)
        user.save_to_db()
        return {'message': 'User create successfully.'}
예제 #24
0
 def post(self):
   received_data = SignUp.parser.parse_args()
   if not(UserModel.getUserByName(received_data["username"]) in [None, -99]):
     return({'message': 'An user with that name already exists!'}, 400)
   newUser = UserModel(0, received_data['username'], received_data['password'])
   if newUser.register():
     return({'message': 'User has been signed up successfully!'}, 201)
   else:
     return({'Error': 'An Error occurred while creating user {0}!'.format(received_data['username'])}, 404)
예제 #25
0
 def post(self):
     data = attribute.parse_args()
     if UserModel.find_by_login(data['login']):
         return {
             "message": "Login '{}' already exists.".format(data['login'])
         }
     user = UserModel(**data)
     user.save_user()
     return {'message': 'User created successfully'}, 201
예제 #26
0
    def post(self):
        data = self.parser.parse_args()

        if UserModel.find_by_username(data["username"]):
            return jsonify({"message": "User already exist in the database."})

        user = UserModel(**data)
        user.save_to_db()

        return jsonify({"message": "User created successfully."})
예제 #27
0
    def post(self):
        data = RegisterUsers.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {"message": "username already taken"}, 400

        user = UserModel(**data)
        user.save_to_db()

        return {"message": "User registered successfully"}, 201  # created
예제 #28
0
    def post(self):
        data = _parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {'message': 'That username is already registered'}, 400

        new_user = UserModel(**data)
        new_user.save_to_db()

        return {'message': 'User created successfully'}, 201
예제 #29
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_email(data['email']):
            return {"message": "User with that email already exists."}, 400

        user = UserModel(**data)
        user.save_to_db()

        return {"message": "User created successfully."}, 201
예제 #30
0
    def post(self):
        data = UserRegister.parser.parse_args()

        if UserModel.find_by_username(data['username']):
            return {'message': 'The username entered is already taken.'}, 400

        user = UserModel(**data)
        user.save_to_db()

        return {'message': 'User created successfully.'}, 201