管理员的维护功能完成后,还有权限和角色,三者构成权限系统。这里采用的RBAC是最经典、最简单的一种,权限-角色-管理员只能层层传递,并不能直接为管理员分配权限。html
一 权限、角色管理ajax
a) 权限异步
以前编写好了分页组件,在权限列表直接用起来了,惋惜假数据只有一页布局
视图背后对应的Action是PermissionController.List。List方法获取分页数据,默认取第一页不用多说。设计
权限、角色、管理员的添加、编辑界面都比较相似。htm
新增、编辑、删除使用异步提交。新增、编辑的异步提交使用上一篇学到的方法,删除直接在列表界面操做,使用普通的ajax请求方式模板引擎
二 权限的分配接口
a) 权限的分配在角色、管理员的新增和编辑界面进行it
不得不说,自我感受这套模板真是很舒服的,连勾选框的对勾都作的这么用心。但我不会用,致使权限列表过于靠左了,这块还得想办法调节一下。这块使用了BootStrap的特点布局,通过屡次试验,col-sm-3最适合了,再大则会过早地触发自适应。io
b) 在cshtml页面中能够自动循环来建立权限列表,经过这种html与C#代码混合的方式,生成每行三列的权限列表。但有一段@Html.Raw(@"</div><br /><div class='row'>")是由于</div>找不到匹配的标签,rzaor没法处理,须要用Raw方法来输出。这类模板引擎很强大。
c) 一个关于数据操做的问题
权限操做设计到两张中间表,权限-角色表、角色-管理员表,在写入这些表时,直接使用封装好的repository方法是不行的,好比下面的作法,会由于不在一个上下文(Context)而报错。
正确的作法是使用与roleRepository系统的上下文类,而后便开始改造,接口中增长了属性。第一次在接口中使用属性,不过属性原本就是方法,今天被逼出来了哈哈。