def loginnormal(): config = web.get_config() if request.method == 'POST': user_email = request.form["user[email]"] user_password = request.form["user[pwd]"] manager = UserManager(web.get_db()) if manager.checkconfirm(user_email) is True: login_user = manager.login_user(user_email, user_password, 'standard') if login_user is not None: id = login_user.get_id() name = img(web.get_db()).all_name() count = img(web.get_db()).all_count() web.login_user(load_user(id)) session['u_email'] = user_email return redirect('/user') else: return render_template("/inforPage.html", infor="Sorry, login failed, please check your Email or password and try again!", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'])) else: send = send_confirm_email token = generate_confirmation_token(user_email) confirm_url = url_for('confirm_email', token=token, _external=True) send(user_email, confirm_url) return render_template("/inforPage.html", infor="Sorry Please Confirm by email! Again. Email Send Again", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']))
def u_email(u_email): u_profile = new_user(web.get_db()).profile(u_email) if request.method == 'POST': email = request.form["email"] lastname = request.form["lastname"] firstname = request.form["firstname"] is_admin = request.form.get('u_isadmin', 'off') == 'on' new_user(web.get_db()).changeProfile(u_email, email, firstname, lastname, is_admin) url = '/admin/user_profile/' + email return redirect(url_for('userlist')) return render_template('admin/user_profile.html', id=u_profile['id'], email=u_profile['email'], lastname=u_profile['lastname'], firstname=u_profile['firstname'], is_admin=u_profile['is_admin'])
def searchplaylist(): if request.method == 'POST': keywords = request.form["keywords"] allTrack = PlaylistManager( web.get_db()).api_getTrackByKeywords(keywords) if allTrack == False: return render_template( '/admin/searchplaylist.html', infor_message="There are no any results, Please input Again!") else: tracklist = {} track = {} user = {} playlist = {} i = 0 alltracklist = {} for track_data in allTrack: i = i + 1 track_author = track_data.t_author track_playlistid = track_data.l_id track_title = track_data.t_title track['TrackTitle'] = track_title track['TrackAuthor'] = track_author playlist_data = PlaylistManager( web.get_db()).api_getPlaylistByID(track_playlistid) userID = playlist_data.u_id playlist['PlaylistName'] = playlist_data.l_name user_detail = UserManager( web.get_db()).api_get_userDetail(userID) user['Gender'] = user_detail.u_gender user['Age'] = user_detail.u_age user['Genger'] = user_detail.u_genre tracklist["Track"] = track tracklist['Playlist'] = playlist tracklist['User'] = user alltracklist[i] = tracklist return render_template('/admin/searchplaylist.html', alltracklist=alltracklist, infor_message=" ") return render_template('/admin/searchplaylist.html')
def signup(): if request.method == 'POST': config = web.get_config() user_email = request.form["u_email"] user_firstname = request.form["u_firstname"] user_lastname = request.form["u_lastname"] user_password = request.form["u_password"] user_age = request.form["u_age"] user_gender = request.form["user[gender]"] if new_user(web.get_db()).check_email(user_email): new_user(web.get_db()).user(user_email, user_firstname, user_lastname, user_password, user_age, user_gender) send = send_confirm_email token = generate_confirmation_token(user_email) confirm_url = url_for('confirm_email', token=token, _external=True) send(user_email, confirm_url) return render_template("/inforPage.html", infor="Please wait for a while and confirm your verification email. Thanks!", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'])) else: return render_template("/inforPage.html", infor="Oops, this user has already existed!", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']))
def forgotpwd(): config = web.get_config() if request.method == 'POST': useremail = request.form["user_email"] newpassword = request.form["user[password_forgot]"] manager = UserManager(web.get_db()) manager.changePasswordBynew(useremail, newpassword) return render_template("/inforPage.html", infor="Password change successfully, please login again.", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']), is_logged_in=web.is_logged_in(), user_email=session['u_email']) else: return render_template("/inforPage.html", infor="Password change failed.", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']), is_logged_in=web.is_logged_in(), user_email=session['u_email'])
def changpassword(): if request.method == 'POST': config = web.get_config() useremail = request.form["change[email]"] oldpassword = request.form["change[oldpassword]"] newpassword = request.form["change[newpassword]"] manager = UserManager(web.get_db()) if manager.changePassword(useremail, oldpassword, newpassword): # should use log out here? return render_template("/inforPage.html", infor="Change password successfully, please login again", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'])) else: return render_template("/inforPage.html", infor="Oops! Failed to change password, please check!", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']))
def confirm_email(token): try: config = web.get_config() email = confirm_token(token) if email is False: return render_template("/inforPage.html", infor="Oops, link expired, please sign up again", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'])) except: flash('The confirmation link is invalid or has expired.', 'danger') user = new_user(web.get_db()).getuser(email) if user.u_isconfirmed: return render_template("/inforPage.html", infor="Account confirmed. Please login.", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'])) else: new_user(web.get_db()).confirm(email) return render_template("/inforPage.html", infor="Congratulations! Confirmation complete. Thanks for your patient!", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']))
def sendemailforgotpassword(): if request.method == 'POST': config = web.get_config() useremail = request.form["user[email_forgot]"] manager = UserManager(web.get_db()) if manager.isUserbyEmail(useremail): send = send_confirm_email token = generate_confirmation_token(useremail) confirm_url = url_for('forgot_confrimurl', token=token, _external=True) send(useremail, confirm_url) return render_template("/inforPage.html", infor="Email sent successfully.", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'])) else: return render_template("/inforPage.html", infor="The email does not exist, please check your email" , **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']) )
def user(): config = web.get_config() if 'u_email' in session: user_profile = web.get_current_user() playlist_manager = PlaylistManager(web.get_db()) playlists = playlist_manager.api_get_playlists() if user_profile.u_isadmin: return redirect('/admin/adminpage') return render_template('user.html', is_logged_in=web.is_logged_in(), user_email=user_profile.u_email, u_email=user_profile.u_email, u_firstname=user_profile.u_firstname, u_lastname=user_profile.u_lastname, u_genre=user_profile.u_genre, playlists=playlists) return redirect('/')
def update_user_profile(): config = web.get_config() if request.method == 'POST': u_email = session['u_email'] new_firstname = request.form.get("new_fristname") new_lastname = request.form.get("new_lastname") new_genre = request.form.get("new_genre") password = request.form.get("password") new_password = request.form.get("new_password") print(new_lastname,new_firstname,new_genre) if UserManager(web.get_db()).update_profile(u_email, new_firstname, new_lastname, new_genre, password, new_password): return render_template("/inforPage.html", infor="Your profile was updated successfully!", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']), is_logged_in=web.is_logged_in(), user_email=session['u_email']) else: return render_template("/inforPage.html", infor="Failed to update your profile, please check and update again.", **dict( gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']), is_logged_in=web.is_logged_in(), user_email=session['u_email'])
def activity_memory(): config = web.get_config() if request.method == 'POST': db = web.get_db() with db.session_scope() as sessions: Playlist.l_name = request.form["playlistTitle"] for track_detail in request.form.getlist('trackDetail'): detail = json.loads(track_detail) Track.t_title = detail['title'] Track.t_author = detail['author'] Track.t_url = detail['url'] sessions.commit() if 'u_email' in session: return render_template('memory.html', gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY'], is_logged_in=web.is_logged_in(), user_email=session['u_email']) else: return render_template( "index.html", **dict(gauth_key=config['GAUTH_KEY'], fb_key=config['FB_KEY']))
def get_messages(thread_id=None): mm = MessageManager(web.get_db()) return dict(data=mm.api_get_messages(thread_id))
def reply(thread_id): params = request.json mm = MessageManager(web.get_db()) return dict(data=mm.api_reply(thread_id, params))
def questionnairepage(): qm = QuestionManager(web.get_db()) que_get = qm.api_categories_and_questions() return render_template('questionnairepage.html', question=que_get)
def login(): should_redirect = False if web.get_current_user() is None: should_redirect = True manager = UserManager(web.get_db()) return dict(redirect='/user' if should_redirect else None, status=manager.api_login_user(request.json))
def userlist(): allemail = new_user(web.get_db()).all_email() return render_template('admin/user.html', allemail=allemail)
def question_editor_list(): am = ActivityManager(web.get_db()) return render_template('questions/list.html', activities=am.api_all_activities())
def admin_questions(): allq = questionnaires(web.get_db()).all_questions() return render_template('admin/questions.html', all_questions=allq)
def emo_count(): imgid = request.args.get('imgid', 0, type=str) emo = img(web.get_db()).emo(imgid) return jsonify(emo_name=emo)
def load_user(id): return UserManager(web.get_db()).login_loader(id)
def message_admin(): params = request.json mm = MessageManager(web.get_db()) return dict(data=mm.api_message_admin(params))