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

新建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. vagrant在windows下的安装和配置

    记录一下安装和配置过程中的一些坑步骤一分别下载vagrant和VirtualBox,我这里下载的是vagrant_1.9.1.msi 和 VirtualBox-5.1.14-112924-Win.ex ...

  2. Ubuntu 下Android Studio基本配置

    一.界面设置(主题设置) 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings --> Appearance --> Theme ,选择 Darc ...

  3. Ubuntu 14.10 下Eclipse安装Hadoop插件

    准备环境 1 安装好了Hadoop,之前安装了Hadoop 2.5.0,安装参考http://www.cnblogs.com/liuchangchun/p/4097286.html 2 安装Eclip ...

  4. 测试用例脚本,调用其他模块方法的实例(数据分类 appium 和 selenium 看这里)

    1.脚本里调用其他类里面的方法 需要把脚本里面的self.dr 传到其他类里面,其他类里面要先初始化这个self.dr 变成自己类里面的 脚本里面的dr是 appium启动的代码 dr= webdri ...

  5. docker安装testlink

    testlink 镜像 https://hub.docker.com/r/bitnami/testlink ```#shell 下载镜像 docker pull bitnami/testlink

  6. OpenStack镜像服务基本操作

    查询Glance服务状态 #glance-control all status [root@controller ~]# glance-control all status glance-api (p ...

  7. Retrofit 使用方法

    public class MainActivity extends Activity { private ListView mListView; //private ImageListAdapter ...

  8. ORM多表操作之创建关联表及添加表记录

    创建关联表 关于表关系的几个结论 (1)一旦确立表关系是一对多:建立一对多关系----在多对应的表中创建关联字段. (2)一旦确立表关系是多对多:建立多对多关系----创建第三张关系表----id和两 ...

  9. sas 数据集导出到excel

    PROC EXPORT DATA= Loan.BOM_FILENAME_2      OUTFILE= "D:\output.xls"      DBMS=EXCEL REPLAC ...

  10. Ext.NET Combobox实现数据源静态配置

    背景 项目中使用增值税税率, 需求原本是统一的指定税率, 譬如3% 5% 等固定的. 随着业务增加, 发现不同业务有不同的税率, 一会加一个, 一下要改很多个界面. 就想着放到统一的地方. 技术背景 ...