1.管理员管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
管理员管理
需求:
1.管理员的账号添加一个验证规则:必须唯一
2.添加管理员时添加一个确认密码,只有两个密码输入一致时才可以添加
3.添加管理员时把密码加密之后存到数据库中
4.修改管理员时和添加管理员一样也要有前三个需求,如果密码不填就代表不修改密码
5.在添加修改管理员时,可以选择管理员所在的角色(可以选择多个角色)
6.删除管理员时,要把这个管理员所在角色的数据一起删除掉
7.超级管理员是不能被禁用和删除的
8.超级管理员可以修改所有的管理员的信息,但普通管理员只能修改自己的信息
实际操作:
需求一、
修改管理员模型添加一个新的验证规则即可:
需求二、
1.在表单中添加一个确认密码:
2.在管理员模型中再添加一个验证规则:两次输入的密码必须一致
设置允许接收cpassword字段:
需求三、加密之后入库
需求四、
1.修改时密码可以为空,为空代表不修改密码,修改表单验证的规则:
2.我们希望不填密码就不改,但现在不填就把密码修改为空了:
需求5:在添加修改管理员时可以选择所在的角色
1.在添加和修改管理员的表单列出所有的角色并制作成复选框
a.在控制器先取出所有角色的数据
b. 在添加和修改的表单中循环输出所有的角色
效果:
2.提交表单之后把管理员所在角色的数据保存到管理员角色表:
在添加管理员后的函数的:
添加管理员:
在修改管理员时,管理员当前所在的角色默认为选中状态:
1.先取出修改的管理员当前所在的角色的ID,并拼成一个字符串:3,4,5,6,7,8
在控制器添加代码:
2.在循环输出角色时判断如果这个角色的ID在上面的字符串里就代表当前管理员在这个角色里,就设置为选中状态:
3.提交表单时处理表单把修改的角色信息更新到数据库中
思路:把删除当前管理员之前所在角色的数据,把这次修改的当成新的数据重新插入到中间表即可
做法:把添加时的代码复制到修改时里,再添加删除的代码
需求六、现在管理员的信息是存到两个表中的:admin和admin_role表,当前删除管理员信息要把Admin_role中管理员对应的数据也一起删除掉:
需求7:超级管理员不能修改删除和禁用:
无法禁用:
把超级管理员删除的按钮去掉:
lst.html:
效果:
需求八、
在管理员控制器的edit方法中添加代码:
到此RBAC中所有表的操作都基本完成了,现在可以在后台添加管理员和分配权限,之后要做的就是使用这五个表中的数据来在程序上验证权限。
扩展:用户体验可以直接通过点击启用按钮来修改启用状态(AJAX)
修改HTML标签中的TD添加两个属性
页面最后添加JS代码绑定点击事件
控制器中添加方法处理AJAX请求