Esempio n. 1
0
def updateUser(email):
    updateUserForm = UpdateUserForm(request.form)

    if request.method == 'POST' and updateUserForm.validate():

        userDict = {}
        db = shelve.open('storage.db', 'w')
        try:
            userDict = db['Users']
        except:
            print("Error in retrieving User from storage.db")
        user = userDict.get(email)
        user.set_firstName(updateUserForm.firstName.data)
        user.set_lastName(updateUserForm.lastName.data)
        user.set_gender(updateUserForm.gender.data)
        user.set_email(updateUserForm.email.data)
        userDict[email] = user
        db['Users'] = userDict

        db.close()

        return redirect(url_for('retrieveUsers'))
    else:
        userDict = {}
        db = shelve.open('storage.db', 'r')
        userDict = db['Users']
        db.close()
        user = userDict.get(email)
        updateUserForm.firstName.data = user.get_firstName()
        updateUserForm.lastName.data = user.get_lastName()
        updateUserForm.gender.data = user.get_gender()
        updateUserForm.email.data = user.get_email()

        return render_template('updateUser.html', form=updateUserForm)
Esempio n. 2
0
def update_user_route():
    before_route_load()

    if not sesh.confirm_logged_in():
        return redirect(url_for('login_route'))

    found_user = user.find_by_id(ObjectId(sesh.get_user_id()))

    if not found_user:
        return redirect(url_for('login_route'))

    form = UpdateUserForm()

    if request.method == 'GET':
        form.email.data = found_user.get('email', '')

    if request.method == 'POST':
        if form.validate():

            email = form.email.data

            ## additional validation
            ## validate unique email
            email_found = user.find_by_email(email)
            email_in_use = False
            if email_found and email_found.get("_id") != ObjectId(
                    sesh.get_user_id()):
                email_in_use = True
                flash("That email is already being used.", 'error')

            ## if no addtional validation errors:
            if not email_in_use:

                # update the user's email
                if user.update_user(_id=ObjectId(sesh.get_user_id()),
                                    email=email):
                    flash("User updated!", 'message')
                    return redirect(url_for('dashboard_route'))
                else:
                    flash("Nothing changed.", 'message')

    return render_template('update_user.html',
                           sesh=sesh,
                           user=found_user,
                           form=form,
                           page_title='Update User')
Esempio n. 3
0
def admin_user():

    create_form = CreateUserForm()
    create_form.roles.query = Role.query.all()

    delete_form = DeleteUserForm()
    delete_form.users.query = User.query.all()

    update_form = UpdateUserForm()
    update_form.users.query = User.query.all()
    update_form.roles.query = Role.query.all()

    if request.method == 'POST':
        if create_form.data['create'] and create_form.validate():
            form = create_form
            user = User.query.filter_by(user_id=form.create_id.data).first()
            role = form.roles.data

            if user == None:
                user = User(user_id=form.create_id.data,
                            user_name=form.create_name.data)
                user.password = '******'
                user.role = role

            db.session.add(user)
            db.session.commit()

            session['status'] = u'success'
            flash(u'成功添加登录用户信息!')
            return redirect(url_for('admin_user'))
        elif delete_form.data['delete'] and delete_form.validate():
            form = delete_form
            user = form.users.data

            db.session.delete(user)
            db.session.commit()

            session['status'] = u'warning'
            flash(u'成功删除登录用户信息!')
            return redirect(url_for('admin_user'))
        elif update_form.data['update'] and update_form.validate():
            form = update_form
            user = form.users.data
            role = form.roles.data
            name = form.update_name.data
            password = form.update_passwd.data
            user.role = role

            if password != '':
                user.password = password
            elif name != '':
                user.user_name = name

            db.session.add(user)
            db.session.commit()

            session['status'] = u'info'
            flash(u'成功修改登录用户信息!')
            return redirect(url_for('admin_user'))

    return render_template('admin-user.html',
                           create_form=create_form,
                           delete_form=delete_form,
                           update_form=update_form)
Esempio n. 4
0
def admin_user():

    create_form = CreateUserForm()
    create_form.roles.query = Role.query.all()

    delete_form = DeleteUserForm()
    delete_form.users.query = User.query.all()

    update_form = UpdateUserForm()
    update_form.users.query = User.query.all()
    update_form.roles.query = Role.query.all()

    if request.method == 'POST':
        if create_form.data['create'] and create_form.validate():
            form = create_form
            user = User.query.filter_by(user_id=form.create_id.data).first()
            role = form.roles.data
            
            if user == None:
                user = User(
                    user_id=form.create_id.data,
                    user_name=form.create_name.data)
                user.password = '******'
                user.role = role

            db.session.add(user)
            db.session.commit()
            
            status = u'success'
            message = u'成功添加登录用户'
            session['message']=messages(status, message)
            return redirect(url_for('admin'))
        elif delete_form.data['delete'] and delete_form.validate():
            form = delete_form
            user = form.users.data
            
            db.session.delete(user)
            db.session.commit()
            
            status = u'warning'
            message = u'成功删除登录用户'
            session['message']=messages(status, message)
            return redirect(url_for('admin'))
        elif update_form.data['update'] and update_form.validate():
            form = update_form
            user = form.users.data
            role = form.roles.data
            name = form.update_name.data
            password = form.update_passwd.data
            user.role = role
            
            if password != '':
                user.password = password
            elif name != '':
                user.user_name = name
            
            db.session.add(user)
            db.session.commit()
            
            status = u'info'
            message = u'成功修改登录用户信息'
            session['message']=messages(status, message)
            return redirect(url_for('admin'))

    return render_template('admin-user.html', create_form=create_form, delete_form=delete_form, update_form=update_form)