管理员的维护功能完成后,还有权限和角色,三者构成权限系统。这里采用的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系统的上下文类,然后便开始改造,接口中增加了属性。第一次在接口中使用属性,不过属性本来就是方法,今天被逼出来了哈哈。

MVC与单元测试实践之健身网站(三)-角色与权限的更多相关文章

  1. MVC与单元测试实践之健身网站(完)-备案与部署

    主页-http://www.zhixin9001.cn/Home/Introduce GitHub- https://github.com/zhixin9001/Fitness 这是关于Fit网站的最 ...

  2. MVC与单元测试实践之健身网站(一)-项目概述

    前不久刚刚通过租房网站的开发学习了MVC,并随后学习了单元测试相关的基础,现在开始健身网站的开发,该项目将结合MVC与单元测试,在开发实践过程中,趁热打铁,巩固并运用之前的内容. 一 健身网站功能描述 ...

  3. MVC与单元测试实践之健身网站(四)-动作管理

    网站后台负责进行动作的管理,包括动作名称.介绍.训练要点.配图等内容,以便前台能够使用这些内容.在上一篇< Fit项目图片上传和云存储的调通>中已经准备好了这里涉及到的主要技术难点,现在就 ...

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

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

  5. MVC与单元测试实践之健身网站(七)-日程与打卡

    上一篇完成了计划的制定,然后需要把计划转换为日程,在日历视图上直观地显示,与日程相对应的还有完成日程内容后的打卡动作. 一 日程视图 a) 要把循环的计划铺开成为日程,日程的显示用日历视图是最合适的. ...

  6. MVC与单元测试实践之健身网站(六)-计划的添加与重置

    健身计划需要使用者自己定制,没有现成的内容可供选择.本篇就是关于健身计划的添加与重置功能的一部分. 一 功能描述 a) 关于计划的定制,决定以周期的方式,比如有人会以一周为周期,然后安排每周的1.3. ...

  7. MVC与单元测试实践之健身网站(二)-管理员模块

    开始动手做这个项目时,发现无法做到完全的先设计.再编码,于是决定分模块进行,从管理员模块开始设计.编码,而且接口就已经改了好几次了. 管理员模块涉及的功能有登录和后台对管理员的维护,其中也涉及前端的开 ...

  8. MVC与单元测试实践之健身网站(七)-添加计划

    ​计划的制定涉及到周期-动作包-动作的关联操作,在上一篇<计划的添加与重置>完成了周期的设置.动作包的添加,现在要完成的是动作的添加操作. 一 具体功能 a) 在选定了一个大周期具有的天数 ...

  9. MVC与单元测试实践之健身网站(五)-系统信息、前台入口

    Fit项目停滞了一段时间,现在继续吧.上一篇完成了动作文本和配图的添加.编辑等内容.接下来要完成的是后台的最后一个模块:系统信息:以及前台的入口:关于注册.登录.修改密码等. 一 系统信息 a) 用户 ...

随机推荐

  1. C#:WebBrowser控件的使用教程及相关问题整理

    推荐阅读: C#WebBrowser控件使用教程与技巧收集--苏飞收集 C# WebBrowser强制在本窗口打开,禁止在新窗口打开 C# WebBrowser禁止在新窗口打开,强制在本窗口打开(多种 ...

  2. Ruby:Nokogiri

    阅读推荐: Nokogiri的用法我推荐三篇非常给力的文章: http://ruby.bastardsbook.com/chapters/html-parsing/ http://ruby.basta ...

  3. Android Studio常用设置

    Android  Studio显示行号 File-->Setting(Ctrl+Alt+S),选择Editor-->General-->Appearance,右侧勾选Show lin ...

  4. win10上Tensorflow的安装教程

    这几天打算自己入门学习机器学习的内容,首先要安装Tensorflow. 自己捣鼓了几天才捣鼓出来.可能真的是比较笨orz 现在试试写一个教程,希望可以帮到迷路滴孩子们! 大体地说四步: 安装pytho ...

  5. Vue笔记:使用 axios 发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

  6. Solidity类型转换

    类型转换,是一个十分重要,常用的手段. 一.隐式转换 隐式转换,就是当一个运算符能支持不同类型,编译器会隐式的尝试将一个操作数的类型,转为另一个操作数的类型,赋值同理. 条件是:值类型间的互相转换只要 ...

  7. Python常见问题

    1. 处理中文时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方 ...

  8. git第一节----git config配置

    @查看git的版本 git --version @查看git配置信息 git config --list config list分全局和局部,在根目录下执行git config --list显示为全局 ...

  9. 布局中的BFC---重点是前言

    一.前言 说实话,听到BFC这个概念我心里一阵咯噔,这到底是什么?有种似曾相识的感觉,但是又很模糊.问了一下度娘,看到张鑫旭的<CSS深入理解流体特性和BFC特性下多栏自适应布局>.呀,原 ...

  10. 从PHP5.0到PHP7.1的性能全评测

    本文是最初是来自国外的这篇:PHP Performance Evolution 2016, 感谢高可用架构公众号翻译成了中文版, 此处是转载的高可用架构翻译后的文章从PHP 5到PHP 7性能全评测( ...