def post(self): """Creates a new user.""" post_data = request.get_json() username = post_data.get("username") email = post_data.get("email") password = post_data.get("password") role = post_data.get("role") sponsor_logo = post_data.get("sponsor_logo") sponsor_headline = post_data.get("sponsor_headline") sponsor_slug = post_data.get("sponsor_slug") response_object = {} user = get_user_by_email(email) if user: response_object["message"] = "Sorry. That email already exists." return response_object, 400 new_user = add_user(username, email, password, role) response_object["user_id"] = new_user.id response_object[ "message"] = message = f"A new user with email {email} was added!" try: # print(f"Sending email to {email}") msg = "New user account created in GoodDriver App for email: " + email send_email("*****@*****.**", "New user created.", msg) # Req Change 3: send_email(email, "New user account created in GoodDriver App", "Welcome to the GoodDriver App!") except: pass return response_object, 201
def post(self): post_data = request.get_json() username = post_data.get("username") email = post_data.get("email") password = post_data.get("password") user = get_user_by_email(email) if user: auth_namespace.abort(400, "Sorry. That email already exists.") user = add_user(username, email, password) return user, 201
def post(self): """Register and returns new user.""" payload = request.get_json() username = payload.get("username") email = payload.get("email") password = payload.get("password") user = get_user_by_email(email) if user: namespace.abort(400, f"User with email {email} already exists") user = add_user(username, email, password) return user, 201
def post(self): post_data = request.get_json() username = post_data.get("username") email = post_data.get("email") response_object = {} user = get_user_by_email(email) if user: response_object["message"] = "Sorry. That email already exists." return response_object, 400 add_user(username, email) response_object["message"] = f"{email} was added!" return response_object, 201
def register(): print(request) post_data = request.get_json() username = post_data['username'] email = post_data['email'] password = post_data['password'] response_object = {} user = get_user_by_email(email) if user: response_object["message"] = "Sorry. That email already exists." return response_object, 400 add_user(username, email, password) response_object["message"] = f"{email} was added!" return response_object, 201
def post(self): """Creates a new user.""" post_data = request.get_json() username = post_data.get("username") email = post_data.get("email") password = post_data.get("password") # new response_object = {} user = get_user_by_email(email) if user: response_object["message"] = "Sorry. That email already exists." return response_object, 400 add_user(username, email, password) # updated response_object["message"] = f"{email} was added!" return response_object, 201
def post(self): post_data = request.get_json() email = post_data.get("email") password = post_data.get("password") user = get_user_by_email(email) if not user or not bcrypt.check_password_hash(user.password, password): auth_namespace.abort(404, "User does not exist") access_token = user.encode_token(user.id, "access") refresh_token = user.encode_token(user.id, "refresh") response_object = { "access_token": access_token.decode(), "refresh_token": refresh_token.decode(), } return response_object, 200
def post(self): post_data = request.get_json() email = post_data.get("email") password = post_data.get("password") response_object = {} user = get_user_by_email(email) if not user: auth_namespace.abort(404, "User does not exist") lockout_time = datetime.now() - timedelta( seconds=current_app.config.get("LOCKOUT_INTERVAL")) if user.failed_attempts >= 3 and user.failed_attempt_timer and lockout_time < user.failed_attempt_timer: print(f"Exceeded 3 failed attempts") auth_namespace.abort(401, "Exceeded failed login attempts.") print(f"lockout_time: {lockout_time}") print(f"user.failed_attempt_timer: {user.failed_attempt_timer}") if not bcrypt.check_password_hash(user.password, password): if user.failed_attempts == 0: time = func.now() count = user.failed_attempts + 1 else: time = user.failed_attempt_timer count = user.failed_attempts + 1 update_failed_access_attempt(user, count, time) print(f"failed_attempts: {user.failed_attempts}") print(f"failed_attempt_timer: {user.failed_attempt_timer}") auth_namespace.abort(401, "Incorrect email or password.") else: access_token = user.encode_token(user.id, "access") refresh_token = user.encode_token(user.id, "refresh") # print(f"User: {user.id}") update_failed_access_attempt(user, 0, None) print(f"failed_attempts: {user.failed_attempts}") response_object = { "access_token": access_token.decode(), "refresh_token": refresh_token.decode(), "user_id": user.id, } return response_object, 200
def post(self): """Validates credentials and returns access and refresh tokens on success.""" payload = request.get_json() email = payload.get("email") password = payload.get("password") user = get_user_by_email(email) if not user or not user.check_password(password): namespace.abort( 401, f"User with given email {email} or password does not exists") access_token = User.encode_token(user.id, "access").decode() refresh_token = User.encode_token(user.id, "refresh").decode() return { "access_token": access_token, "refresh_token": refresh_token }, 200
def put(self, user_id): """Updates the user.""" payload = request.get_json() username = payload.get("username") email = payload.get("email") user = get_user_by_id(user_id) if not user: namespace.abort(404, f"User with id {user_id} does not exists") if get_user_by_email(email) != user: namespace.abort(400, f"{email} is already taken") update_user(user, username, email) return { "message": f"User {email} was updated", "status": "success" }, 200
def post(self): """Creates a new user.""" payload = request.get_json() username = payload.get("username") email = payload.get("email") password = payload.get("password") user = get_user_by_email(email) if not user: add_user(username, email, password) return { "message": f"user {email} was created", "status": "success" }, 201 else: return { "message": f"user {email} already exists", "status": "failed" }, 400
def login(): post_data = request.get_json() email = post_data['email'] password = post_data['password'] response_object = {} user = get_user_by_email(email) if not user or not bcrypt.check_password_hash(user.password, password): response_object["message"] = "User does not exist" return response_object, 404 access_token = user.encode_token(user.id, "access") refresh_token = user.encode_token(user.id, "refresh") response_object = { 'status': 'success', 'message': 'Successfully logged in.', "access_token": access_token.decode(), "refresh_token": refresh_token.decode(), } # return make_response(jsonify(responseObject)), 200 - no longer needed return response_object, 200
def get_email(email): user = get_user_by_email(email) data = user.to_json() response = jsonify(data) return response