def removeRole(): try: claims = get_jwt() if claims["role"] == "admin": data = request.json required_keys = ['user_id', 'role_id'] if not has_required_keys(data, required_keys): return get_client_error_response( message='Invalid request. Fields required ({})'.format( required_keys), error_code=422) user_details = User.find_by_id(data.get('user_id')) role_details = Role.find_by_id(data.get('user_id')) if user_details is None or role_details is None: return get_error_response(message='Invalid user details') user_details.roles.remove(role_details) db.session.commit() return get_success_response(message='Role has been assigned', response_code=200) else: return get_client_error_response(message='Unauthorize', error_code=401) except Exception as e: print(e) return get_server_error_response()
def create(): try: claims = get_jwt() if claims["role"] == "admin": data = request.json required_keys = ['first_name', 'last_name', 'email'] if not has_required_keys(data, required_keys): return get_client_error_response( message='Invalid request. Fields required ({})'.format( required_keys), error_code=422) if not is_valid_email(data.get('email')): return get_client_error_response( message='Invalid email ({})'.format(data.get('email'))) exists = User.find_by_email(data.get('email')) if exists is not None: return { 'message': 'Email {} already exists'.format(data.get('email')) } password = User.generate_hash('password') new_user = User(email=data.get('email'), first_name=data.get('first_name'), last_name=data.get('last_name'), password=password, user_type=2) new_user.save_to_db() return get_success_response(message='User has been created', response_code=201) else: return get_client_error_response(message='Unauthorize', error_code=401) except Exception as e: print(e) return get_server_error_response()
def login(): try: data = request.json required_keys = ['email', 'password'] if not has_required_keys(data, required_keys): return get_client_error_response( message='Invalid request. Fields required ({})'.format( required_keys), error_code=422) if not is_valid_email(data.get('email')): return get_client_error_response( message='Invalid email ({})'.format(data.get('email'))) admin_user_details = User.query.filter_by(email=data.get('email'), user_type=1).first() if admin_user_details is None: return get_client_error_response(message='Invalid credentials!', error_code=401) if admin_user_details.deleted_at is not None: return get_client_error_response(message='Invalid credentials!', error_code=401) status = User.verify_hash(data.get('password'), admin_user_details.password) if status == False: return get_client_error_response(message='Invalid credentials!', error_code=401) additional_claims = {"role": "admin"} access_token = create_access_token(admin_user_details, additional_claims=additional_claims) admin_user_details.access_token = access_token db.session.commit() return get_success_response(message='Login successful', data=admin_user_details.to_json()) except Exception as e: print(e) return get_server_error_response()
def list(page=1): try: claims = get_jwt() if claims["role"] == "admin": items = [] per_page = 2 role_list = Role.query.all() for single_role in role_list: items.append(single_role.to_json()) return get_success_response(message='Role list has been fetched.', data=items) else: return get_client_error_response(message='Unauthorize', error_code=401) except Exception as e: print(e) return get_server_error_response()
def create(): try: claims = get_jwt() if claims["role"] == "admin": data = request.json required_keys = ['role_name', 'description'] if not has_required_keys(data, required_keys): return get_client_error_response( message='Invalid request. Fields required ({})'.format( required_keys), error_code=422) new_role = Role(role_name=data.get('role_name'), description=data.get('description')) new_role.save_to_db() return get_success_response(message='Role has been created', response_code=201) else: return get_client_error_response(message='Unauthorize', error_code=401) except Exception as e: print(e) return get_server_error_response()