public Dictionary <string, List <string> > GetChannelPermissionSortedList(string[] roles) { var dict = new Dictionary <string, List <string> >(); foreach (var roleName in roles) { var systemPermissionsInfoList = GetSystemPermissionsInfoList(roleName); foreach (var systemPermissionsInfo in systemPermissionsInfoList) { var channelIdList = TranslateUtils.StringCollectionToIntList(systemPermissionsInfo.ChannelIdCollection); foreach (var channelId in channelIdList) { var key = PermissionsImpl.GetChannelPermissionDictKey(systemPermissionsInfo.SiteId, channelId); if (!dict.TryGetValue(key, out var list)) { list = new List <string>(); dict[key] = list; } var channelPermissionList = TranslateUtils.StringCollectionToStringList(systemPermissionsInfo.ChannelPermissions); foreach (var channelPermission in channelPermissionList) { if (!list.Contains(channelPermission)) { list.Add(channelPermission); } } } } } return(dict); }
public IHttpActionResult Get() { try { var request = new RequestImpl(); var userId = request.GetQueryInt("userId"); if (!request.IsAdminLoggin) { return(Unauthorized()); } var adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var departmentName = DepartmentManager.GetDepartmentName(adminInfo.DepartmentId); var areaName = AreaManager.GetAreaName(adminInfo.AreaId); var permissions = new PermissionsImpl(adminInfo); var level = permissions.GetAdminLevel(); var isSuperAdmin = permissions.IsConsoleAdministrator; var siteNames = new List <string>(); if (!isSuperAdmin) { var siteIdListWithPermissions = permissions.GetSiteIdList(); foreach (var siteId in siteIdListWithPermissions) { siteNames.Add(SiteManager.GetSiteName(SiteManager.GetSiteInfo(siteId))); } } var isOrdinaryAdmin = !permissions.IsSystemAdministrator; var roleNames = string.Empty; if (isOrdinaryAdmin) { roleNames = AdminManager.GetRolesHtml(adminInfo.UserName); } return(Ok(new { Value = adminInfo, DepartmentName = departmentName, AreaName = areaName, Level = level, IsSuperAdmin = isSuperAdmin, SiteNames = TranslateUtils.ObjectCollectionToString(siteNames, "<br />"), IsOrdinaryAdmin = isOrdinaryAdmin, RoleNames = roleNames })); } catch (Exception ex) { return(InternalServerError(ex)); } }
private ChannelTreeItem(SiteInfo siteInfo, ChannelInfo channelInfo, bool enabled, PermissionsImpl permissionsImpl) { _siteInfo = siteInfo; _channelInfo = channelInfo; _enabled = enabled; _permissionsImpl = permissionsImpl; var treeDirectoryUrl = SiteServerAssets.GetIconUrl("tree"); //为后台栏目树中的首页和外链栏目添加图标 if (_channelInfo.ParentId == 0) { _contentModelIconClass = "ion-ios-home"; } else if (_channelInfo.LinkUrl.Length != 0) { _contentModelIconClass = "ion-link"; } else { _contentModelIconClass = "ion-folder"; } _iconEmptyUrl = PageUtils.Combine(treeDirectoryUrl, "empty.gif"); _iconMinusUrl = PageUtils.Combine(treeDirectoryUrl, "minus.png"); _iconPlusUrl = PageUtils.Combine(treeDirectoryUrl, "plus.png"); }
public static List <KeyValuePair <int, string> > GetChannels(int siteId, PermissionsImpl permissionsImpl, params string[] channelPermissions) { var options = new List <KeyValuePair <int, string> >(); var list = GetChannelIdList(siteId); foreach (var channelId in list) { var enabled = permissionsImpl.HasChannelPermissions(siteId, channelId, channelPermissions); var channelInfo = GetChannelInfo(siteId, channelId); if (enabled && channelPermissions.Contains(ConfigManager.ChannelPermissions.ContentAdd)) { if (channelInfo.Additional.IsContentAddable == false) { enabled = false; } } if (enabled) { var tuple = new KeyValuePair <int, string>(channelId, GetChannelNameNavigation(siteId, channelId)); options.Add(tuple); } } return(options); }
public IHttpActionResult SavePermissions(int adminId) { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } if (!request.AdminPermissions.IsSuperAdmin()) { return(Unauthorized()); } var adminLevel = request.GetPostString("adminLevel"); var checkedSites = request.GetPostObject <List <int> >("checkedSites"); var checkedRoles = request.GetPostObject <List <string> >("checkedRoles"); var adminInfo = AdminManager.GetAdminInfoByUserId(adminId); DataProvider.AdministratorsInRolesDao.RemoveUser(adminInfo.UserName); if (adminLevel == "SuperAdmin") { DataProvider.AdministratorsInRolesDao.AddUserToRole(adminInfo.UserName, EPredefinedRoleUtils.GetValue(EPredefinedRole.ConsoleAdministrator)); } else if (adminLevel == "SiteAdmin") { DataProvider.AdministratorsInRolesDao.AddUserToRole(adminInfo.UserName, EPredefinedRoleUtils.GetValue(EPredefinedRole.SystemAdministrator)); } else { DataProvider.AdministratorsInRolesDao.AddUserToRole(adminInfo.UserName, EPredefinedRoleUtils.GetValue(EPredefinedRole.Administrator)); DataProvider.AdministratorsInRolesDao.AddUserToRoles(adminInfo.UserName, checkedRoles.ToArray()); } DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, adminLevel == "SiteAdmin" ? TranslateUtils.ObjectCollectionToString(checkedSites) : string.Empty); PermissionsImpl.ClearAllCache(); request.AddAdminLog("设置管理员权限", $"管理员:{adminInfo.UserName}"); return(Ok(new { Value = true, Roles = AdminManager.GetRoles(adminInfo.UserName) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public static bool GetUserCheckLevel(PermissionsImpl permissionsImpl, SiteInfo siteInfo, int channelId, out int userCheckedLevel) { var checkContentLevel = siteInfo.Additional.CheckContentLevel; var pair = GetUserCheckLevel(permissionsImpl, siteInfo, channelId); var isChecked = pair.Key; var checkedLevel = pair.Value; if (isChecked) { checkedLevel = checkContentLevel; } userCheckedLevel = checkedLevel; return(isChecked); }
public void Delete(int siteId) { var siteInfo = SiteManager.GetSiteInfo(siteId); var list = ChannelManager.GetChannelIdList(siteId); DataProvider.TableStyleDao.Delete(list, siteInfo.TableName); DataProvider.TagDao.DeleteTags(siteId); DataProvider.ChannelDao.DeleteAll(siteId); UpdateParentIdToZero(siteId); ExecuteNonQuery($"DELETE FROM siteserver_Site WHERE Id = {siteId}"); SiteManager.ClearCache(); ChannelManager.RemoveCacheBySiteId(siteId); PermissionsImpl.ClearAllCache(); }
public static string GetContentMoreCommands(PermissionsImpl permissionsImpl, SiteInfo siteInfo, ChannelInfo channelInfo, string pageUrl) { var builder = new StringBuilder(); if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentAdd) && channelInfo.Additional.IsContentAddable) { builder.Append($@" <a class=""dropdown-item"" href=""javascript:;"" onclick=""{ModalContentImport.GetOpenWindowString(siteInfo.Id, channelInfo.Id)}""> 导 入 </a>"); } var adminId = permissionsImpl.GetAdminId(siteInfo.Id, channelInfo.Id); var count = ContentManager.GetCount(siteInfo, channelInfo, adminId); if (count > 0) { builder.Append($@" <a class=""dropdown-item"" href=""javascript:;"" onclick=""{ModalContentExport.GetOpenWindowString(siteInfo.Id, channelInfo.Id)}""> 导 出 </a>"); if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentOrder)) { builder.Append($@" <a class=""dropdown-item"" href=""javascript:;"" onclick=""{ModalContentTidyUp.GetOpenWindowString(siteInfo.Id, channelInfo.Id, pageUrl)}""> 整 理 </a>"); } if (CrossSiteTransUtility.IsCrossSiteTrans(siteInfo, channelInfo) && !CrossSiteTransUtility.IsAutomatic(channelInfo)) { builder.Append($@" <a class=""dropdown-item"" href=""javascript:;"" onclick=""{ModalContentCrossSiteTrans.GetOpenWindowString(siteInfo.Id, channelInfo.Id)}""> 跨站转发 </a>"); } } return(builder.ToString()); }
public override void Submit_OnClick(object sender, EventArgs e) { var isChanged = false; try { var allRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName(); foreach (var roleName in allRoles) { DataProvider.AdministratorsInRolesDao.RemoveUserFromRole(_userName, roleName); } DataProvider.AdministratorsInRolesDao.AddUserToRole(_userName, DdlPredefinedRole.SelectedValue); var adminInfo = AdminManager.GetAdminInfoByUserName(_userName); DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, EPredefinedRoleUtils.Equals(EPredefinedRole.SystemAdministrator, DdlPredefinedRole.SelectedValue) ? ControlUtils.SelectedItemsValueToStringCollection(CblSiteId.Items) : string.Empty); PermissionsImpl.ClearAllCache(); AuthRequest.AddAdminLog("设置管理员权限", $"管理员:{_userName}"); SuccessMessage("权限设置成功!"); isChanged = true; } catch (Exception ex) { FailMessage(ex, "权限设置失败!"); } if (isChanged) { var redirectUrl = PageAdministrator.GetRedirectUrl(); LayerUtils.CloseAndRedirect(Page, redirectUrl); } }
public static string GetContentCommands(PermissionsImpl permissionsImpl, SiteInfo siteInfo, ChannelInfo channelInfo, string pageUrl) { var builder = new StringBuilder(); if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentAdd) && channelInfo.Additional.IsContentAddable) { builder.Append($@" <a href=""{GetContentAddAddUrl(siteInfo.Id, channelInfo.Id, pageUrl)}"" class=""btn btn-light text-secondary""> <i class=""ion-plus""></i> 添加 </a>"); builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalUploadWord.GetOpenWindowString(siteInfo.Id, channelInfo.Id, StringUtils.ValueToUrl(pageUrl))}""> 导入Word </a>"); } var adminId = permissionsImpl.GetAdminId(siteInfo.Id, channelInfo.Id); var count = ContentManager.GetCount(siteInfo, channelInfo, adminId); if (count > 0 && permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentDelete)) { builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{PageContentDelete.GetRedirectClickStringForSingleChannel(siteInfo.Id, channelInfo.Id, false, pageUrl)}""> <i class=""ion-trash-a""></i> 删 除 </a>"); } if (count > 0) { if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentEdit)) { builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalContentAttributes.GetOpenWindowString(siteInfo.Id, channelInfo.Id)}""> <i class=""ion-flag""></i> 属性 </a>"); builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalAddToGroup.GetOpenWindowStringToContent(siteInfo.Id, channelInfo.Id)}""> 内容组 </a>"); } if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentTranslate)) { var redirectUrl = PageContentTranslate.GetRedirectUrl(siteInfo.Id, channelInfo.Id, pageUrl); var clickString = PageUtils.GetRedirectStringWithCheckBoxValue(redirectUrl, "contentIdCollection", "contentIdCollection", "请选择需要转移的内容!"); builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{clickString}""> 转 移 </a>"); } if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentEdit)) { builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalContentTaxis.GetOpenWindowString(siteInfo.Id, channelInfo.Id, pageUrl)}""> 排 序 </a>"); } if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentCheck)) { builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalContentCheck.GetOpenWindowString(siteInfo.Id, channelInfo.Id, pageUrl)}""> 审 核 </a>"); } if (permissionsImpl.HasSitePermissions(siteInfo.Id, ConfigManager.WebSitePermissions.Create) || permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.CreatePage)) { builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalProgressBar.GetOpenWindowStringWithCreateContentsOneByOne(siteInfo.Id, channelInfo.Id)}""> <i class=""ion-wand""></i> 生 成 </a>"); } } if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ChannelEdit)) { builder.Append($@" <a href=""javascript:;"" class=""btn btn-light text-secondary"" onclick=""{ModalSelectColumns.GetOpenWindowString(siteInfo.Id, channelInfo.Id)}""> <i class=""ion-ios-list-outline""></i> 显示项 </a>"); } if (count > 0) { builder.Append(@" <a href=""javascript:;;"" class=""btn btn-light text-secondary text-secondary"" onClick=""$('#contentSearch').toggle(); return false""> <i class=""ion-search""></i> 查找 </a>"); } return(builder.ToString()); }
public static string GetSelectText(SiteInfo siteInfo, ChannelInfo channelInfo, PermissionsImpl adminPermissions, bool[] isLastNodeArray, bool isShowContentNum) { var retval = string.Empty; if (channelInfo.Id == channelInfo.SiteId) { channelInfo.IsLastNode = true; } if (channelInfo.IsLastNode == false) { isLastNodeArray[channelInfo.ParentsCount] = false; } else { isLastNodeArray[channelInfo.ParentsCount] = true; } for (var i = 0; i < channelInfo.ParentsCount; i++) { retval = string.Concat(retval, isLastNodeArray[i] ? " " : "│"); } retval = string.Concat(retval, channelInfo.IsLastNode ? "└" : "├"); retval = string.Concat(retval, channelInfo.ChannelName); if (isShowContentNum) { var onlyAdminId = adminPermissions.GetOnlyAdminId(siteInfo.Id, channelInfo.Id); var count = ContentManager.GetCount(siteInfo, channelInfo, onlyAdminId); retval = string.Concat(retval, " (", count, ")"); } return(retval); }
/// <summary> /// 得到栏目,并且不对(栏目是否可添加内容)进行判断 /// 提供给触发器页面使用 /// 使用场景:其他栏目的内容变动之后,设置某个栏目(此栏目不能添加内容)触发生成 /// </summary> public static void AddListItemsForCreateChannel(ListItemCollection listItemCollection, SiteInfo siteInfo, bool isSeeOwning, PermissionsImpl permissionsImpl) { var list = GetChannelIdList(siteInfo.Id); var nodeCount = list.Count; var isLastNodeArray = new bool[nodeCount]; foreach (var channelId in list) { var enabled = true; if (isSeeOwning) { enabled = permissionsImpl.IsOwningChannelId(channelId); } var nodeInfo = GetChannelInfo(siteInfo.Id, channelId); if (!enabled) { continue; } var listitem = new ListItem(GetSelectText(siteInfo, nodeInfo, permissionsImpl, isLastNodeArray, true), nodeInfo.Id.ToString()); listItemCollection.Add(listitem); } }
public static void AddListItems(ListItemCollection listItemCollection, SiteInfo siteInfo, bool isSeeOwning, bool isShowContentNum, string contentModelId, PermissionsImpl permissionsImpl) { var list = GetChannelIdList(siteInfo.Id); var nodeCount = list.Count; var isLastNodeArray = new bool[nodeCount]; foreach (var channelId in list) { var enabled = true; if (isSeeOwning) { enabled = permissionsImpl.IsOwningChannelId(channelId); if (!enabled) { if (!permissionsImpl.IsDescendantOwningChannelId(siteInfo.Id, channelId)) { continue; } } } var nodeInfo = GetChannelInfo(siteInfo.Id, channelId); var listitem = new ListItem(GetSelectText(siteInfo, nodeInfo, permissionsImpl, isLastNodeArray, isShowContentNum), nodeInfo.Id.ToString()); if (!enabled) { listitem.Attributes.Add("style", "color:gray;"); } if (!StringUtils.EqualsIgnoreCase(nodeInfo.ContentModelPluginId, contentModelId)) { listitem.Attributes.Add("disabled", "disabled"); } listItemCollection.Add(listitem); } }
public IHttpActionResult UpdateRole(int roleId) { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var roleName = request.GetPostString("roleName"); var description = request.GetPostString("description"); var generalPermissionList = request.GetPostObject <List <string> >("generalPermissions"); var sitePermissionsInRolesInfoList = request.GetPostObject <List <SitePermissionsInfo> >("sitePermissions"); var roleInfo = DataProvider.RoleDao.GetRoleInfo(roleId); if (roleInfo.RoleName != roleName) { if (EPredefinedRoleUtils.IsPredefinedRole(roleName)) { return(BadRequest($"角色添加失败,{roleName}为系统角色!")); } if (DataProvider.RoleDao.IsRoleExists(roleName)) { return(BadRequest("角色名称已存在,请更换角色名称!")); } } DataProvider.PermissionsInRolesDao.Delete(roleInfo.RoleName); DataProvider.SitePermissionsDao.Delete(roleInfo.RoleName); if (generalPermissionList != null && generalPermissionList.Count > 0) { var permissionsInRolesInfo = new PermissionsInRolesInfo(0, roleName, TranslateUtils.ObjectCollectionToString(generalPermissionList)); DataProvider.PermissionsInRolesDao.Insert(permissionsInRolesInfo); } if (sitePermissionsInRolesInfoList != null && sitePermissionsInRolesInfoList.Count > 0) { foreach (var sitePermissionsInfo in sitePermissionsInRolesInfoList) { sitePermissionsInfo.RoleName = roleName; DataProvider.SitePermissionsDao.Insert(sitePermissionsInfo); } } roleInfo.RoleName = roleName; roleInfo.Description = description; DataProvider.RoleDao.UpdateRole(roleInfo); PermissionsImpl.ClearAllCache(); request.AddAdminLog("修改管理员角色", $"角色名称:{roleName}"); return(Ok(new { Value = true })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public static string GetChannelRowHtml(SiteInfo siteInfo, ChannelInfo nodeInfo, bool enabled, ELoadingType loadingType, NameValueCollection additional, PermissionsImpl permissionsImpl) { var nodeTreeItem = ChannelTreeItem.CreateInstance(siteInfo, nodeInfo, enabled, permissionsImpl); var adminId = permissionsImpl.GetAdminId(siteInfo.Id, nodeInfo.Id); var title = nodeTreeItem.GetItemHtml(loadingType, PageChannel.GetRedirectUrl(siteInfo.Id, nodeInfo.Id), adminId, additional); var rowHtml = string.Empty; if (loadingType == ELoadingType.ContentTree) { rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}""> <td nowrap>{title}</td> </tr> "; } else if (loadingType == ELoadingType.Channel) { var upLink = string.Empty; var downLink = string.Empty; var editUrl = string.Empty; var checkBoxHtml = string.Empty; if (enabled) { if (permissionsImpl.HasChannelPermissions(nodeInfo.SiteId, nodeInfo.Id, ConfigManager.ChannelPermissions.ChannelEdit)) { editUrl = $@"<a href=""{PageChannelEdit.GetRedirectUrl(nodeInfo.SiteId, nodeInfo.Id, PageChannel.GetRedirectUrl(nodeInfo.SiteId, nodeInfo.Id))}"" onclick=""event.stopPropagation()"">编辑</a>"; upLink = $@"<a href=""{PageUtils.GetCmsUrl(nodeInfo.SiteId, nameof(PageChannel), new NameValueCollection { {"Subtract", true.ToString()}, {"channelId", nodeInfo.Id.ToString()} })}"" onclick=""event.stopPropagation()""><img src=""../Pic/icon/up.gif"" border=""0"" alt=""上升"" /></a>"; downLink = $@"<a href=""{PageUtils.GetCmsUrl(nodeInfo.SiteId, nameof(PageChannel), new NameValueCollection { {"Add", true.ToString()}, {"channelId", nodeInfo.Id.ToString()} })}"" onclick=""event.stopPropagation()""><img src=""../Pic/icon/down.gif"" border=""0"" alt=""下降"" /></a>"; } checkBoxHtml = $@"<input type=""checkbox"" name=""ChannelIDCollection"" value=""{nodeInfo.Id}"" onclick=""checkboxClick(this)"" />"; } rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}"" onclick=""activeRow(this);return false;""> <td>{title}</td> <td class=""text-nowrap"">{nodeInfo.GroupNameCollection}</td> <td class=""text-nowrap"">{nodeInfo.IndexName}</td> <td class=""text-center"">{upLink}</td> <td class=""text-center"">{downLink}</td> <td class=""text-center"">{editUrl}</td> <td class=""text-center"">{checkBoxHtml}</td> </tr> "; } else if (loadingType == ELoadingType.SiteAnalysis) { var startDate = TranslateUtils.ToDateTime(additional["StartDate"]); var endDate = TranslateUtils.ToDateTime(additional["EndDate"]); var tableName = ChannelManager.GetTableName(siteInfo, nodeInfo); var num = DataProvider.ContentDao.GetCountOfContentAdd(tableName, siteInfo.Id, nodeInfo.Id, EScopeType.All, startDate, endDate, string.Empty, ETriState.All); var contentAddNum = num == 0 ? "0" : $"<strong>{num}</strong>"; num = DataProvider.ContentDao.GetCountOfContentUpdate(tableName, siteInfo.Id, nodeInfo.Id, EScopeType.All, startDate, endDate, string.Empty); var contentUpdateNum = num == 0 ? "0" : $"<strong>{num}</strong>"; rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}""> <td>{title}</td> <td class=""text-center"">{contentAddNum}</td> <td class=""text-center"">{contentUpdateNum}</td> </tr> "; } else if (loadingType == ELoadingType.TemplateFilePathRule) { var editLink = string.Empty; if (enabled) { var showPopWinString = ModalTemplateFilePathRule.GetOpenWindowString(nodeInfo.SiteId, nodeInfo.Id); editLink = $"<a href=\"javascript:;\" onclick=\"{showPopWinString}\">更改</a>"; } var filePath = PageUtility.GetInputChannelUrl(siteInfo, nodeInfo, false); rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}""> <td>{title}</td> <td>{filePath}</td> <td class=""text-center"">{editLink}</td> </tr> "; } else if (loadingType == ELoadingType.ConfigurationCreateDetails) { var editChannelLink = string.Empty; var nodeNames = string.Empty; if (enabled) { var showPopWinString = ModalConfigurationCreateChannel.GetOpenWindowString(nodeInfo.SiteId, nodeInfo.Id); editChannelLink = $"<a href=\"javascript:;\" onclick=\"{showPopWinString}\">触发栏目</a>"; } var nodeNameBuilder = new StringBuilder(); var channelIdList = TranslateUtils.StringCollectionToIntList(nodeInfo.Additional.CreateChannelIdsIfContentChanged); foreach (var theChannelId in channelIdList) { var theNodeInfo = ChannelManager.GetChannelInfo(siteInfo.Id, theChannelId); if (theNodeInfo != null) { nodeNameBuilder.Append(theNodeInfo.ChannelName).Append(","); } } if (nodeNameBuilder.Length > 0) { nodeNameBuilder.Length--; nodeNames = nodeNameBuilder.ToString(); } rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}""> <td>{title}</td> <td>{nodeNames}</td> <td class=""text-center"">{editChannelLink}</td> </tr> "; } else if (loadingType == ELoadingType.ConfigurationCrossSiteTrans) { var editLink = string.Empty; if (enabled) { var showPopWinString = ModalCrossSiteTransEdit.GetOpenWindowString(nodeInfo.SiteId, nodeInfo.Id); editLink = $"<a href=\"javascript:;\" onclick=\"{showPopWinString}\">更改</a>"; } var contribute = CrossSiteTransUtility.GetDescription(nodeInfo.SiteId, nodeInfo); rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}""> <td>{title}</td> <td>{contribute}</td> <td class=""text-center"">{editLink}</td> </tr> "; } else if (loadingType == ELoadingType.ChannelClickSelect) { rowHtml = $@" <tr treeItemLevel=""{nodeInfo.ParentsCount + 1}""> <td>{title}</td> </tr> "; } return(rowHtml); }
public static void LoadChannelIdListBox(ListBox channelIdListBox, SiteInfo siteInfo, int psId, ChannelInfo channelInfo, PermissionsImpl permissionsImpl) { channelIdListBox.Items.Clear(); var isUseNodeNames = channelInfo.Additional.TransType == ECrossSiteTransType.AllParentSite || channelInfo.Additional.TransType == ECrossSiteTransType.AllSite; if (!isUseNodeNames) { var channelIdList = TranslateUtils.StringCollectionToIntList(channelInfo.Additional.TransChannelIds); foreach (var theChannelId in channelIdList) { var theNodeInfo = ChannelManager.GetChannelInfo(psId, theChannelId); if (theNodeInfo != null) { var listitem = new ListItem(theNodeInfo.ChannelName, theNodeInfo.Id.ToString()); channelIdListBox.Items.Add(listitem); } } } else { if (!string.IsNullOrEmpty(channelInfo.Additional.TransChannelNames)) { var nodeNameArrayList = TranslateUtils.StringCollectionToStringList(channelInfo.Additional.TransChannelNames); var channelIdList = ChannelManager.GetChannelIdList(psId); foreach (var nodeName in nodeNameArrayList) { foreach (var theChannelId in channelIdList) { var theNodeInfo = ChannelManager.GetChannelInfo(psId, theChannelId); if (theNodeInfo.ChannelName == nodeName) { var listitem = new ListItem(theNodeInfo.ChannelName, theNodeInfo.Id.ToString()); channelIdListBox.Items.Add(listitem); break; } } } } else { ChannelManager.AddListItemsForAddContent(channelIdListBox.Items, SiteManager.GetSiteInfo(psId), false, permissionsImpl); } } }
private static string GetTopMenuSitesHtml(PermissionsImpl permissions, List <SiteInfo> siteInfoList, SiteInfo rootSiteInfo, List <int> addedSiteIdList, SiteInfo currentSiteInfo) { if (siteInfoList.Count == 0) { return(string.Empty); } //操作者拥有的站点列表 var mySiteInfoList = new List <SiteInfo>(); var parentWithChildren = new Dictionary <int, List <SiteInfo> >(); if (permissions.IsSystemAdministrator) { foreach (var siteInfo in siteInfoList) { AddToMySiteInfoList(mySiteInfoList, siteInfo, parentWithChildren); } } else { var permissionChannelIdList = permissions.ChannelPermissionChannelIdList; foreach (var siteInfo in siteInfoList) { var showSite = IsShowSite(siteInfo.Id, permissionChannelIdList); if (showSite) { AddToMySiteInfoList(mySiteInfoList, siteInfo, parentWithChildren); } } } var builder = new StringBuilder(); if (rootSiteInfo != null || mySiteInfoList.Count > 0) { if (rootSiteInfo != null) { AddSite(builder, rootSiteInfo, parentWithChildren, 0, addedSiteIdList, currentSiteInfo); } if (mySiteInfoList.Count > 0) { var count = 0; var list = mySiteInfoList.OrderByDescending(o => o.Taxis).ToList(); foreach (var siteInfo in list) { if (siteInfo.IsRoot == false) { count++; AddSite(builder, siteInfo, parentWithChildren, 0, addedSiteIdList, currentSiteInfo); } if (count == 13) { break; } } builder.Append( $@"<li><a href=""javascript:;"" onclick=""{ModalSiteSelect.GetOpenLayerString(currentSiteInfo.Id)}"">全部站点...</a></li>"); } } var clazz = "has-submenu"; var menuText = "站点管理"; if (currentSiteInfo != null && currentSiteInfo.Id > 0) { clazz = "has-submenu active"; menuText = currentSiteInfo.SiteName; if (currentSiteInfo.ParentId > 0) { menuText += $" ({SiteManager.GetSiteLevel(currentSiteInfo.Id) + 1}级)"; } } return($@"<li class=""{clazz}""> <a href=""javascript:;"">{menuText}</a> <ul class=""submenu""> {builder} </ul> </li>"); }
private static string GetTopMenusHtml(PermissionsImpl permissions, int siteId) { var topMenuTabs = TabManager.GetTopMenuTabs(); if (topMenuTabs == null || topMenuTabs.Count == 0) { return(string.Empty); } var permissionList = new List <string>(); if (permissions.HasSitePermissions(siteId)) { var websitePermissionList = permissions.GetSitePermissions(siteId); if (websitePermissionList != null) { permissionList.AddRange(websitePermissionList); } } permissionList.AddRange(permissions.PermissionList); var builder = new StringBuilder(); foreach (var tab in topMenuTabs) { if (!permissions.IsConsoleAdministrator && !TabManager.IsValid(tab, permissionList)) { continue; } var tabs = TabManager.GetTabList(tab.Id, 0); var tabsBuilder = new StringBuilder(); foreach (var parent in tabs) { if (!permissions.IsConsoleAdministrator && !TabManager.IsValid(parent, permissionList)) { continue; } var hasChildren = parent.Children != null && parent.Children.Length > 0; var parentUrl = !string.IsNullOrEmpty(parent.Href) ? PageUtils.GetLoadingUrl(parent.Href) : "javascript:;"; var parentTarget = !string.IsNullOrEmpty(parent.Target) ? parent.Target : "right"; if (hasChildren) { tabsBuilder.Append($@" <li class=""has-submenu""> <a href=""{parentUrl}"" target=""{parentTarget}"">{parent.Text}</a> <ul class=""submenu""> "); if (parent.Children != null && parent.Children.Length > 0) { foreach (var childTab in parent.Children) { var childTarget = !string.IsNullOrEmpty(childTab.Target) ? childTab.Target : "right"; tabsBuilder.Append($@"<li><a href=""{PageUtils.GetLoadingUrl(childTab.Href)}"" target=""{childTarget}"">{childTab.Text}</a></li>"); } } tabsBuilder.Append(@" </ul> </li>"); } else { tabsBuilder.Append( $@"<li><a href=""{parentUrl}"" target=""{parentTarget}"">{parent.Text}</a></li>"); } } var url = !string.IsNullOrEmpty(tab.Href) ? PageUtils.ParseNavigationUrl(tab.Href) : "javascript:;"; var target = !string.IsNullOrEmpty(tab.Target) ? tab.Target : "right"; builder.Append( $@"<li class=""has-submenu""> <a href=""{url}"" target=""{target}"">{tab.Text}</a> <ul class=""submenu""> {tabsBuilder} </ul> </li>"); } return(builder.ToString()); }
public static bool IsEdit(SiteInfo siteInfo, int channelId, PermissionsImpl permissionsImpl) { return(permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentEdit)); }
public override void Submit_OnClick(object sender, EventArgs e) { if (!Page.IsPostBack || !Page.IsValid) { return; } if (!string.IsNullOrEmpty(_theRoleName)) { try { var sitePermissionsInRolesInfoList = Session[SystemPermissionsInfoListKey] as List <SitePermissionsInfo>; var generalPermissionList = ControlUtils.GetSelectedListControlValueStringList(CblPermissions); DataProvider.PermissionsInRolesDao.UpdateRoleAndGeneralPermissions(_theRoleName, TbDescription.Text, generalPermissionList); DataProvider.SitePermissionsDao.UpdateSitePermissions(_theRoleName, sitePermissionsInRolesInfoList); PermissionsImpl.ClearAllCache(); AuthRequest.AddAdminLog("修改管理员角色", $"角色名称:{_theRoleName}"); SuccessMessage("角色修改成功!"); AddWaitAndRedirectScript(PageAdminRole.GetRedirectUrl()); } catch (Exception ex) { FailMessage(ex, "角色修改失败!"); } } else { if (EPredefinedRoleUtils.IsPredefinedRole(TbRoleName.Text)) { FailMessage($"角色添加失败,{TbRoleName.Text}为系统角色!"); } else if (DataProvider.RoleDao.IsRoleExists(TbRoleName.Text)) { FailMessage("角色添加失败,角色标识已存在!"); } else { var sitePermissionsInRolesInfoList = Session[SystemPermissionsInfoListKey] as List <SitePermissionsInfo>; var generalPermissionList = ControlUtils.GetSelectedListControlValueStringList(CblPermissions); try { DataProvider.SitePermissionsDao.InsertRoleAndPermissions(TbRoleName.Text, AuthRequest.AdminName, TbDescription.Text, generalPermissionList, sitePermissionsInRolesInfoList); PermissionsImpl.ClearAllCache(); AuthRequest.AddAdminLog("新增管理员角色", $"角色名称:{TbRoleName.Text}"); SuccessMessage("角色添加成功!"); AddWaitAndRedirectScript(PageAdminRole.GetRedirectUrl()); } catch (Exception ex) { FailMessage(ex, $"角色添加失败,{ex.Message}"); } } } }
public static ChannelTreeItem CreateInstance(SiteInfo siteInfo, ChannelInfo channelInfo, bool enabled, PermissionsImpl permissionsImpl) { return(new ChannelTreeItem(siteInfo, channelInfo, enabled, permissionsImpl)); }
public static KeyValuePair <bool, int> GetUserCheckLevel(PermissionsImpl permissionsImpl, SiteInfo siteInfo, int channelId) { if (permissionsImpl.IsSystemAdministrator) { return(new KeyValuePair <bool, int>(true, siteInfo.Additional.CheckContentLevel)); } var isChecked = false; var checkedLevel = 0; if (siteInfo.Additional.IsCheckContentLevel == false) { if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentCheck)) { isChecked = true; } } else { if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentCheckLevel5)) { isChecked = true; } else if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentCheckLevel4)) { if (siteInfo.Additional.CheckContentLevel <= 4) { isChecked = true; } else { checkedLevel = 4; } } else if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentCheckLevel3)) { if (siteInfo.Additional.CheckContentLevel <= 3) { isChecked = true; } else { checkedLevel = 3; } } else if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentCheckLevel2)) { if (siteInfo.Additional.CheckContentLevel <= 2) { isChecked = true; } else { checkedLevel = 2; } } else if (permissionsImpl.HasChannelPermissions(siteInfo.Id, channelId, ConfigManager.ChannelPermissions.ContentCheckLevel1)) { if (siteInfo.Additional.CheckContentLevel <= 1) { isChecked = true; } else { checkedLevel = 1; } } else { checkedLevel = 0; } } return(new KeyValuePair <bool, int>(isChecked, checkedLevel)); }