public async Task <ActionResult <TreeResult> > Tree([FromBody] SiteRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.ContentsCheck)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(NotFound()); } var channel = await _channelRepository.GetAsync(request.SiteId); var root = await _channelRepository.GetCascadeAsync(site, channel); var siteUrl = await _pathManager.GetSiteUrlAsync(site, true); var groupNames = await _contentGroupRepository.GetGroupNamesAsync(request.SiteId); var tagNames = await _contentTagRepository.GetTagNamesAsync(request.SiteId); var allLevels = CheckManager.GetCheckedLevels(site, true, site.CheckContentLevel, true); var levels = new List <KeyValuePair <int, string> >(); foreach (var level in allLevels) { if (level.Key == CheckManager.LevelInt.CaoGao || level.Key > 0) { continue; } levels.Add(level); } var checkedLevels = ElementUtils.GetCheckBoxes(levels); var columnsManager = new ColumnsManager(_databaseManager, _pathManager); var columns = await columnsManager.GetContentListColumnsAsync(site, channel, ColumnsManager.PageType.CheckContents); return(new TreeResult { Root = root, SiteUrl = siteUrl, GroupNames = groupNames, TagNames = tagNames, CheckedLevels = checkedLevels, Columns = columns }); }
public async Task <ActionResult <TreeResult> > Tree([FromBody] SiteRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.ContentsRecycle)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(NotFound()); } var channel = await _channelRepository.GetAsync(request.SiteId); var root = await _channelRepository.GetCascadeAsync(site, channel); var siteUrl = await _pathManager.GetSiteUrlAsync(site, true); var groupNames = await _contentGroupRepository.GetGroupNamesAsync(request.SiteId); var tagNames = await _contentTagRepository.GetTagNamesAsync(request.SiteId); var checkedLevels = ElementUtils.GetCheckBoxes(CheckManager.GetCheckedLevels(site, true, site.CheckContentLevel, true)); var columnsManager = new ColumnsManager(_databaseManager, _pathManager); var columns = await columnsManager.GetContentListColumnsAsync(site, channel, ColumnsManager.PageType.RecycleContents); return(new TreeResult { Root = root, SiteUrl = siteUrl, GroupNames = groupNames, TagNames = tagNames, CheckedLevels = checkedLevels, Columns = columns }); }
public async Task <ActionResult <ListResult> > List([FromBody] ListRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.Contents) || !await _authManager.HasContentPermissionsAsync(request.SiteId, request.ChannelId, MenuUtils.ContentPermissions.View, MenuUtils.ContentPermissions.Add, MenuUtils.ContentPermissions.Edit, MenuUtils.ContentPermissions.Delete, MenuUtils.ContentPermissions.Translate, MenuUtils.ContentPermissions.Arrange, MenuUtils.ContentPermissions.CheckLevel1, MenuUtils.ContentPermissions.CheckLevel2, MenuUtils.ContentPermissions.CheckLevel3, MenuUtils.ContentPermissions.CheckLevel4, MenuUtils.ContentPermissions.CheckLevel5)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(NotFound()); } var channel = await _channelRepository.GetAsync(request.ChannelId); if (channel == null) { return(this.Error("无法确定内容对应的栏目")); } var columnsManager = new ColumnsManager(_databaseManager, _pathManager); var columns = await columnsManager.GetContentListColumnsAsync(site, channel, ColumnsManager.PageType.Contents); var pageContents = new List <Content>(); List <ContentSummary> summaries; if (!string.IsNullOrEmpty(request.SearchType) && !string.IsNullOrEmpty(request.SearchText) || request.IsAdvanced) { summaries = await _contentRepository.Search(site, channel, channel.IsAllContents, request.SearchType, request.SearchText, request.IsAdvanced, request.CheckedLevels, request.IsTop, request.IsRecommend, request.IsHot, request.IsColor, request.GroupNames, request.TagNames); } else { summaries = await _contentRepository.GetSummariesAsync(site, channel, channel.IsAllContents); } var total = summaries.Count; var channelPlugins = _pluginManager.GetPlugins(request.SiteId, request.ChannelId); var contentMenus = new List <Menu>(); foreach (var plugin in channelPlugins) { var pluginMenus = plugin.GetMenus() .Where(x => ListUtils.ContainsIgnoreCase(x.Type, Types.Resources.Content)).ToList(); if (pluginMenus.Count == 0) { continue; } contentMenus.AddRange(pluginMenus); } if (total > 0) { var offset = site.PageSize * (request.Page - 1); var pageSummaries = summaries.Skip(offset).Take(site.PageSize).ToList(); var sequence = offset + 1; foreach (var summary in pageSummaries) { var content = await _contentRepository.GetAsync(site, summary.ChannelId, summary.Id); if (content == null) { continue; } var pageContent = await columnsManager.CalculateContentListAsync(sequence ++, site, request.ChannelId, content, columns); pageContents.Add(pageContent); } } var(isChecked, checkedLevel) = await CheckManager.GetUserCheckLevelAsync(_authManager, site, request.ChannelId); var checkedLevels = ElementUtils.GetCheckBoxes(CheckManager.GetCheckedLevels(site, isChecked, checkedLevel, true)); var permissions = new Permissions { IsAdd = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Add), IsDelete = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Delete), IsEdit = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Edit), IsArrange = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Arrange), IsTranslate = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Translate), IsCheck = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.CheckLevel1), IsCreate = await _authManager.HasSitePermissionsAsync(site.Id, MenuUtils.SitePermissions.CreateContents) || await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Create), IsChannelEdit = await _authManager.HasChannelPermissionsAsync(site.Id, channel.Id, MenuUtils.ChannelPermissions.Edit) }; return(new ListResult { PageContents = pageContents, Total = total, PageSize = site.PageSize, Columns = columns, IsAllContents = channel.IsAllContents, CheckedLevels = checkedLevels, Permissions = permissions, Menus = contentMenus }); }
public async Task <ActionResult <GetResult> > Get() { var siteIds = await _authManager.GetSiteIdsAsync(); if (siteIds.Count == 0) { return(new GetResult { Unauthorized = true }); } var sites = new List <Select <int> >(); foreach (var siteId in siteIds) { var permissionSite = await _siteRepository.GetAsync(siteId); sites.Add(new Select <int> { Value = permissionSite.Id, Label = permissionSite.SiteName }); } var site = await _siteRepository.GetAsync(siteIds[0]); var channel = await _channelRepository.GetAsync(site.Id); var root = await _channelRepository.GetCascadeAsync(site, channel, async summary => { var count = await _contentRepository.GetCountAsync(site, summary); return(new { Count = count }); }); var siteUrl = await _pathManager.GetSiteUrlAsync(site, true); var groupNames = await _contentGroupRepository.GetGroupNamesAsync(site.Id); var tagNames = await _contentTagRepository.GetTagNamesAsync(site.Id); var checkedLevels = ElementUtils.GetCheckBoxes(CheckManager.GetCheckedLevels(site, true, site.CheckContentLevel, true)); var columnsManager = new ColumnsManager(_databaseManager, _pathManager); var columns = await columnsManager.GetContentListColumnsAsync(site, channel, ColumnsManager.PageType.SearchContents); var permissions = new GetPermissions { IsAdd = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Add), IsDelete = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Delete), IsEdit = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Edit), IsArrange = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Arrange), IsTranslate = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Translate), IsCheck = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.CheckLevel1), IsCreate = await _authManager.HasSitePermissionsAsync(site.Id, MenuUtils.SitePermissions.CreateContents) || await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Create), IsChannelEdit = await _authManager.HasChannelPermissionsAsync(site.Id, channel.Id, MenuUtils.ChannelPermissions.Edit) }; return(new GetResult { Unauthorized = false, Sites = sites, SiteId = site.Id, SiteName = site.SiteName, SiteUrl = siteUrl, Root = root, GroupNames = groupNames, TagNames = tagNames, CheckedLevels = checkedLevels, Columns = columns, Permissions = permissions }); }
public async Task <ActionResult <TreeResult> > Tree([FromBody] TreeRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.Contents)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(NotFound()); } var channel = await _channelRepository.GetAsync(request.SiteId); var enabledChannelIds = await _authManager.GetContentPermissionsChannelIdsAsync(site.Id); var visibleChannelIds = await _authManager.GetVisibleChannelIdsAsync(enabledChannelIds); var root = await _channelRepository.GetCascadeAsync(site, channel, async summary => { var visible = visibleChannelIds.Contains(summary.Id); var disabled = !enabledChannelIds.Contains(summary.Id); var current = await _contentRepository.GetSummariesAsync(site, summary); if (!visible) { return(null); } return(new { current.Count, Disabled = disabled }); }); if (!request.Reload) { var siteUrl = await _pathManager.GetSiteUrlAsync(site, true); var groupNames = await _contentGroupRepository.GetGroupNamesAsync(request.SiteId); var tagNames = await _contentTagRepository.GetTagNamesAsync(request.SiteId); var checkedLevels = ElementUtils.GetCheckBoxes(CheckManager.GetCheckedLevels(site, true, site.CheckContentLevel, true)); return(new TreeResult { Root = root, SiteUrl = siteUrl, GroupNames = groupNames, TagNames = tagNames, CheckedLevels = checkedLevels }); } return(new TreeResult { Root = root }); }
public async Task <ActionResult <TreeResult> > Tree([FromBody] TreeRequest request) { if (!await _authManager.HasSitePermissionsAsync(request.SiteId, MenuUtils.SitePermissions.ContentsSearch)) { return(Unauthorized()); } var site = await _siteRepository.GetAsync(request.SiteId); if (site == null) { return(NotFound()); } var channel = await _channelRepository.GetAsync(request.SiteId); var root = await _channelRepository.GetCascadeAsync(site, channel, async summary => { var count = await _contentRepository.GetCountAsync(site, summary); return(new { Count = count }); }); if (!request.Reload) { var siteUrl = await _pathManager.GetSiteUrlAsync(site, true); var groupNames = await _contentGroupRepository.GetGroupNamesAsync(request.SiteId); var tagNames = await _contentTagRepository.GetTagNamesAsync(request.SiteId); var checkedLevels = ElementUtils.GetCheckBoxes(CheckManager.GetCheckedLevels(site, true, site.CheckContentLevel, true)); var columnsManager = new ColumnsManager(_databaseManager, _pathManager); var columns = await columnsManager.GetContentListColumnsAsync(site, channel, ColumnsManager.PageType.SearchContents); var permissions = new Permissions { IsAdd = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Add), IsDelete = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Delete), IsEdit = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Edit), IsArrange = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Arrange), IsTranslate = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Translate), IsCheck = await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.CheckLevel1), IsCreate = await _authManager.HasSitePermissionsAsync(site.Id, MenuUtils.SitePermissions.CreateContents) || await _authManager.HasContentPermissionsAsync(site.Id, channel.Id, MenuUtils.ContentPermissions.Create), IsChannelEdit = await _authManager.HasChannelPermissionsAsync(site.Id, channel.Id, MenuUtils.ChannelPermissions.Edit) }; var titleColumn = columns.FirstOrDefault(x => StringUtils.EqualsIgnoreCase(x.AttributeName, nameof(Models.Content.Title))); columns.Remove(titleColumn); return(new TreeResult { Root = root, SiteUrl = siteUrl, GroupNames = groupNames, TagNames = tagNames, CheckedLevels = checkedLevels, TitleColumn = titleColumn, Columns = columns, Permissions = permissions }); } return(new TreeResult { Root = root }); }
public async Task <ActionResult <GetResult> > Get() { var siteIds = await _authManager.GetSiteIdsAsync(); if (siteIds.Count == 0) { return(new GetResult { Unauthorized = true }); } var sites = new List <Select <int> >(); foreach (var siteId in siteIds) { var permissionSite = await _siteRepository.GetAsync(siteId); sites.Add(new Select <int> { Value = permissionSite.Id, Label = permissionSite.SiteName }); } var site = await _siteRepository.GetAsync(siteIds[0]); var channel = await _channelRepository.GetAsync(site.Id); var enabledChannelIds = await _authManager.GetChannelIdsAsync(site.Id); var visibleChannelIds = await _authManager.GetVisibleChannelIdsAsync(enabledChannelIds); var root = await _channelRepository.GetCascadeAsync(site, channel, async summary => { var visible = visibleChannelIds.Contains(summary.Id); var disabled = !enabledChannelIds.Contains(summary.Id); var current = await _contentRepository.GetSummariesAsync(site, summary); if (!visible) { return(null); } return(new { current.Count, Disabled = disabled }); }); var siteUrl = await _pathManager.GetSiteUrlAsync(site, true); var groupNames = await _contentGroupRepository.GetGroupNamesAsync(site.Id); var tagNames = await _contentTagRepository.GetTagNamesAsync(site.Id); var checkedLevels = ElementUtils.GetCheckBoxes(CheckManager.GetCheckedLevels(site, true, site.CheckContentLevel, true)); var columnsManager = new ColumnsManager(_databaseManager, _pathManager); var columns = await columnsManager.GetContentListColumnsAsync(site, channel, ColumnsManager.PageType.SearchContents); var titleColumn = columns.FirstOrDefault(x => StringUtils.EqualsIgnoreCase(x.AttributeName, nameof(Models.Content.Title))); columns.Remove(titleColumn); return(new GetResult { Unauthorized = false, Sites = sites, SiteId = site.Id, SiteName = site.SiteName, SiteUrl = siteUrl, Root = root, GroupNames = groupNames, TagNames = tagNames, CheckedLevels = checkedLevels, TitleColumn = titleColumn, Columns = columns }); }