def post_token(self): session = Session() if session.get("logged_in") == "true": session.extend() return redirect("/auth/login") from utils.format_checker import nyu_email_check email = request.form.get("email") print("email_received:", email) if not nyu_email_check(email): logbook.info("[GET EMAIL TOKEN] Wrong email format") return {"status": False, "message": "Email is of wrong format. Please provide NYU email"} query = User.select().where(User.email == email) if request.form.get("reset_password") == "true" and not(query.exists()): return {"status": False, "message": "This email has not been registered yet. Please register first"} if request.form.get("reset_password") != "true" and query.exists(): return {"status": False, "message": "This email has been registered"} token = TokenGenerator.generate() session["token"] = token session["email"] = email session.expire(600) email_helper = EmailHelper(receiver_email=email) email_helper.send_token(token) return {"status": True, "message": "A token has been sent to your mail box"}
def get_user_profile(cls, email: str) -> dict: user_id = User.select().where(User.email == email).get().id profile_ins = Profile.select().where(Profile.user_id == user_id).get() result = { "username": profile_ins.username, "grade": profile_ins.grade, "contact_info": profile_ins.contact_info, "avatar_id": profile_ins.avatar } return result
def post_login(self): session = Session() if session.get("logged_in") == "true": session.extend() return redirect("/homepage") email = request.form.get("email") input_password = request.form.get("password") query = User.select().where(User.email == email) if query.exists(): stored_password_hash = [ _ for _ in query][0].password if MD5Helper.evaluate(input_password, stored_password_hash): session["logged_in"] = "true" session["email"] = email session.extend() logbook.info(f"[LOGIN] Login Succeed: [user_email: {email}]") print(f"[LOGIN] Login Succeed: [user_email: {email}]") return redirect("/homepage") else: logbook.info("[LOGIN] Login Failed: wrong password.") return {"status": False, "message": "wrong password"} else: logbook.info("[LOGIN] Login Failed: user not found.") return {"status": False, "message": "Email not found"}
def ctl_admins_list(): from common.models.user import User users = list(User.select().where((User.admin >> True))) print _tabulate_model(users, 'User ID', 'Username', 'Discriminator')