管理角色分为 添加角色、删除角色、修改角色、给角色分配权限(修改角色权限)

新建RoleInfoController继承BaseController

namespace CZBK.ItcastOA.WebApp.Controllers
{
public class RoleInfoController : BaseController
{
//
// GET: /RoleInfo/
IBLL.IRoleInfoService RoleInfoService { get; set; }
IBLL.IActionInfoService ActionInfoService { get; set; }
public ActionResult Index()
{
return View();
}
#region 获取角色列表
public ActionResult GetRoleInfoList()
{
int pageIndex = Request["page"] != null ? int.Parse(Request["page"]) : ;
int pageSize = Request["rows"] != null ? int.Parse(Request["rows"]) : ;
int totalCount;
short delFlag=(short)DeleteEnumType.Normarl;
var roleInfoList = RoleInfoService.LoadPageEntities<int>(pageIndex,pageSize,out totalCount,r=>r.DelFlag==delFlag,r=>r.ID,true);
var temp = from r in roleInfoList
select new { ID = r.ID, RoleName = r.RoleName, Sort = r.Sort, SubTime = r.SubTime,Remark=r.Remark };
return Json(new { rows=temp,total=totalCount},JsonRequestBehavior.AllowGet);
}
#endregion #region 展示添加表单
public ActionResult ShowAddInfo()
{
return View();
}
#endregion #region 完成角色信息添加
public ActionResult AddRoleInfo(RoleInfo roleInfo)
{
roleInfo.ModifiedOn = DateTime.Now;
roleInfo.SubTime = DateTime.Now;
roleInfo.DelFlag = ;
RoleInfoService.AddEntity(roleInfo);
return Content("ok");
}
#endregion #region 展示要分配的权限
public ActionResult ShowRoleAction()
{
int id = int.Parse(Request["id"]);
var roleInfo = RoleInfoService.LoadEntities(r=>r.ID==id).FirstOrDefault();//获取要分配的权限的角色信息。
ViewBag.RoleInfo = roleInfo;
//获取所有的权限。
short delFlag = (short)DeleteEnumType.Normarl;
var actionInfoList= ActionInfoService.LoadEntities(a=>a.DelFlag==delFlag).ToList();
//要分配权限的角色以前有哪些权限。
var actionIdList = (from a in roleInfo.ActionInfo
select a.ID).ToList();
ViewBag.ActionInfoList = actionInfoList;
ViewBag.ActionIdList = actionIdList;
return View();
}
#endregion #region 完成角色权限的分配
public ActionResult SetRoleAction()
{
int roleId = int.Parse(Request["roleId"]);//获取角色编号
string[] allKeys = Request.Form.AllKeys;//获取所有表单元素name属性的值。
List<int> list = new List<int>();
foreach (string key in allKeys)
{
if (key.StartsWith("cba_"))
{
string k = key.Replace("cba_","");
list.Add(Convert.ToInt32(k));
}
}
if (RoleInfoService.SetRoleActionInfo(roleId, list))
{
return Content("ok");
}
else
{
return Content("no");
}
} #endregion }
}

RoleService 中添加为角色分配权限的方法

先删除该角色所有权限,然后再添加

        /// <summary>
/// 为角色分配权限
/// </summary>
/// <param name="roleId">角色编号</param>
/// <param name="actionIdList">权限编号列表</param>
/// <returns></returns>
public bool SetRoleActionInfo(int roleId, List<int> actionIdList)
{
//获取角色信息.
var roleInfo = this.CurrentDBSession.RoleInfoDal.LoadEntities(r=>r.ID==roleId).FirstOrDefault();
if (roleInfo != null)
{
roleInfo.ActionInfo.Clear();
foreach (int actionId in actionIdList)
{
var actionInfo = this.CurrentDBSession.ActionInfoDal.LoadEntities(a=>a.ID==actionId).FirstOrDefault();
roleInfo.ActionInfo.Add(actionInfo);
}
return this.CurrentDBSession.SaveChanges();
}
return false;
}

MVC基于角色权限控制--管理角色的更多相关文章

  1. rbac(基于角色权限控制)-------权限管理

