def add_role(): """ Add a role to the database """ check_admin() add_role = True form = RoleForm() if form.validate_on_submit(): role = Role(name=form.name.data, description=form.description.data) try: # add role to the database db.session.add(role) db.session.commit() flash('You have successfully added a new role.') except: # in case role name already exists flash('Error: role name already exists.') # redirect to the roles page return redirect(url_for('admin.list_roles')) # load role template return render_template('admin/roles/role.html', add_role=add_role, form=form, title='Add Role')
def edit_role(id): """ Edit a role """ check_admin() add_role = False role = Role.query.get_or_404(id) form = RoleForm(obj=role) if form.validate_on_submit(): # role.name = form.name.data # role.description = form.description.data # db.session.add(role) form.populate_obj(role) db.session.commit() flash('You have successfully edited the role.') # redirect to the roles page return redirect(url_for('admin.list_roles')) #form.description.data = role.description #form.name.data = role.name return render_template('admin/roles/role.html', add_role=add_role, form=form, title="Edit Role")
def edit_role(id): """ edit a role """ check_admin() add_role = False role = Role.query.get_or_404(id) # prepopulating the form using the above role query form = RoleForm(obj=role) # populating the database with info from the submitted form if form.validate_on_submit(): role.name = form.name.data role.description = form.description.data db.session.add(role) db.session.commit() flash(' you have successfully edited the role ') # redirect to the roles page to view the changes return redirect(url_for('admin.list_roles')) form.description.data = role.description form.name.data = role.name return render_template('admin/roles/role.html', add_role=add_role, form=form, title="Edit Role")
def edit_role(id): """ Edit a role. :param id: :return: """ check_admin() role = Role.query.get_or_404(id) form = RoleForm(obj=role) if form.validate_on_submit(): role.name = form.name.data role.description = form.description.data try: db.session.add(role) db.session.commit() flash('Successfully edited the role: "%s".' % str(role.name)) except: db.session.rollback() flash('failed to edit the role: "%s".' % str(role.name)) return redirect(url_for('admin.roles')) form.description.data = role.description form.name.data = role.name return render_template('admin/roles/edit_role.html', title='Edit Role', form=form) # type: RoleForm
def role_edit(id=None): # 角色修改 form = RoleForm() form.submit.label.text = u'修改' role = Role.query.get_or_404(id) is_flag = True if request.method == 'GET': auths = role.auths # get时进行赋值。应对无法模板中赋初值 form.name.data = role.name form.auths.data = list(map(lambda v: int(v), auths.split(","))) if form.validate_on_submit(): if role.name != form.name.data and Role.query.filter_by( name=form.name.data).first(): is_flag = False flash(u'您输入的角色已存在', 'err') if is_flag == False: return render_template('admin/role_edit.html', form=form) role.name = form.name.data role.auths = ','.join(map(lambda v: str(v), form.auths.data)) db.session.add(role) oplog = Oplog(user_id=session['user_id'], ip=request.remote_addr, reason=u'修改角色:%s' % role.name) db.session.add(oplog) db.session.commit() flash(u'角色修改成功', 'ok') return redirect(url_for('admin.role_list')) return render_template('admin/role_edit.html', form=form)
def edit_role(id): """ Edit a role """ check_admin() add_role = False role = Role.query.get_or_404(id) form = RoleForm(obj=role) if form.validate_on_submit(): role.name = form.name.data role.description = form.description.data db.session.add(role) db.session.commit() flash('Cargo editado com sucesso.') # redirect to the roles page return redirect(url_for('admin.list_roles')) form.description.data = role.description form.name.data = role.name return render_template('admin/roles/role.html', add_role=add_role, form=form, title="Editar Cargo")
def add_role(): """ Add a role to the database """ check_admin() add_role = True form = RoleForm() if form.validate_on_submit(): role = Role(name=form.name.data, description=form.description.data) try: # add role to the database db.session.add(role) db.session.commit() flash('Cargo editado com sucesso.') except: # in case role name already exists flash('Erro: nome do cargo ja existe.') # redirect to the roles page return redirect(url_for('admin.list_roles')) # load role template return render_template('admin/roles/role.html', add_role=add_role, form=form, title='Adicionar Cargo')
def add_role(): check_admin() add_role = True form = RoleForm() if form.validate_on_submit(): role = Role(name=form.name.data, description=form.description.data) try: db.session.add(role) db.session.commit() flash('You have successfully added a new role.') except: flash('Role already exists.') return redirect(url_for('admin.list_roles')) return render_template('admin/roles/role.html', add_role=add_role, form=form, title='Add Role')
def role_add(): form = RoleForm() if form.validate_on_submit(): data = form.data role_num = Role.query.filter_by(name=data["role_name"]).count() if role_num == 1: flash("角色名称已经存在!", "err") return redirect(url_for("admin.role_add")) role = Role( name=data["role_name"], auths=','.join(map(lambda v: str(v), data["auths"])), ) db.session.add(role) db.session.commit() flash("添加角色成功!", "ok") # return redirect(url_for("admin.role_add",id=id)) return redirect(url_for("admin.role_list", page=1)) return render_template("admin/role_add.html", form=form)
def role_edit(id=None): form = RoleForm() role = Role.query.get_or_404(id) if request.method == "GET": auths = role.auths form.auths.data = list(map(lambda v: int(v), auths.split(","))) if form.validate_on_submit(): data = form.data role_num = Role.query.filter_by(name=data["role_name"]).count() if role.name != data["role_name"] and role_num == 1: flash("角色名称已经存在!", "err") return redirect(url_for("admin.role_edit", id=id)) role.name = data["role_name"] role.auths = ','.join(map(lambda v: str(v), data["auths"])), db.session.add(role) db.session.commit() flash("修改角色成功!", "ok") #return redirect(url_for("admin.role_edit",id=id)) return redirect(url_for("admin.role_list", page=1)) return render_template("admin/role_edit.html", form=form, role=role)
def add_role(): """ Add a role to the database. :return: """ check_admin() form = RoleForm() if form.validate_on_submit(): role = Role(name=form.name.data, description=form.description.data) try: db.session.add(role) db.session.commit() flash('Successfully added a new role: "%s".' % str(role.name)) except: db.session.rollback() flash('Failed to add a new role: "%s".' % str(role.name)) return redirect(url_for('admin.roles')) return render_template('admin/roles/add_role.html', title='Add Role', form=form)
def edit_role(id): check_admin() add_role = False role = Role.query.get_or_404(id) form = RoleForm(obj=role) if form.validate_on_submit(): role = form.name.data description = form.description.data db.session.add(role) db.session.commit() flash('You have successfully edited a role') return redirect(url_for('admin.list_roles')) form.description.data = role.description form.name.data = role.name return render_template('admin/roles/role.html', add_role=add_role, form=form, role=role, title="Edit Role")
def edit_role(id): check_admin() add_role = False role = Role.query.get_or_404(id) form = RoleForm(obj=role) if form.validate_on_submit(): role.name = form.name.data role.description = form.description.data try: db.session.add(role) db.session.commit() logger.info('role edited ') flash('You have successfully edited the role.') return redirect(url_for('admin.list_roles')) except Exception as e: logger.error('role cannot be edited') flash("cannot edit") form.description.data = role.description form.name.data = role.name return render_template('admin/roles/role.html', add_role=add_role, form=form, title="Edit Role")
def role_add(): # 角色添加 form = RoleForm() is_flag = True if form.validate_on_submit(): if Role.query.filter_by(name=form.name.data).first(): is_flag = False flash(u'您输入的角色已存在', 'err') if is_flag == False: return render_template('admin/role_add.html', form=form) role = Role( name=form.name.data, # lambda v: str(v) 匿名函数,将v转换为字符串 # map(f, [list])内置函数,接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回 auths=','.join(map(lambda v: str(v), form.auths.data))) db.session.add(role) oplog = Oplog(user_id=session['user_id'], ip=request.remote_addr, reason=u'添加角色:%s' % form.name.data) db.session.add(oplog) db.session.commit() flash(u'角色添加成功', 'ok') return redirect(url_for('admin.role_add')) return render_template('admin/role_add.html', form=form)
def admin(): role_form = RoleForm() users = User.query.all() usernames = [u.username for u in users] role_form.username.validators.append( AnyOf(usernames, message="Username not found.")) if role_form.validate_on_submit(): form = role_form user = User.query.filter(User.username == form.username.data).one() try: role = Role.query.filter(Role.name == form.role.data).one() except NoResultFound: role = Role(name=form.role.data) db.session.add(role) if form.action.data == "add": if role not in user.roles: user.roles.append(role) db.session.add(user) elif form.action.data == "remove": if role in user.roles: user.roles.remove(role) db.session.add(user) db.session.commit() return redirect(url_for("horti.admin")) group_form = GroupForm() if group_form.validate_on_submit(): form = group_form name = form.name.data if form.action.data == "add": tweety.post_groups(name=name) elif form.action.data == "remove": tweety.delete_group(name) groups = cache(tweety.get_groups, force_refresh=True) return redirect(url_for("horti.admin")) # display groups have_groups = False while not have_groups: groups = cache(tweety.get_groups) if not isinstance(groups, Response): have_groups = True groups.sort() sleep(0.2) # display roles roles = {} for user in users: roles[user.username] = ", ".join(sorted([r.name for r in user.roles])) template_data = { "role_form": role_form, "users": users, "roles": roles, "groups": groups, "group_form": group_form } return render_template("admin.html", title=make_title("Admin"), **template_data)