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']))
예제 #2
0
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'])
예제 #3
0
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'])
                                   )
예제 #9
0
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'])
예제 #11
0
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']))
예제 #12
0
def get_messages(thread_id=None):
    mm = MessageManager(web.get_db())
    return dict(data=mm.api_get_messages(thread_id))
예제 #13
0
def reply(thread_id):
    params = request.json
    mm = MessageManager(web.get_db())
    return dict(data=mm.api_reply(thread_id, params))
예제 #14
0
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))
예제 #16
0
def userlist():
    allemail = new_user(web.get_db()).all_email()
    return render_template('admin/user.html', allemail=allemail)
예제 #17
0
def question_editor_list():
    am = ActivityManager(web.get_db())
    return render_template('questions/list.html',
                           activities=am.api_all_activities())
예제 #18
0
def admin_questions():
    allq = questionnaires(web.get_db()).all_questions()
    return render_template('admin/questions.html', all_questions=allq)
예제 #19
0
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)
예제 #21
0
def message_admin():
    params = request.json
    mm = MessageManager(web.get_db())
    return dict(data=mm.api_message_admin(params))