    权限管理 创建一个rbac和app的应用,这个rbac主要是用来存放权限的,全称叫做基于角色权限控制 一.先看配置文件合适不,给创建的rbac在配置文件里面设置一下 找到INSTALLED_APPS= ...

  2. springboot + 注解 + 拦截器 + JWT 实现角色权限控制

    1.关于JWT,参考: (1)10分钟了解JSON Web令牌(JWT) (2)认识JWT (3)基于jwt的token验证 2.JWT的JAVA实现 Java中对JWT的支持可以考虑使用JJWT开源 ...

  3. RBAC角色权限控制

    RBAC角色权限控制 1. user (用户表) *  用户的基本信息(mid:用户信息id  如图) 2. node (节点表) * 页面(模块\控制器\方法) 3. role_node(角色.节点 ...

  4. spring-boot-plus V1.4.0发布 集成用户角色权限部门管理

    RBAC用户角色权限 用户角色权限部门管理核心接口介绍 Shiro权限配置

  5. ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理

    在前面两篇随笔<ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理>和<ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程>开始 ...

  6. 自定义Spring Security权限控制管理(实战篇)

    上篇<话说Spring Security权限管理(源码)>介绍了Spring Security权限控制管理的源码及实现,然而某些情况下,它默认的实现并不能满足我们项目的实际需求,有时候需要 ...

  7. ASP.MVC 基于AuthorizeAttribute权限设计案例

    ASP.MVC上实现权限控制的方法很多,比如使用AuthorizeAttribute这个特性 1.创建自定义特性用于权限验证 public class AuthorizeDiy : Authorize ...

  8. MVC基于角色权限控制--用户管理

    用户管理模块包括 新增用户.修改用户.展示用户列表.删除用户.用户角色分配.用户角色删除.用户权限分配 这里只介绍关于权限有关的 用户角色分配.用户角色删除.用户权限分配 新建控制器 UserInfo ...

  9. MVC基于角色权限控制--数据库设计

    在网站后台设计过程中都会遇上权限控制这一问题 当前较为流行的解决方案是基于角色的权限管理 基本思路如下 分别建立 用户信息表.角色信息表.权限信息表 让用户和角色关联,角色和权限关联,当用户访问时,通 ...

随机推荐

  1. elasticsearch mapping demo

    curl -XPUT localhost:9200/local -d '{ "settings" : { "analysis" : { "analyz ...

  2. Android开发之动态添加控件

    动态添加TextView控件: 一:创建一个Android project项目 activity_main.xml文件: 1.用两个LinearLayout布局分别包裹一对TextView,EditT ...

  3. bzoj5019: [Snoi2017]遗失的答案

    Description 小皮球在计算出答案之后,买了一堆皮肤,他心里很开心,但是一不小心,就忘记自己买了哪些皮肤了.==|||万 幸的是,他还记得他把所有皮肤按照1-N来编号,他买来的那些皮肤的编号( ...

  4. vue之文本渲染

    Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据.所有Vue的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析. 在前面,我们一直使用的是{ ...

  5. nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模块的Javascript

    Javascrip本身不带IO功能,nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模 ...

  6. jQuery插件制作之全局函数用法实例

    原文地址:http://www.jb51.net/article/67056.htm 本文实例讲述了jQuery插件制作之全局函数用法.分享给大家供大家参考.具体分析如下: 1.添加新的全局函数 所谓 ...

  7. css中背景的应用

    浏览器默认的字体大小是 font-size:16px; 谷歌最小的是10px 其他浏览器是12px 通配符选择器 *   “*”的意思是代表所有的标签 回到正题 background   背景 他的几 ...

  8. 知识点:java 注解 @SuppressWarnings

    前言: 简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上.作用:告诉编译器忽略指定的 ...

  9. tf.assign,tf.assign_add,tf.assign_sub

    a = tf.Variable(0.0,dtype=tf.float32) with tf.Session() as sess: sess.run(tf.global_variables_initia ...

  10. python中str相关函数

    capitalize 将字符串的首字母大写 title 每个单词的首字母大写 (不是字母隔开的单词首字母都大写) upper 所有字母大写 lower 所有字母小写 swapcase 大写变小写 co ...