管理角色分为 添加角色、删除角色、修改角色、给角色分配权限(修改角色权限)
新建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"]) : 1; int pageSize = Request["rows"] != null ? int.Parse(Request["rows"]) : 5; 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 = 0; 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; }