/// <summary> /// 清掉缓存,重新加载 /// </summary> internal void ReloadAdminSystems() { List <SystemInfo> systems = DABasicInfoHelper.GetSystems(CacheTimeOption.Short, true); List <int> sysIds = DARightsHelper.GetAdminSystemIds(curUser.LoginUser.ID); curUser.AdminSystems = systems.Where(a => sysIds.Contains(a.ID)).ToList(); }
/// <summary> /// 设置用户的权限 /// </summary> /// <param name="user"></param> /// <param name="sysId"></param> private void SetUserRights(UserContext user, int sysId) { UserTypeOptions userType = user.LoginUser.AccountType; bool isSuperAdmin = userType == UserTypeOptions.SuperAdmin; bool isWhiteUser = user.LoginUser.IsWhiteUser; if (user.AvailableRights == null) { List <Right> availableRights = DABasicInfoHelper.GetRights(sysId, -1, CacheTimeOption.Short); List <int> rights = DARightsHelper.GetUserRights(sysId, user.LoginUser.ID, user.LoginUser.AccountType).Select(a => a.RightID).ToList(); user.AvailableRights = availableRights.Where(a => (isSuperAdmin || internalRequest || !a.OnlyInternal || isWhiteUser) && rights.Contains(a.ID)).ToList(); } //只有report才有这些权限 if (sysId == DACommonHelper.REPORT_SYS_ID) { if (user.AvailableSofts == null) { //从Report平台获得的产品权限 List <Soft> availableSofts = GetAvailableSofts(); List <int> rights = DARightsHelper.GetUserSoftRights(user.LoginUser.ID).Select(a => a.RightID).ToList(); user.AvailableSofts = availableSofts.Where(a => a.Status == StatusOptions.Valid && (isSuperAdmin || internalRequest || !a.OnlyInternal || isWhiteUser) && rights.Contains(a.ID)).ToList(); } if (user.AvailableProjectSources == null) { List <ProjectSource> availableProjectSources = GetAvailableProjectSources(); List <int> rights = DARightsHelper.GetUserProjectSourceRights(user.LoginUser.ID).Select(a => a.RightID).ToList(); user.AvailableProjectSources = availableProjectSources.Where(a => (isSuperAdmin || internalRequest || !a.OnlyInternal || isWhiteUser) && rights.Contains(a.ProjectSourceID)).ToList(); } if (internalRequest && user.AvailableResIds == null) { user.AvailableResIds = DARightsHelper.GetUserResRights(user.LoginUser.ID).Select(a => a.RightID).ToList(); } } else { if (user.AvailableSofts == null) { user.AvailableSofts = new List <Soft>(); } if (user.AvailableProjectSources == null) { user.AvailableProjectSources = new List <ProjectSource>(); } if (internalRequest && user.AvailableResIds == null) { user.AvailableResIds = new List <int>(); } } if (user.AdminSystems == null) { List <SystemInfo> systems = DABasicInfoHelper.GetSystems(CacheTimeOption.Short); List <int> sysIds = DARightsHelper.GetAdminSystemIds(user.LoginUser.ID); user.AdminSystems = systems.Where(a => sysIds.Contains(a.ID)).ToList(); } }