public IHttpActionResult Delete() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var specialId = request.GetPostInt("specialId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.Specials)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); var specialInfo = SpecialManager.DeleteSpecialInfo(siteInfo, specialId); request.AddSiteLog(siteId, "删除专题", $"专题名称:{specialInfo.Title}"); var specialInfoList = DataProvider.SpecialDao.GetSpecialInfoList(siteId); return(Ok(new { Value = specialInfoList })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var targetSiteId = request.GetPostInt("targetSiteId"); var targetChannelId = request.GetPostInt("targetChannelId"); var copyType = request.GetPostString("copyType"); var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var targetSiteInfo = SiteManager.GetSiteInfo(targetSiteId); if (targetSiteInfo == null) { return(BadRequest("无法确定转发对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } foreach (var contentId in contentIdList) { if (targetChannelId != 0) { CrossSiteTransUtility.TransContentInfo(siteInfo, channelInfo, contentId, targetSiteInfo, targetChannelId); } } //request.AddSiteLog(siteId, channelId, "批量跨站转发", string.Empty); request.AddSiteLog(siteId, channelId, "内容跨站转发", $"转发到站点:{targetSiteInfo.SiteName}"); CreateManager.TriggerContentChangedEvent(siteId, channelId); return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex, "批量跨站转发失败"); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var channelContentIds = MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds")); var targetSiteId = request.GetPostInt("targetSiteId"); var targetChannelId = request.GetPostInt("targetChannelId"); var copyType = request.GetPostString("copyType"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentTranslate)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } foreach (var channelContentId in channelContentIds) { ContentUtility.Translate(siteInfo, channelContentId.ChannelId, channelContentId.Id, targetSiteId, targetChannelId, ETranslateContentTypeUtils.GetEnumType(copyType)); } request.AddSiteLog(siteId, channelId, "复制内容", string.Empty); CreateManager.TriggerContentChangedEvent(siteId, channelId); return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var targetSiteId = request.GetPostInt("targetSiteId"); var targetChannelId = request.GetPostInt("targetChannelId"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentTranslate)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } foreach (var contentId in contentIdList) { ContentUtility.Translate(siteInfo, channelId, contentId, targetSiteId, targetChannelId, ETranslateContentType.Cut); } request.AddSiteLog(siteId, channelId, "转移内容", string.Empty); CreateManager.TriggerContentChangedEvent(siteId, channelId); return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ChannelEdit)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var attributeNames = request.GetPostString("attributeNames"); var isAllContents = request.GetPostBool("isAllContents"); var isSelfOnly = request.GetPostBool("isSelfOnly"); channelInfo.Additional.ContentAttributesOfDisplay = attributeNames; channelInfo.Additional.IsAllContents = isAllContents; channelInfo.Additional.IsSelfOnly = isSelfOnly; DataProvider.ChannelDao.Update(channelInfo); request.AddSiteLog(siteId, "设置内容选项"); return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Delete() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsAdminRole)) { return(Unauthorized()); } var id = request.GetPostInt("id"); var roleInfo = DataProvider.RoleDao.GetRoleInfo(id); DataProvider.PermissionsInRolesDao.Delete(roleInfo.RoleName); DataProvider.SitePermissionsDao.Delete(roleInfo.RoleName); DataProvider.RoleDao.DeleteRole(roleInfo.Id); request.AddAdminLog("删除管理员角色", $"角色名称:{roleInfo.RoleName}"); var roleInfoList = request.AdminPermissionsImpl.IsConsoleAdministrator ? DataProvider.RoleDao.GetRoleInfoList() : DataProvider.RoleDao.GetRoleInfoListByCreatorUserName(request.AdminName); return(Ok(new { Value = roleInfoList })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult UnLock() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var id = request.GetPostInt("id"); var adminInfo = AdminManager.GetAdminInfoByUserId(id); DataProvider.AdministratorDao.UnLock(new List <string> { adminInfo.UserName }); request.AddAdminLog("解锁管理员", $"管理员:{adminInfo.UserName}"); return(Ok(new { Value = true })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Delete() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsConfigHomeMenu)) { return(Unauthorized()); } var id = request.GetPostInt("id"); DataProvider.UserMenuDao.Delete(id); return(Ok(new { Value = UserMenuManager.GetAllUserMenuInfoList() })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var attributeName = request.GetPostString("attributeName"); var isDesc = request.GetPostBool("isDesc"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentEdit)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); DataProvider.ContentDao.UpdateArrangeTaxis(tableName, channelId, attributeName, isDesc); request.AddSiteLog(siteId, "批量整理", string.Empty); return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Create() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentDelete)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } foreach (var contentId in contentIdList) { CreateManager.CreateContent(siteId, channelInfo.Id, contentId); } return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Main() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentId = request.GetPostInt("contentId"); var templateId = request.GetPostInt("templateId"); var ajaxDivId = AttackUtils.FilterSqlAndXss(request.GetPostString("ajaxDivId")); var pageUrl = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("pageUrl")); var testType = AttackUtils.FilterSqlAndXss(request.GetPostString("testType")); //var testValue = PageUtils.FilterSqlAndXss(request.GetPostString("testValue")); //var testOperate = PageUtils.FilterSqlAndXss(request.GetPostString("testOperate")); var successTemplate = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("successTemplate")); var failureTemplate = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("failureTemplate")); var isSuccess = false; if (StringUtils.EqualsIgnoreCase(testType, StlIf.TypeIsUserLoggin)) { isSuccess = request.IsUserLoggin; } else if (StringUtils.EqualsIgnoreCase(testType, StlIf.TypeIsAdministratorLoggin)) { isSuccess = request.IsAdminLoggin; } else if (StringUtils.EqualsIgnoreCase(testType, StlIf.TypeIsUserOrAdministratorLoggin)) { isSuccess = request.IsUserLoggin || request.IsAdminLoggin; } return(Ok(new { Html = StlDynamic.ParseDynamicContent(siteId, channelId, contentId, templateId, false, isSuccess ? successTemplate : failureTemplate, pageUrl, 0, ajaxDivId, null, request.UserInfo) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.SiteId; if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.ConfigSite)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); var siteName = request.GetPostString("siteName"); var charset = ECharsetUtils.GetEnumType(request.GetPostString("charset")); var pageSize = request.GetPostInt("pageSize", siteInfo.Additional.PageSize); var isCreateDoubleClick = request.GetPostBool("isCreateDoubleClick"); siteInfo.SiteName = siteName; siteInfo.Additional.Charset = ECharsetUtils.GetValue(charset); siteInfo.Additional.PageSize = pageSize; siteInfo.Additional.IsCreateDoubleClick = isCreateDoubleClick; //修改所有模板编码 var templateInfoList = DataProvider.TemplateDao.GetTemplateInfoListBySiteId(siteId); foreach (var templateInfo in templateInfoList) { if (templateInfo.Charset == charset) { continue; } var templateContent = TemplateManager.GetTemplateContent(siteInfo, templateInfo); templateInfo.Charset = charset; DataProvider.TemplateDao.Update(siteInfo, templateInfo, templateContent, request.AdminName); } DataProvider.SiteDao.Update(siteInfo); request.AddSiteLog(siteId, "修改站点设置"); return(Ok(new { Value = siteInfo, Config = siteInfo.Additional, })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Main() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var siteInfo = SiteManager.GetSiteInfo(siteId); var pageChannelId = request.GetPostInt("pageChannelId"); var templateId = request.GetPostInt("templateId"); var totalNum = request.GetPostInt("totalNum"); var pageCount = request.GetPostInt("pageCount"); var currentPageIndex = request.GetPostInt("currentPageIndex"); var stlPageContentsElement = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("stlPageContentsElement")); var nodeInfo = ChannelManager.GetChannelInfo(siteId, pageChannelId); var templateInfo = TemplateManager.GetTemplateInfo(siteId, templateId); var pageInfo = new PageInfo(nodeInfo.Id, 0, siteInfo, templateInfo, new Dictionary <string, object>()) { UserInfo = request.UserInfo }; var contextInfo = new ContextInfo(pageInfo); var stlPageContents = new StlPageContents(stlPageContentsElement, pageInfo, contextInfo); var pageHtml = stlPageContents.Parse(totalNum, currentPageIndex, pageCount, false); return(Ok(pageHtml)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Download() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var specialId = request.GetPostInt("specialId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.Specials)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); var specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId); var directoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, specialInfo.Url); var srcDirectoryPath = SpecialManager.GetSpecialSrcDirectoryPath(directoryPath); var zipFilePath = SpecialManager.GetSpecialZipFilePath(specialInfo.Title, directoryPath); FileUtils.DeleteFileIfExists(zipFilePath); ZipUtils.CreateZip(zipFilePath, srcDirectoryPath); var url = SpecialManager.GetSpecialZipFileUrl(siteInfo, specialInfo); return(Ok(new { Value = url })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.User)) { return(Unauthorized()); } ConfigManager.SystemConfigInfo.IsUserRegistrationAllowed = request.GetPostBool("isUserRegistrationAllowed"); ConfigManager.SystemConfigInfo.IsUserRegistrationChecked = request.GetPostBool("isUserRegistrationChecked"); ConfigManager.SystemConfigInfo.IsUserUnRegistrationAllowed = request.GetPostBool("isUserUnRegistrationAllowed"); ConfigManager.SystemConfigInfo.UserPasswordMinLength = request.GetPostInt("userPasswordMinLength"); ConfigManager.SystemConfigInfo.UserPasswordRestriction = request.GetPostString("userPasswordRestriction"); ConfigManager.SystemConfigInfo.UserRegistrationMinMinutes = request.GetPostInt("userRegistrationMinMinutes"); ConfigManager.SystemConfigInfo.IsUserLockLogin = request.GetPostBool("isUserLockLogin"); ConfigManager.SystemConfigInfo.UserLockLoginCount = request.GetPostInt("userLockLoginCount"); ConfigManager.SystemConfigInfo.UserLockLoginType = request.GetPostString("userLockLoginType"); ConfigManager.SystemConfigInfo.UserLockLoginHours = request.GetPostInt("userLockLoginHours"); DataProvider.ConfigDao.Update(ConfigManager.Instance); request.AddAdminLog("修改用户设置"); return(Ok(new { Value = ConfigManager.SystemConfigInfo })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Main() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var pageChannelId = request.GetPostInt("pageChannelId"); if (pageChannelId == 0) { pageChannelId = siteId; } var pageContentId = request.GetPostInt("pageContentId"); var pageTemplateId = request.GetPostInt("pageTemplateId"); var isPageRefresh = request.GetPostBool("isPageRefresh"); var templateContent = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("templateContent")); var ajaxDivId = AttackUtils.FilterSqlAndXss(request.GetPostString("ajaxDivId")); var channelId = request.GetPostInt("channelId"); if (channelId == 0) { channelId = pageChannelId; } var contentId = request.GetPostInt("contentId"); if (contentId == 0) { contentId = pageContentId; } var pageUrl = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("pageUrl")); var pageIndex = request.GetPostInt("pageNum"); if (pageIndex > 0) { pageIndex--; } var queryString = PageUtils.GetQueryStringFilterXss(PageUtils.UrlDecode(HttpContext.Current.Request.RawUrl)); queryString.Remove("siteId"); return(Ok(new { Html = StlDynamic.ParseDynamicContent(siteId, channelId, contentId, pageTemplateId, isPageRefresh, templateContent, pageUrl, pageIndex, ajaxDivId, queryString, request.UserInfo) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsAdminConfig)) { return(Unauthorized()); } ConfigManager.SystemConfigInfo.AdminUserNameMinLength = request.GetPostInt("adminUserNameMinLength"); ConfigManager.SystemConfigInfo.AdminPasswordMinLength = request.GetPostInt("adminPasswordMinLength"); ConfigManager.SystemConfigInfo.AdminPasswordRestriction = request.GetPostString("adminPasswordRestriction"); ConfigManager.SystemConfigInfo.IsAdminLockLogin = request.GetPostBool("isAdminLockLogin"); ConfigManager.SystemConfigInfo.AdminLockLoginCount = request.GetPostInt("adminLockLoginCount"); ConfigManager.SystemConfigInfo.AdminLockLoginType = request.GetPostString("adminLockLoginType"); ConfigManager.SystemConfigInfo.AdminLockLoginHours = request.GetPostInt("adminLockLoginHours"); ConfigManager.SystemConfigInfo.IsViewContentOnlySelf = request.GetPostBool("isViewContentOnlySelf"); ConfigManager.SystemConfigInfo.IsAdminEnforcePasswordChange = request.GetPostBool("isAdminEnforcePasswordChange"); ConfigManager.SystemConfigInfo.AdminEnforcePasswordChangeDays = request.GetPostInt("adminEnforcePasswordChangeDays"); ConfigManager.SystemConfigInfo.IsAdminEnforceLogout = request.GetPostBool("isAdminEnforceLogout"); ConfigManager.SystemConfigInfo.AdminEnforceLogoutMinutes = request.GetPostInt("adminEnforceLogoutMinutes"); DataProvider.ConfigDao.Update(ConfigManager.Instance); request.AddAdminLog("修改管理员设置"); return(Ok(new { Value = ConfigManager.SystemConfigInfo })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Create() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelContentIds = request.GetPostObject <List <MinContentInfo> >("channelContentIds"); if (!request.IsAdminLoggin) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } foreach (var channelContentId in channelContentIds) { CreateManager.CreateContent(siteId, channelContentId.ChannelId, channelContentId.Id); } return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Cancel() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.WebSitePermissions.Create)) { return(Unauthorized()); } CreateTaskManager.ClearAllTask(siteId); return(Ok(new { Value = true })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); //var channelId = request.GetPostInt("channelId"); var channelContentIds = MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds")); var pageType = request.GetPostString("pageType"); var groupNames = TranslateUtils.StringCollectionToStringList(request.GetPostString("groupNames")); var groupName = request.GetPostString("groupName"); var description = request.GetPostString("description"); if (!request.IsAdminLoggin) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } if (pageType == "setGroup") { foreach (var channelContentId in channelContentIds) { var channelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId); var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, channelContentId.Id); if (contentInfo == null) { continue; } var list = TranslateUtils.StringCollectionToStringList(contentInfo.GroupNameCollection); foreach (var name in groupNames) { if (!list.Contains(name)) { list.Add(name); } } contentInfo.GroupNameCollection = TranslateUtils.ObjectCollectionToString(list); DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } request.AddSiteLog(siteId, "批量设置内容组", $"内容组:{TranslateUtils.ObjectCollectionToString(groupNames)}"); } else if (pageType == "cancelGroup") { foreach (var channelContentId in channelContentIds) { var channelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId); var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, channelContentId.Id); if (contentInfo == null) { continue; } var list = TranslateUtils.StringCollectionToStringList(contentInfo.GroupNameCollection); foreach (var name in groupNames) { if (list.Contains(name)) { list.Remove(name); } } contentInfo.GroupNameCollection = TranslateUtils.ObjectCollectionToString(list); DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } request.AddSiteLog(siteId, "批量取消内容组", $"内容组:{TranslateUtils.ObjectCollectionToString(groupNames)}"); } else if (pageType == "addGroup") { var groupInfo = new ContentGroupInfo { GroupName = AttackUtils.FilterXss(groupName), SiteId = siteId, Description = AttackUtils.FilterXss(description) }; if (ContentGroupManager.IsExists(siteId, groupInfo.GroupName)) { DataProvider.ContentGroupDao.Update(groupInfo); request.AddSiteLog(siteId, "修改内容组", $"内容组:{groupInfo.GroupName}"); } else { DataProvider.ContentGroupDao.Insert(groupInfo); request.AddSiteLog(siteId, "添加内容组", $"内容组:{groupInfo.GroupName}"); } foreach (var channelContentId in channelContentIds) { var channelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId); var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, channelContentId.Id); if (contentInfo == null) { continue; } var list = TranslateUtils.StringCollectionToStringList(contentInfo.GroupNameCollection); if (!list.Contains(groupInfo.GroupName)) { list.Add(groupInfo.GroupName); } contentInfo.GroupNameCollection = TranslateUtils.ObjectCollectionToString(list); DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } request.AddSiteLog(siteId, "批量设置内容组", $"内容组:{groupInfo.GroupName}"); } return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetChannelContents(int siteId, int channelId) { try { var request = new AuthenticatedRequest(); var sourceId = request.GetPostInt(ContentAttribute.SourceId.ToCamelCase()); bool isAuth; if (sourceId == SourceManager.User) { isAuth = request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView); } else { isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeContents) || request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView) || request.IsAdminLoggin && request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView); } if (!isAuth) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } if (!request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Unauthorized()); } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); var top = request.GetQueryInt("top", 20); var skip = request.GetQueryInt("skip"); var like = request.GetQueryString("like"); var orderBy = request.GetQueryString("orderBy"); var list = DataProvider.ContentDao.ApiGetContentIdListByChannelId(tableName, siteId, channelId, top, skip, like, orderBy, request.QueryString, out var count); var value = new List <Dictionary <string, object> >(); foreach (var(contentChannelId, contentId) in list) { var contentInfo = ContentManager.GetContentInfo(siteInfo, contentChannelId, contentId); if (contentInfo != null) { value.Add(contentInfo.ToDictionary()); } } return(Ok(new PageResponse(value, top, skip, request.HttpRequest.Url.AbsoluteUri) { Count = count })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var downloadUrl = string.Empty; var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var channelContentIds = MinContentInfo.ParseMinContentInfoList(request.GetPostString("channelContentIds")); var exportType = request.GetPostString("exportType"); var isAllCheckedLevel = request.GetPostBool("isAllCheckedLevel"); var checkedLevelKeys = request.GetPostObject <List <int> >("checkedLevelKeys"); var isAllDate = request.GetPostBool("isAllDate"); var startDate = request.GetPostDateTime("startDate", DateTime.Now); var endDate = request.GetPostDateTime("endDate", DateTime.Now); var columnNames = request.GetPostObject <List <string> >("columnNames"); if (!request.IsAdminLoggin || !request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ChannelEdit)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var adminId = channelInfo.Additional.IsSelfOnly ? request.AdminId : request.AdminPermissionsImpl.GetAdminId(siteId, channelId); var isAllContents = channelInfo.Additional.IsAllContents; var columns = ContentManager.GetContentColumns(siteInfo, channelInfo, true); var pluginIds = PluginContentManager.GetContentPluginIds(channelInfo); var pluginColumns = PluginContentManager.GetContentColumns(pluginIds); var contentInfoList = new List <ContentInfo>(); var calculatedContentInfoList = new List <ContentInfo>(); if (channelContentIds.Count == 0) { var ccIds = DataProvider.ContentDao.GetCacheChannelContentIdList(siteInfo, channelInfo, adminId, isAllContents, string.Empty, string.Empty); var count = ccIds.Count; var pages = Convert.ToInt32(Math.Ceiling((double)count / siteInfo.Additional.PageSize)); if (pages == 0) { pages = 1; } if (count > 0) { for (var page = 1; page <= pages; page++) { var offset = siteInfo.Additional.PageSize * (page - 1); var limit = siteInfo.Additional.PageSize; var pageCcIds = ccIds.Skip(offset).Take(limit).ToList(); var sequence = offset + 1; foreach (var channelContentId in pageCcIds) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelContentId.ChannelId, channelContentId.ContentId); if (contentInfo == null) { continue; } if (!isAllCheckedLevel) { var checkedLevel = contentInfo.CheckedLevel; if (contentInfo.IsChecked) { checkedLevel = siteInfo.Additional.CheckContentLevel; } if (!checkedLevelKeys.Contains(checkedLevel)) { continue; } } if (!isAllDate) { if (contentInfo.AddDate < startDate || contentInfo.AddDate > endDate) { continue; } } contentInfoList.Add(contentInfo); calculatedContentInfoList.Add(ContentManager.Calculate(sequence++, contentInfo, columns, pluginColumns)); } } } } else { var sequence = 1; foreach (var channelContentId in channelContentIds) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelContentId.ChannelId, channelContentId.Id); if (contentInfo == null) { continue; } if (!isAllCheckedLevel) { var checkedLevel = contentInfo.CheckedLevel; if (contentInfo.IsChecked) { checkedLevel = siteInfo.Additional.CheckContentLevel; } if (!checkedLevelKeys.Contains(checkedLevel)) { continue; } } if (!isAllDate) { if (contentInfo.AddDate < startDate || contentInfo.AddDate > endDate) { continue; } } contentInfoList.Add(contentInfo); calculatedContentInfoList.Add(ContentManager.Calculate(sequence++, contentInfo, columns, pluginColumns)); } } if (contentInfoList.Count > 0) { if (exportType == "zip") { var fileName = $"{channelInfo.ChannelName}.zip"; var filePath = PathUtils.GetTemporaryFilesPath(fileName); var exportObject = new ExportObject(siteId, request.AdminName); contentInfoList.Reverse(); if (exportObject.ExportContents(filePath, contentInfoList)) { downloadUrl = PageUtils.GetTemporaryFilesUrl(fileName); } } else if (exportType == "excel") { var fileName = $"{channelInfo.ChannelName}.csv"; var filePath = PathUtils.GetTemporaryFilesPath(fileName); ExcelObject.CreateExcelFileForContents(filePath, siteInfo, channelInfo, calculatedContentInfoList, columnNames); downloadUrl = PageUtils.GetTemporaryFilesUrl(fileName); } } return(Ok(new { Value = downloadUrl, IsSuccess = !string.IsNullOrEmpty(downloadUrl) })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public QueryResult GetContents([FromBody] QueryRequest request) { var req = new AuthenticatedRequest(); var sourceId = req.GetPostInt(ContentAttribute.SourceId.ToCamelCase()); var channelId = request.ChannelId ?? request.SiteId; bool isAuth; if (sourceId == SourceManager.User) { isAuth = req.IsUserLoggin && req.UserPermissions.HasChannelPermissions(request.SiteId, channelId, ConfigManager.ChannelPermissions.ContentView); } else { isAuth = req.IsApiAuthenticated && AccessTokenManager.IsScope(req.ApiToken, AccessTokenManager.ScopeContents) || req.IsUserLoggin && req.UserPermissions.HasChannelPermissions(request.SiteId, channelId, ConfigManager.ChannelPermissions.ContentView) || req.IsAdminLoggin && req.AdminPermissions.HasChannelPermissions(request.SiteId, channelId, ConfigManager.ChannelPermissions.ContentView); } if (!isAuth) { return(Request.Unauthorized <QueryResult>()); } var site = SiteManager.GetSiteInfo(request.SiteId); if (site == null) { return(Request.BadRequest <QueryResult>("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(request.SiteId, channelId); if (channelInfo == null) { return(Request.BadRequest <QueryResult>("无法确定内容对应的栏目")); } if (!req.AdminPermissionsImpl.HasChannelPermissions(request.SiteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Request.Unauthorized <QueryResult>()); } var tableName = site.TableName; var query = GetQuery(request.SiteId, request.ChannelId, request); var totalCount = DataProvider.ContentDao.GetTotalCount(tableName, query); var channelContentIds = DataProvider.ContentDao.GetChannelContentIdList(tableName, query); var contents = new List <Dictionary <string, object> >(); foreach (var channelContentId in channelContentIds) { var content = ContentManager.GetContentInfo(site, channelContentId.ChannelId, channelContentId.Id); contents.Add(content.ToDictionary()); } return(new QueryResult { Contents = contents, TotalCount = totalCount }); }
public IHttpActionResult Update(int siteId, int channelId) { try { var request = new AuthenticatedRequest(); var isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeChannels) || request.IsAdminLoggin && request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ChannelEdit); if (!isAuth) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } channelInfo.Additional.Load(request.GetPostObject <Dictionary <string, object> >()); if (request.IsPostExists(ChannelAttribute.ChannelName)) { channelInfo.ChannelName = request.GetPostString(ChannelAttribute.ChannelName); } if (request.IsPostExists(ChannelAttribute.IndexName)) { var indexName = request.GetPostString(ChannelAttribute.IndexName); if (!channelInfo.IndexName.Equals(indexName) && !string.IsNullOrEmpty(indexName)) { var indexNameList = DataProvider.ChannelDao.GetIndexNameList(siteId); if (indexNameList.IndexOf(indexName) != -1) { return(BadRequest("栏目属性修改失败,栏目索引已存在!")); } } channelInfo.IndexName = indexName; } if (request.IsPostExists(ChannelAttribute.ContentModelPluginId)) { var contentModelPluginId = request.GetPostString(ChannelAttribute.ContentModelPluginId); if (channelInfo.ContentModelPluginId != contentModelPluginId) { channelInfo.ContentModelPluginId = contentModelPluginId; } } if (request.IsPostExists(ChannelAttribute.ContentRelatedPluginIds)) { channelInfo.ContentRelatedPluginIds = request.GetPostString(ChannelAttribute.ContentRelatedPluginIds); } if (request.IsPostExists(ChannelAttribute.FilePath)) { var filePath = request.GetPostString(ChannelAttribute.FilePath); filePath = filePath.Trim(); if (!channelInfo.FilePath.Equals(filePath) && !string.IsNullOrEmpty(filePath)) { if (!DirectoryUtils.IsDirectoryNameCompliant(filePath)) { return(BadRequest("栏目页面路径不符合系统要求!")); } if (PathUtils.IsDirectoryPath(filePath)) { filePath = PageUtils.Combine(filePath, "index.html"); } var filePathList = DataProvider.ChannelDao.GetAllFilePathBySiteId(siteId); if (filePathList.IndexOf(filePath) != -1) { return(BadRequest("栏目修改失败,栏目页面路径已存在!")); } } channelInfo.FilePath = filePath; } if (request.IsPostExists(ChannelAttribute.ChannelFilePathRule)) { var channelFilePathRule = request.GetPostString(ChannelAttribute.ChannelFilePathRule); if (!string.IsNullOrEmpty(channelFilePathRule)) { var filePathRule = channelFilePathRule.Replace("|", string.Empty); if (!DirectoryUtils.IsDirectoryNameCompliant(filePathRule)) { return(BadRequest("栏目页面命名规则不符合系统要求!")); } if (PathUtils.IsDirectoryPath(filePathRule)) { return(BadRequest("栏目页面命名规则必须包含生成文件的后缀!")); } } channelInfo.ChannelFilePathRule = channelFilePathRule; } if (request.IsPostExists(ChannelAttribute.ContentFilePathRule)) { var contentFilePathRule = request.GetPostString(ChannelAttribute.ContentFilePathRule); if (!string.IsNullOrEmpty(contentFilePathRule)) { var filePathRule = contentFilePathRule.Replace("|", string.Empty); if (!DirectoryUtils.IsDirectoryNameCompliant(filePathRule)) { return(BadRequest("内容页面命名规则不符合系统要求!")); } if (PathUtils.IsDirectoryPath(filePathRule)) { return(BadRequest("内容页面命名规则必须包含生成文件的后缀!")); } } channelInfo.ContentFilePathRule = contentFilePathRule; } if (request.IsPostExists(ChannelAttribute.GroupNameCollection)) { channelInfo.GroupNameCollection = request.GetPostString(ChannelAttribute.GroupNameCollection); } if (request.IsPostExists(ChannelAttribute.ImageUrl)) { channelInfo.ImageUrl = request.GetPostString(ChannelAttribute.ImageUrl); } if (request.IsPostExists(ChannelAttribute.Content)) { channelInfo.Content = request.GetPostString(ChannelAttribute.Content); } if (request.IsPostExists(ChannelAttribute.Keywords)) { channelInfo.Keywords = request.GetPostString(ChannelAttribute.Keywords); } if (request.IsPostExists(ChannelAttribute.Description)) { channelInfo.Description = request.GetPostString(ChannelAttribute.Description); } if (request.IsPostExists(ChannelAttribute.LinkUrl)) { channelInfo.LinkUrl = request.GetPostString(ChannelAttribute.LinkUrl); } if (request.IsPostExists(ChannelAttribute.LinkType)) { channelInfo.LinkType = request.GetPostString(ChannelAttribute.LinkType); } if (request.IsPostExists(ChannelAttribute.ChannelTemplateId)) { channelInfo.ChannelTemplateId = request.GetPostInt(ChannelAttribute.ChannelTemplateId); } if (request.IsPostExists(ChannelAttribute.ContentTemplateId)) { channelInfo.ContentTemplateId = request.GetPostInt(ChannelAttribute.ContentTemplateId); } DataProvider.ChannelDao.Update(channelInfo); return(Ok(new { Value = channelInfo.ToDictionary() })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Create(int siteId) { try { var request = new AuthenticatedRequest(); var parentId = request.GetPostInt(ChannelAttribute.ParentId, siteId); var isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeChannels) || request.IsAdminLoggin && request.AdminPermissions.HasChannelPermissions(siteId, parentId, ConfigManager.ChannelPermissions.ChannelAdd); if (!isAuth) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var contentModelPluginId = request.GetPostString(ChannelAttribute.ContentModelPluginId); var contentRelatedPluginIds = request.GetPostString(ChannelAttribute.ContentRelatedPluginIds); var channelName = request.GetPostString(ChannelAttribute.ChannelName); var indexName = request.GetPostString(ChannelAttribute.IndexName); var filePath = request.GetPostString(ChannelAttribute.FilePath); var channelFilePathRule = request.GetPostString(ChannelAttribute.ChannelFilePathRule); var contentFilePathRule = request.GetPostString(ChannelAttribute.ContentFilePathRule); var groupNameCollection = request.GetPostString(ChannelAttribute.GroupNameCollection); var imageUrl = request.GetPostString(ChannelAttribute.ImageUrl); var content = request.GetPostString(ChannelAttribute.Content); var keywords = request.GetPostString(ChannelAttribute.Keywords); var description = request.GetPostString(ChannelAttribute.Description); var linkUrl = request.GetPostString(ChannelAttribute.LinkUrl); var linkType = request.GetPostString(ChannelAttribute.LinkType); var channelTemplateId = request.GetPostInt(ChannelAttribute.ChannelTemplateId); var contentTemplateId = request.GetPostInt(ChannelAttribute.ContentTemplateId); var channelInfo = new ChannelInfo { SiteId = siteId, ParentId = parentId, ContentModelPluginId = contentModelPluginId, ContentRelatedPluginIds = contentRelatedPluginIds }; if (!string.IsNullOrEmpty(indexName)) { var indexNameList = DataProvider.ChannelDao.GetIndexNameList(siteId); if (indexNameList.IndexOf(indexName) != -1) { return(BadRequest("栏目添加失败,栏目索引已存在!")); } } if (!string.IsNullOrEmpty(filePath)) { if (!DirectoryUtils.IsDirectoryNameCompliant(filePath)) { return(BadRequest("栏目页面路径不符合系统要求!")); } if (PathUtils.IsDirectoryPath(filePath)) { filePath = PageUtils.Combine(filePath, "index.html"); } var filePathList = DataProvider.ChannelDao.GetAllFilePathBySiteId(siteId); if (filePathList.IndexOf(filePath) != -1) { return(BadRequest("栏目添加失败,栏目页面路径已存在!")); } } if (!string.IsNullOrEmpty(channelFilePathRule)) { if (!DirectoryUtils.IsDirectoryNameCompliant(channelFilePathRule)) { return(BadRequest("栏目页面命名规则不符合系统要求!")); } if (PathUtils.IsDirectoryPath(channelFilePathRule)) { return(BadRequest("栏目页面命名规则必须包含生成文件的后缀!")); } } if (!string.IsNullOrEmpty(contentFilePathRule)) { if (!DirectoryUtils.IsDirectoryNameCompliant(contentFilePathRule)) { return(BadRequest("内容页面命名规则不符合系统要求!")); } if (PathUtils.IsDirectoryPath(contentFilePathRule)) { return(BadRequest("内容页面命名规则必须包含生成文件的后缀!")); } } //var parentChannelInfo = ChannelManager.GetChannelInfo(siteId, parentId); //var styleInfoList = TableStyleManager.GetChannelStyleInfoList(parentChannelInfo); //var extendedAttributes = BackgroundInputTypeParser.SaveAttributes(siteInfo, styleInfoList, Request.Form, null); channelInfo.Additional.Load(request.GetPostObject <Dictionary <string, object> >()); //foreach (string key in attributes) //{ // channelInfo.Additional.SetExtendedAttribute(key, attributes[key]); //} channelInfo.ChannelName = channelName; channelInfo.IndexName = indexName; channelInfo.FilePath = filePath; channelInfo.ChannelFilePathRule = channelFilePathRule; channelInfo.ContentFilePathRule = contentFilePathRule; channelInfo.GroupNameCollection = groupNameCollection; channelInfo.ImageUrl = imageUrl; channelInfo.Content = content; channelInfo.Keywords = keywords; channelInfo.Description = description; channelInfo.LinkUrl = linkUrl; channelInfo.LinkType = linkType; channelInfo.ChannelTemplateId = channelTemplateId; channelInfo.ContentTemplateId = contentTemplateId; channelInfo.AddDate = DateTime.Now; channelInfo.Id = DataProvider.ChannelDao.Insert(channelInfo); //栏目选择投票样式后,内容 CreateManager.CreateChannel(siteId, channelInfo.Id); request.AddSiteLog(siteId, "添加栏目", $"栏目:{channelName}"); return(Ok(new { Value = channelInfo.ToDictionary() })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.SiteAdd)) { return(Unauthorized()); } var createType = request.GetPostString("createType"); var createTemplateId = request.GetPostString("createTemplateId"); var siteName = request.GetPostString("siteName"); var isRoot = request.GetPostBool("isRoot"); var parentId = request.GetPostInt("parentId"); var siteDir = request.GetPostString("siteDir"); var domainName = request.GetPostString("domainName"); var tableRule = ETableRuleUtils.GetEnumType(request.GetPostString("tableRule")); var tableChoose = request.GetPostString("tableChoose"); var tableHandWrite = request.GetPostString("tableHandWrite"); var isImportContents = request.GetPostBool("isImportContents"); var isImportTableStyles = request.GetPostBool("isImportTableStyles"); if (!isRoot) { if (DirectoryUtils.IsSystemDirectory(siteDir)) { return(BadRequest("文件夹名称不能为系统文件夹名称,请更改文件夹名称!")); } if (!DirectoryUtils.IsDirectoryNameCompliant(siteDir)) { return(BadRequest("文件夹名称不符合系统要求,请更改文件夹名称!")); } var list = DataProvider.SiteDao.GetLowerSiteDirList(parentId); if (list.IndexOf(siteDir.ToLower()) != -1) { return(BadRequest("已存在相同的发布路径,请更改文件夹名称!")); } } var channelInfo = new ChannelInfo(); channelInfo.ChannelName = channelInfo.IndexName = "首页"; channelInfo.ParentId = 0; channelInfo.ContentModelPluginId = string.Empty; var tableName = string.Empty; if (tableRule == ETableRule.Choose) { tableName = tableChoose; } else if (tableRule == ETableRule.HandWrite) { tableName = tableHandWrite; if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } } var siteInfo = new SiteInfo { SiteName = AttackUtils.FilterXss(siteName), SiteDir = siteDir, DomainName = domainName, TableName = tableName, ParentId = parentId, IsRoot = isRoot }; siteInfo.Additional.IsCheckContentLevel = false; siteInfo.Additional.Charset = ECharsetUtils.GetValue(ECharset.utf_8); var siteId = DataProvider.ChannelDao.InsertSiteInfo(channelInfo, siteInfo, request.AdminName); if (string.IsNullOrEmpty(tableName)) { tableName = ContentDao.GetContentTableName(siteId); DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); DataProvider.SiteDao.UpdateTableName(siteId, tableName); } if (request.AdminPermissionsImpl.IsSystemAdministrator && !request.AdminPermissionsImpl.IsConsoleAdministrator) { var siteIdList = request.AdminPermissionsImpl.GetSiteIdList() ?? new List <int>(); siteIdList.Add(siteId); var adminInfo = AdminManager.GetAdminInfoByUserId(request.AdminId); DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, TranslateUtils.ObjectCollectionToString(siteIdList)); } var siteTemplateDir = string.Empty; var onlineTemplateName = string.Empty; if (StringUtils.EqualsIgnoreCase(createType, "local")) { siteTemplateDir = createTemplateId; } else if (StringUtils.EqualsIgnoreCase(createType, "cloud")) { onlineTemplateName = createTemplateId; } var redirectUrl = PageProgressBar.GetCreateSiteUrl(siteId, isImportContents, isImportTableStyles, siteTemplateDir, onlineTemplateName, StringUtils.Guid()); SystemManager.UpdateSites(); return(Ok(new { Value = redirectUrl })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Update(int siteId, int channelId, int id) { try { var request = new AuthenticatedRequest(); var sourceId = request.GetPostInt(ContentAttribute.SourceId.ToCamelCase()); bool isAuth; if (sourceId == SourceManager.User) { isAuth = request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentEdit); } else { isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeContents) || request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentEdit) || request.IsAdminLoggin && request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentEdit); } if (!isAuth) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var attributes = request.GetPostObject <Dictionary <string, object> >(); if (attributes == null) { return(BadRequest("无法从body中获取内容实体")); } var adminName = request.AdminName; var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, id); if (contentInfo == null) { return(NotFound()); } contentInfo.Load(attributes); contentInfo.Load(new { SiteId = siteId, ChannelId = channelId, AddUserName = adminName, LastEditDate = DateTime.Now, LastEditUserName = adminName, SourceId = sourceId }); var postCheckedLevel = request.GetPostInt(ContentAttribute.CheckedLevel.ToCamelCase()); var isChecked = postCheckedLevel >= siteInfo.Additional.CheckContentLevel; var checkedLevel = postCheckedLevel; contentInfo.Load(new { IsChecked = isChecked, CheckedLevel = checkedLevel }); DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); foreach (var service in PluginManager.Services) { try { service.OnContentFormSubmit(new ContentFormSubmitEventArgs(siteId, channelId, contentInfo.Id, attributes, contentInfo)); } catch (Exception ex) { LogUtils.AddErrorLog(service.PluginId, ex, nameof(IService.ContentFormSubmit)); } } if (contentInfo.IsChecked) { CreateManager.CreateContent(siteId, channelId, contentInfo.Id); CreateManager.TriggerContentChangedEvent(siteId, channelId); } request.AddSiteLog(siteId, channelId, contentInfo.Id, "修改内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, contentInfo.ChannelId)},内容标题:{contentInfo.Title}"); return(Ok(new { Value = contentInfo.ToDictionary() })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var checkedLevel = request.GetPostInt("checkedLevel"); var isTranslate = request.GetPostBool("isTranslate"); var translateChannelId = request.GetPostInt("translateChannelId"); var reasons = request.GetPostString("reasons"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentCheck)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var isChecked = checkedLevel >= siteInfo.Additional.CheckContentLevel; if (isChecked) { checkedLevel = 0; } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); var contentInfoList = new List <ContentInfo>(); foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } contentInfo.Set(ContentAttribute.CheckUserName, request.AdminName); contentInfo.Set(ContentAttribute.CheckDate, DateTime.Now); contentInfo.Set(ContentAttribute.CheckReasons, reasons); contentInfo.IsChecked = isChecked; contentInfo.CheckedLevel = checkedLevel; if (isTranslate && translateChannelId > 0) { var translateChannelInfo = ChannelManager.GetChannelInfo(siteId, translateChannelId); contentInfo.ChannelId = translateChannelInfo.Id; DataProvider.ContentDao.Update(siteInfo, translateChannelInfo, contentInfo); } else { DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } contentInfoList.Add(contentInfo); var checkInfo = new ContentCheckInfo(0, tableName, siteId, contentInfo.ChannelId, contentInfo.Id, request.AdminName, isChecked, checkedLevel, DateTime.Now, reasons); DataProvider.ContentCheckDao.Insert(checkInfo); } if (isTranslate && translateChannelId > 0) { ContentManager.RemoveCache(tableName, channelId); var translateTableName = ChannelManager.GetTableName(siteInfo, translateChannelId); ContentManager.RemoveCache(translateTableName, translateChannelId); } request.AddSiteLog(siteId, "批量审核内容"); foreach (var contentInfo in contentInfoList) { CreateManager.CreateContent(siteId, contentInfo.ChannelId, contentInfo.Id); } CreateManager.TriggerContentChangedEvent(siteId, channelId); if (isTranslate && translateChannelId > 0) { CreateManager.TriggerContentChangedEvent(siteId, translateChannelId); } return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var siteId = request.GetPostInt("siteId"); var guid = request.GetPostString("guid"); var specialId = request.GetPostInt("specialId"); var isEditOnly = request.GetPostBool("isEditOnly"); var isUploadOnly = request.GetPostBool("isUploadOnly"); var title = request.GetPostString("title"); var url = request.GetPostString("url"); var fileNames = TranslateUtils.StringCollectionToStringList(request.GetPostString("fileNames")); var siteInfo = SiteManager.GetSiteInfo(siteId); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.Specials)) { return(Unauthorized()); } if (specialId > 0 && isEditOnly) { var specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId); var oldDirectoryPath = string.Empty; var newDirectoryPath = string.Empty; if (specialInfo.Title != title && DataProvider.SpecialDao.IsTitleExists(siteId, title)) { return(BadRequest("专题修改失败,专题名称已存在!")); } if (specialInfo.Url != url) { if (DataProvider.SpecialDao.IsUrlExists(siteId, url)) { return(BadRequest("专题修改失败,专题访问地址已存在!")); } oldDirectoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, specialInfo.Url); newDirectoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, url); } specialInfo.Title = title; specialInfo.Url = url; DataProvider.SpecialDao.Update(specialInfo); if (oldDirectoryPath != newDirectoryPath) { DirectoryUtils.MoveDirectory(oldDirectoryPath, newDirectoryPath, true); } } else if (specialId > 0 && isUploadOnly) { var specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId); var directoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, specialInfo.Url); var srcDirectoryPath = SpecialManager.GetSpecialSrcDirectoryPath(directoryPath); DirectoryUtils.CreateDirectoryIfNotExists(srcDirectoryPath); var uploadDirectoryPath = PathUtils.GetTemporaryFilesPath(guid); foreach (var filePath in DirectoryUtils.GetFilePaths(uploadDirectoryPath)) { var fileName = PathUtils.GetFileName(filePath); if (!StringUtils.ContainsIgnoreCase(fileNames, fileName)) { continue; } if (EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath))) { ZipUtils.ExtractZip(filePath, srcDirectoryPath); } else { FileUtils.MoveFile(filePath, PathUtils.Combine(srcDirectoryPath, fileName), true); } } DirectoryUtils.Copy(srcDirectoryPath, directoryPath); } else if (specialId == 0) { if (DataProvider.SpecialDao.IsTitleExists(siteId, title)) { return(BadRequest("专题添加失败,专题名称已存在!")); } if (DataProvider.SpecialDao.IsUrlExists(siteId, url)) { return(BadRequest("专题添加失败,专题访问地址已存在!")); } var directoryPath = SpecialManager.GetSpecialDirectoryPath(siteInfo, url); var srcDirectoryPath = SpecialManager.GetSpecialSrcDirectoryPath(directoryPath); DirectoryUtils.CreateDirectoryIfNotExists(srcDirectoryPath); var uploadDirectoryPath = PathUtils.GetTemporaryFilesPath(guid); foreach (var filePath in DirectoryUtils.GetFilePaths(uploadDirectoryPath)) { var fileName = PathUtils.GetFileName(filePath); if (!StringUtils.ContainsIgnoreCase(fileNames, fileName)) { continue; } if (EFileSystemTypeUtils.IsZip(PathUtils.GetExtension(filePath))) { ZipUtils.ExtractZip(filePath, srcDirectoryPath); } else { FileUtils.MoveFile(filePath, PathUtils.Combine(srcDirectoryPath, fileName), true); } } DirectoryUtils.Copy(srcDirectoryPath, directoryPath); specialId = DataProvider.SpecialDao.Insert(new SpecialInfo { Id = 0, SiteId = siteId, Title = title, Url = url, AddDate = DateTime.Now }); request.AddSiteLog(siteId, "新建专题", $"专题名称:{title}"); } CreateManager.CreateSpecial(siteId, specialId); return(Ok(new { Value = specialId })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Get(int siteId, int channelId, int id) { try { var request = new AuthenticatedRequest(); var sourceId = request.GetPostInt(ContentAttribute.SourceId.ToCamelCase()); bool isAuth; if (sourceId == SourceManager.User) { isAuth = request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView); } else { isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeContents) || request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView) || request.IsAdminLoggin && request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView); } if (!isAuth) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } if (!request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Unauthorized()); } var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, id); if (contentInfo == null) { return(NotFound()); } return(Ok(new { Value = contentInfo.ToDictionary() })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }