Ejemplo n.º 1
0
        public ActionResult GrantRolePermission()
        {
            GrantRoleRequest request = new GrantRoleRequest(HttpContext);
            bool             status  = false;

            try
            {
                status = RolePermissionManager.GrantRolePermission(request);
            }
            catch (Exception e)
            {
                return(this.JsonFormat(status, status, SysOperate.Operate));
            }
            //UserOperateLog.WriteOperateLog("[角色权限管理]对角色:" + request.RoleID + "进行权限分配:" + SysOperate.Operate.ToMessage(status));
            return(this.JsonFormat(status, status, SysOperate.Operate));
        }
Ejemplo n.º 2
0
        public bool GrantRolePermission(GrantRoleRequest request)
        {
            bool status = false;
            //3.1原来的所有权限id 3
            var listOldPer = base.GetListBy(rp => rp.RP_ID == request.RoleID).Select(r => r.MP_ID).ToList();

            //3.2新权限id  3,5,6
            var listNewPer = request.ModulePermissionIDs.ToList();

            //3.3将两个集合中 相同的元素 都删除,之后,新权限集合里的权限就是要新增到数据库的,旧权限集合里的权限 就是要从数据库删除的
            for (int i = listOldPer.Count - 1; i >= 0; i--)
            {
                string old = listOldPer[i];
                if (listNewPer.Contains(old))
                {
                    listOldPer.Remove(old);
                    listNewPer.Remove(old);
                }
            }
            try
            {
                listNewPer.ForEach(add =>
                {
                    idal.Add(new MODEL.FW_ROLEPERMISSION()
                    {
                        RP_ID = request.RoleID, MP_ID = add, CREATE_DT = DateTime.Now, MODIFY_DT = DateTime.Now
                    });
                });
                if (listOldPer.Count > 0)
                {
                    idal.DelBy(rp => listOldPer.Contains(rp.MP_ID) && rp.RP_ID == request.RoleID);
                }
                IDBSession.SaveChanges();
                return(true);
            }
            catch (Exception)
            {
                //return ;
                throw;
            }
        }