def put(self): data = request.get_json() identity = get_jwt_identity() user = UserModel.get_by_username(identity) if not user: return {MESSAGE: "user not found"}, 400 if EMAIL in data: email_user = UserModel.get_by_email(data[EMAIL]) if EMAIL in data and email_user and email_user != user: return {MESSAGE: "email already exists"}, 400 if not WhitelistEmailsModel.check_email(data[EMAIL]): return {MESSAGE: "email is not valid"}, 400 if PASSWORD in data: if "old_password" not in data: return {MESSAGE: "current password is required to set new password"}, 400 if not UserModel.login_valid_username(user.username, data["old_password"]): return {MESSAGE: "wrong current password"}, 400 del data["old_password"] user.update_to_mongo(data) oj_info = OjModel.get_by_username(identity) if oj_info: oj_info.update_to_mongo(data) threading.Thread(target=update_user_with_username, args=[user.username]).start() return {MESSAGE: "User data is being updated"}, 200
def post(self): data = request.get_json() if UserModel.get_by_username(data[USERNAME]): return {MESSAGE: "A user with that username already exists"}, 400 if UserModel.get_by_email(data[EMAIL]): return {MESSAGE: "A user with that email already exists"}, 400 if not WhitelistEmailsModel.check_email(data[EMAIL]): return {MESSAGE: "email is not valid"}, 400 data["password"] = UserModel.encrypt_password(data["password"]) user = UserModel(**data) user.save_to_mongo() oj_data = OjModel(data[USERNAME]) oj_data.save_to_mongo() # app.logger.info("User created successfully " + user.username + " " + user.email) return {MESSAGE: "User created successfully."}, 201
def post(self): data = request.get_json() identity = get_jwt_identity() user = UserModel.get_by_username(identity) if not user: return {MESSAGE: "user not found"}, 400 if EMAIL in data: email_user = UserModel.get_by_email(data[EMAIL]) if EMAIL in data and email_user and email_user != user: return {MESSAGE: "email already exists"}, 400 user.update_to_mongo(data) oj_info = OjModel.get_by_username(identity) if oj_info: oj_info.update_to_mongo(data) update_user_with_username(user.username) return {MESSAGE: "data updated"}, 200
def post(self): data = request.get_json() if USERNAME in data: user = UserModel.get_by_username(data[USERNAME]) elif EMAIL in data: user = UserModel.get_by_email(data[EMAIL]) else: return {MESSAGE: "username or email is required"}, 400 if not user: return {MESSAGE: "invalid username or password"}, 400 temp_pass = get_random_alphanumeric_string(8) user.reset_pass = { "expires_on": (datetime.today() + timedelta(hours=1)).timestamp(), "temp_pass": UserModel.encrypt_password(temp_pass) } user.update_to_mongo() mail_template = MailTemplate.get_by_template_name("password_reset") threading.Thread(target=mail_sender.send_mail, args=[[user.email], mail_template.subject, mail_template.message % temp_pass]).start() return {MESSAGE: "Please check your mail inbox"}, 200