Example #1
0
        public static string GetCustomerPermissionJson(string roleId)
        {
            using (EntityMenuCustomPermBLL bll = new EntityMenuCustomPermBLL())
            {
                IQueryable<T_SYS_ENTITYMENUCUSTOMPERM> cuspers = bll.GetCustomPermByRoleID(roleId);
                var q = from ent in cuspers
                        group ent by new
                        {
                            ent.T_SYS_ENTITYMENU.ENTITYMENUID,
                            ent.T_SYS_PERMISSION.PERMISSIONID
                        }
                            into g
                            select new
                            {

                                MenuId = g.Key.ENTITYMENUID,
                                PermissionId = g.Key.PERMISSIONID,
                                g
                            };

                CustomerPermission obj = new CustomerPermission();
                obj.EntityMenuId = q.FirstOrDefault().MenuId;
                obj.PermissionValue = new List<PermissionValue>();

                foreach (var menus in q)
                {
                    PermissionValue menuP = new PermissionValue();
                    menuP.Permission = menus.PermissionId;
                    menuP.OrgObjects = new List<OrgObject>();
                    foreach (var item in menus.g)
                    {
                        OrgObject orgobj = new OrgObject();
                        if (!string.IsNullOrWhiteSpace(item.COMPANYID))
                        {
                            orgobj.OrgID = item.COMPANYID;
                            orgobj.OrgType = "0";
                        }
                        if (!string.IsNullOrWhiteSpace(item.DEPARTMENTID))
                        {
                            orgobj.OrgID = item.DEPARTMENTID;
                            orgobj.OrgType = "1";
                        }
                        if (!string.IsNullOrWhiteSpace(item.POSTID))
                        {
                            orgobj.OrgID = item.POSTID;
                            orgobj.OrgType = "2";
                        }
                        menuP.OrgObjects.Add(orgobj);
                    }
                    obj.PermissionValue.Add(menuP);
                }


                //objs.PermissionValue = p;
                return JsonHelper.GetJson<CustomerPermission>(obj);
            }
        }
Example #2
0
        public void SetCutomterPermissionObj(string RoleID, List<CustomerPermission> objs, ref string strResult)
        {
            try
            {
                using (EntityMenuCustomPermBLL bll = new EntityMenuCustomPermBLL())
                {
                    if (string.IsNullOrWhiteSpace(RoleID))
                    {
                        return;
                    }

                    RoleEntityMenuBLL roleEmBll = new RoleEntityMenuBLL();
                    roleEmBll.UpdateRoleInfo(RoleID, strResult);//修改信息
                    strResult = string.Empty;
                    IQueryable<T_SYS_ENTITYMENUCUSTOMPERM> cuspers = bll.GetCustomPermByRoleID(RoleID);
                    //if (cuspers != null)
                    //{
                    //    if (cuspers.Count() > 0)
                    //    {
                    //        foreach (T_SYS_ENTITYMENUCUSTOMPERM item in cuspers)
                    //        {
                    //            string strId = item.ENTITYMENUCUSTOMPERMID;
                    //            EntityMenuCustomPermDelete(strId);
                    //        }
                    //    }
                    //}
                    SysPermissionBLL bllPer = new SysPermissionBLL();
                    T_SYS_ROLE entRole = GetSysRoleSingleInfoById(RoleID);//获取角色ID实体对象

                    foreach (var Menus in objs)
                    {
                        if (Menus.PermissionValue == null)
                        {
                            continue;
                        }

                        if (Menus.PermissionValue.Count() == 0)
                        {
                            continue;
                        }
                        T_SYS_ENTITYMENU entMenu = GetSysMenuByID(Menus.EntityMenuId);
                        foreach (var Perms in Menus.PermissionValue)
                        {
                            if (Perms.OrgObjects == null)
                            {
                                continue;
                            }

                            if (Perms.OrgObjects.Count() == 0)
                            {
                                continue;
                            }

                            T_SYS_PERMISSION entPer = bllPer.GetAttachSysPermissionByID(Perms.Permission);//获取权限实体对象
                            foreach (var OrgIns in Perms.OrgObjects)
                            {
                                T_SYS_ENTITYMENUCUSTOMPERM customerPer = new T_SYS_ENTITYMENUCUSTOMPERM();
                                customerPer.ENTITYMENUCUSTOMPERMID = Guid.NewGuid().ToString();

                                customerPer.T_SYS_ROLEReference.EntityKey = entRole.EntityKey;
                                customerPer.T_SYS_ROLE = entRole;
                                //customerPer.T_SYS_ENTITYMENU = entMenu;
                                customerPer.T_SYS_ENTITYMENUReference.EntityKey = entMenu.EntityKey;
                                customerPer.T_SYS_ENTITYMENU = entMenu;
                                //customerPer.T_SYS_PERMISSION = entPer;
                                customerPer.T_SYS_PERMISSIONReference.EntityKey = entPer.EntityKey;
                                customerPer.T_SYS_PERMISSION = entPer;

                                switch (OrgIns.OrgType)
                                {

                                    //公司
                                    case "0":
                                        customerPer.COMPANYID = OrgIns.OrgID;
                                        break;
                                    case "1"://部门
                                        customerPer.DEPARTMENTID = OrgIns.OrgID;
                                        break;
                                    case "2"://岗位
                                        customerPer.POSTID = OrgIns.OrgID;
                                        break;
                                }

                                customerPer.CREATEDATE = DateTime.Now;
                                customerPer.UPDATEDATE = DateTime.Now;

                                EntityMenuCustomPermAdd(customerPer);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                strResult = ex.Message;
            }
        }