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)
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')
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)
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)