예제 #1
0
        /// <summary>
        /// 缓存登录信息
        /// </summary>
        public static void CacheUserLoginData(SysUser user)
        {
            HttpContext.Current.Session["SmartSystem_SystemLoginUser"] = user;

            List <BaseVillage> villages = VillageServices.QueryVillageByUserId(user.RecordID);

            HttpContext.Current.Session["SmartSystem_LoginUser_ValidVillage"] = villages;

            HttpContext.Current.Session["SmartSystem_LoginUser_ValidCompany"] = CompanyServices.GetCurrLoginUserRoleCompany(user.CPID, user.RecordID);

            List <SysRoles> sysRoles = SysRolesServies.QuerySysRolesByUserId(user.RecordID);

            if (sysRoles != null)
            {
                HttpContext.Current.Session["SmartSystem_SystemLoginUser_Role"] = sysRoles;
                if (sysRoles.Count > 0)
                {
                    List <SysRoleAuthorize> roleAuthorizes = SysRoleAuthorizeServices.QuerySysRoleAuthorizeByRoleIds(sysRoles.Select(p => p.RecordID).ToList());
                    if (roleAuthorizes != null)
                    {
                        HttpContext.Current.Session["SmartSystem_LoginUser_SysRoleAuthorize"] = roleAuthorizes;
                    }
                }
            }
        }
예제 #2
0
        public JsonResult SaveRoleModule()
        {
            try
            {
                if (string.IsNullOrWhiteSpace(Request.Params["roleId"]))
                {
                    throw new MyException("请选择角色");
                }

                string   roleId = Request.Params["roleId"].ToString();
                SysRoles role   = SysRolesServies.QuerySysRolesByRecordId(roleId);
                if (role == null)
                {
                    throw new MyException("获取角色信息失败");
                }

                if (role.IsDefaultRole == YesOrNo.No && string.IsNullOrWhiteSpace(Request.Params["selectModuleIds"]))
                {
                    throw new MyException("请选择需要授权的模块");
                }

                string roleModules             = Request.Params["selectModuleIds"].ToString();
                List <SysRoleAuthorize> models = new List <SysRoleAuthorize>();
                if (!string.IsNullOrWhiteSpace(roleModules))
                {
                    string[] strRoles = roleModules.Split(',');
                    for (int i = 0; i < strRoles.Length; i++)
                    {
                        string[] d = strRoles[i].Split('_');
                        if (d.Length != 3)
                        {
                            continue;
                        }

                        SysRoleAuthorize model = new SysRoleAuthorize();
                        model.RecordID = GuidGenerator.GetGuid().ToString();
                        model.RoleID   = role.RecordID;
                        model.ModuleID = d[0];
                        model.ParentID = d[1];
                        models.Add(model);
                    }
                }
                FillDefaultModule(models, role);

                if (models.Count == 0)
                {
                    throw new MyException("获取模块信息失败");
                }

                bool result = SysRoleAuthorizeServices.Add(models);
                if (!result)
                {
                    throw new MyException("保存角色模块失败");
                }

                CacheData.UpdateCacheUserLoginData(GetLoginUser.RecordID);
                return(Json(MyResult.Success()));
            }
            catch (MyException ex)
            {
                return(Json(MyResult.Error(ex.Message)));
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "保存角色模块授权失败");
                return(Json(MyResult.Error("保存失败")));
            }
        }
예제 #3
0
        public string GetSystemModule()
        {
            try
            {
                List <SysRoleAuthorize> roles = new List <SysRoleAuthorize>();

                XDocument xdoc = XDocument.Load(Server.MapPath("~/SystemModule.xml"));
                foreach (XElement element in xdoc.Root.Elements())
                {
                    string moduleId        = element.Attribute("ModuleID").Value;
                    string moduleName      = element.Attribute("ModuleName").Value;
                    string parentId        = element.Attribute("ParentID").Value;
                    string isSystemDefault = element.Attribute("SystemDefault").Value;

                    SysRoleAuthorize role = new SysRoleAuthorize();
                    role.ModuleID        = moduleId;
                    role.ModuleName      = moduleName;
                    role.ParentID        = parentId;
                    role.IsSystemDefault = isSystemDefault == "true";
                    roles.Add(role);
                }


                if (string.IsNullOrWhiteSpace(Request.Params["roleId"]))
                {
                    return("[]");
                }

                string   roleId  = Request.Params["roleId"].ToString();
                SysRoles sysRole = SysRolesServies.QuerySysRolesByRecordId(roleId);

                StringBuilder strTree = new StringBuilder();
                strTree.Append("[{\"id\":\"" + sysRole.RecordID + "\",");
                strTree.Append("\"attributes\":{\"type\":0},");
                strTree.Append("\"text\":\"" + sysRole.RoleName + "[授权]\"");


                List <SysRoleAuthorize> rootModules = roles.Where(p => p.ParentID == "").ToList();
                if (rootModules.Count > 0)
                {
                    strTree.Append(",\"children\":[");
                }
                List <SysRoleAuthorize> roleAuthorizes = SysRoleAuthorizeServices.QuerySysRoleAuthorizeByRoleId(sysRole.RecordID);
                int i = 1;
                foreach (var item in rootModules)
                {
                    strTree.Append("{\"id\":\"" + item.ModuleID + "_" + item.ParentID + "_" + roleId + "\",");
                    strTree.Append("\"text\":\"" + item.ModuleName + "\",");
                    bool isDefaultRole = false;
                    if (sysRole.IsDefaultRole == YesOrNo.Yes && item.IsSystemDefault)
                    {
                        isDefaultRole = true;
                        strTree.Append("\"attributes\":{\"type\":1,\"isdefault\":1},");
                        strTree.Append("\"checked\":true");
                    }
                    if (!isDefaultRole)
                    {
                        strTree.Append("\"attributes\":{\"type\":1,\"isdefault\":0}");
                    }
                    if (!isDefaultRole && roleAuthorizes != null && roleAuthorizes.Exists(p => p.ModuleID == item.ModuleID) && !roleAuthorizes.Exists(p => p.ParentID == item.ModuleID))
                    {
                        strTree.Append(",\"checked\":true");
                    }

                    GetChildRoles(sysRole, item, roles, strTree, roleAuthorizes, roleId);
                    strTree.Append("}");
                    if (i != rootModules.Count())
                    {
                        strTree.Append(",");
                    }
                    i++;
                }
                if (rootModules.Count > 0)
                {
                    strTree.Append("]");
                }

                strTree.Append("}]");
                return(strTree.ToString());
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptions(ex, "获取角色授权模块失败");
                return("[]");
            }
        }