管理员的维护功能完成后,还有权限和角色,三者构成权限系统。这里采用的RBAC是最经典、最简单的一种,权限-角色-管理员只能层层传递,并不能直接为管理员分配权限。

一 权限、角色管理

a) 权限

之前编写好了分页组件,在权限列表直接用起来了,可惜假数据只有一页

视图背后对应的Action是PermissionController.List。List方法获取分页数据,默认取第一页不用多说。

权限、角色、管理员的添加、编辑界面都比较类似。

新增、编辑、删除使用异步提交。新增、编辑的异步提交使用上一篇学到的方法,删除直接在列表界面操作,使用普通的ajax请求方式


二 权限的分配

a) 权限的分配在角色、管理员的新增和编辑界面进行

不得不说,自我感觉这套模板真是很舒服的,连勾选框的对勾都做的这么用心。但我不会用,导致权限列表过于靠左了,这块还得想办法调节一下。这块使用了BootStrap的特色布局,经过多次试验,col-sm-3最适合了,再大则会过早地触发自适应。

b) 在cshtml页面中可以自动循环来创建权限列表,通过这种html与C#代码混合的方式,生成每行三列的权限列表。但有一段@Html.Raw(@"</div><br /><div class='row'>")是因为</div>找不到匹配的标签,rzaor无法处理,需要用Raw方法来输出。这类模板引擎很强大。

c) 一个关于数据操作的问题

权限操作设计到两张中间表,权限-角色表、角色-管理员表,在写入这些表时,直接使用封装好的repository方法是不行的,比如下面的做法,会因为不在一个上下文(Context)而报错。

正确的做法是使用与roleRepository系统的上下文类,然后便开始改造,接口中增加了属性。第一次在接口中使用属性,不过属性本来就是方法,今天被逼出来了哈哈。

转载于:https://www.cnblogs.com/zhixin9001/p/6965152.html

MVC与单元测试实践之健身网站(三)-角色与权限相关推荐

  1. MVC与单元测试实践之健身网站(八)-统计分析

    ​统计分析模块与之前的内容相对独立,用于记录并跟踪各部位围度的变化.还需提供对所作计划的分析,辅助使计划更合理. 一 围度记录 这儿可以记录各项身体围度指标,现在包括体重在内身体上上下下基本全部提供了 ...

  2. 单元测试实践思考(junit5+jmockit+testcontainer)

    文章目录 背景 方案设计 单元测试指导思想 单层隔离 内部穿透 技术实现 依赖管理 基础架构 封装Junit5&Jmockit 单元测试配置 TestContainer封装 官方方案 实际方案 ...

  3. goland go test_Go单元测试实践一,快速上手

    Go单元测试实践二,常见问题 Go单元测试实践三,代码风格 Go 单元测试实践四,集成到gitlabci 前段时间我在团队内推广了单测,为帮助同事快速上手,写了一些文档,这是第一篇, 如果你对单测,G ...

  4. 健身网站php,基于WEB的健身网站的设计与实现

    设计(论文)的目的: 二十一世纪信息的高速和数码化大趋势给所有领域带来了前所未有的冲击与改变.传统行业借助于互联网这个平台来展示自身形象吸引顾客,发布新品信息,利用网络与客户沟通.交流已成为业界共识, ...

  5. Java单元测试实践-25.在本地使用H2数据库进行单元测试

    Java单元测试实践-00.目录(9万多字文档+700多测试示例) https://blog.csdn.net/a82514921/article/details/107969340 1. 前言 使用 ...

  6. 网站SEO实践之 - 解决网站不收录的必备思路

    网站SEO实践之 - 解决网站不收录的必备思路 网站不收录可谓说是老生常谈了,太多SEO从业者有遇到这样的问题而无从下手,导致苦恼万分.我们解决网站不收录的问题前,应该思考一个问题:"让网站 ...

  7. 蘑菇街支付金融Android单元测试实践

    蘑菇街支付金融Android单元测试实践 2016-04-26  邹勇  移动开发前线 本文为『移动前线』群在4月23日的分享总结整理而成,转载请注明来自『移动开发前线』公众号. 嘉宾介绍 邹勇(网名 ...

  8. 【组队学习】【26期】编程实践(Django网站开发)

    编程实践(Django网站开发) 论坛版块: http://datawhale.club/c/team-learning/28-category/28 开源内容: https://github.com ...

  9. 零知识证明实践教程,第三部分

    本文是零知识证明简单实践教程的第三部分, 第一部分见:零知识证明第一部分, 第二部分见:零知识证明第二部分. 下面这个图片是我们在第二部分所使用的merkle树来构造prover的承诺.同时我们也提出 ...

最新文章

  1. SVN版本控制系统使用
  2. 17 Java面试之css
  3. ASP.NET的include的用法
  4. UVa 11732 (Tire树) strcmp() Anyone?
  5. ERP系统的一般构成示意图
  6. 没有搜索_没有明显足够搜索量关键词的类目产品应该怎么办?
  7. 正则表达式变量名命名的规则_如何简单有效地提高代码质量?修改变量名即可...
  8. pprof 的原理与实现
  9. Socket网络编程——C++实现
  10. mysql 添加用户_mysql创建用户与授权
  11. linux 备份iphone,用linux搭建Mac备份服务器,伪TimeCapsule
  12. mysql 试题_超经典MySQL练习50题,做完这些你的SQL就过关了
  13. Ehlib 单元格 图像绘制 代码
  14. 一张小纸条(软件工程师成长过程中的一些建议)
  15. HDU 3401 Trade dp+单调队列优化
  16. Windows Mobile DIY ROM 常用工具
  17. 全面解释java中StringBuilder、StringBuffer、String类之间的关系
  18. 电气器件系列二十四:电子式压力传感器PPG-D(1)
  19. Web安全-Tomcat禁用Web服务器内置不安全请求方法
  20. python图片数字识别_python 识别图片上的数字

热门文章

  1. java用thinkpadx1_还用老的办公本? 处理文件速度怎够用
  2. matlab 第i行到j行,matlab简明教程
  3. 为什么要叫长虹玻璃呢_中和热测定实验中为什么温度计要放到环形玻璃棒中间?放外面可行吗?...
  4. Django 聚合查询
  5. spring aop搭建(2) :基于代码的实现
  6. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤
  7. sqlmap的使用----进阶
  8. python pip修改安装镜像源
  9. Linux系统常用目录操作函数
  10. OkHttp源码深度解析