public IHttpActionResult Login() { try { var request = new RequestImpl(); var account = request.GetPostString("account"); var password = request.GetPostString("password"); var isAutoLogin = request.GetPostBool("isAutoLogin"); var userInfo = DataProvider.UserDao.Validate(account, password, true, out var _, out var errorMessage); if (userInfo == null) { return(BadRequest(errorMessage)); } var accessToken = request.UserLogin(userInfo.UserName, isAutoLogin); var expiresAt = DateTime.Now.AddDays(RequestImpl.AccessTokenExpireDays); return(Ok(new { Value = userInfo, AccessToken = accessToken, ExpiresAt = expiresAt })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.User)) { return(Unauthorized()); } ConfigManager.SystemConfigInfo.IsHomeClosed = request.GetPostBool("isHomeClosed"); ConfigManager.SystemConfigInfo.HomeTitle = request.GetPostString("homeTitle"); ConfigManager.SystemConfigInfo.IsHomeLogo = request.GetPostBool("isHomeLogo"); ConfigManager.SystemConfigInfo.HomeLogoUrl = request.GetPostString("homeLogoUrl"); ConfigManager.SystemConfigInfo.HomeDefaultAvatarUrl = request.GetPostString("homeDefaultAvatarUrl"); ConfigManager.SystemConfigInfo.UserRegistrationAttributes = request.GetPostString("userRegistrationAttributes"); ConfigManager.SystemConfigInfo.IsUserRegistrationGroup = request.GetPostBool("isUserRegistrationGroup"); ConfigManager.SystemConfigInfo.IsHomeAgreement = request.GetPostBool("isHomeAgreement"); ConfigManager.SystemConfigInfo.HomeAgreementHtml = request.GetPostString("homeAgreementHtml"); DataProvider.ConfigDao.Update(ConfigManager.Instance); // var config = $@"var $apiConfig = {{ // isSeparatedApi: {ApiManager.IsSeparatedApi.ToString().ToLower()}, // apiUrl: '{ApiManager.ApiUrl}', // innerApiUrl: '{ApiManager.InnerApiUrl}' //}}; //"; request.AddAdminLog("修改用户中心设置"); return(Ok(new { Value = ConfigManager.SystemConfigInfo })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Main() { try { var request = new RequestImpl(); 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 RequestImpl(); if (!request.IsAdminLoggin) { return(Unauthorized()); } var tableName = request.GetPostString("tableName"); var attributeName = request.GetPostString("attributeName"); var relatedIdentities = TranslateUtils.StringCollectionToIntList(request.GetPostString("relatedIdentities")); var isRapid = request.GetPostBool("isRapid"); var rapidValues = TranslateUtils.StringCollectionToStringList(request.GetPostString("rapidValues")); var body = request.GetPostObject <TableStyleInfo>("styleInfo"); var styleInfoDatabase = TableStyleManager.GetTableStyleInfo(tableName, attributeName, relatedIdentities) ?? new TableStyleInfo(); bool isSuccess; string errorMessage; //数据库中没有此项及父项的表样式 or 数据库中没有此项的表样式,但是有父项的表样式 if (styleInfoDatabase.Id == 0 && styleInfoDatabase.RelatedIdentity == 0 || styleInfoDatabase.RelatedIdentity != relatedIdentities[0]) { isSuccess = InsertTableStyleInfo(tableName, relatedIdentities, body, isRapid, rapidValues, out errorMessage); request.AddAdminLog("添加表单显示样式", $"字段名:{body.AttributeName}"); } //数据库中有此项的表样式 else { isSuccess = UpdateTableStyleInfo(styleInfoDatabase, body, isRapid, rapidValues, out errorMessage); request.AddAdminLog("修改表单显示样式", $"字段名:{body.AttributeName}"); } if (!isSuccess) { return(BadRequest(errorMessage)); } return(Ok(new{})); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); 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 Submit() { try { var request = new RequestImpl(); 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 Login() { try { var request = new RequestImpl(); var account = request.GetPostString("account"); var password = request.GetPostString("password"); var isAutoLogin = request.GetPostBool("isAutoLogin"); AdministratorInfo adminInfo; if (!DataProvider.AdministratorDao.Validate(account, password, true, out var userName, out var errorMessage)) { adminInfo = AdminManager.GetAdminInfoByUserName(userName); if (adminInfo != null) { DataProvider.AdministratorDao.UpdateLastActivityDateAndCountOfFailedLogin(adminInfo); // 记录最后登录时间、失败次数+1 } return(BadRequest(errorMessage)); } adminInfo = AdminManager.GetAdminInfoByUserName(userName); DataProvider.AdministratorDao.UpdateLastActivityDateAndCountOfLogin(adminInfo); // 记录最后登录时间、失败次数清零 var accessToken = request.AdminLogin(adminInfo.UserName, isAutoLogin); var expiresAt = DateTime.Now.AddDays(RequestImpl.AccessTokenExpireDays); return(Ok(new { Value = adminInfo, AccessToken = accessToken, ExpiresAt = expiresAt })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var isUp = request.GetPostBool("isUp"); var taxis = request.GetPostInt("taxis"); 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("无法确定内容对应的栏目")); } if (ETaxisTypeUtils.Equals(channelInfo.Additional.DefaultTaxisType, ETaxisType.OrderByTaxis)) { isUp = !isUp; } if (isUp == false) { contentIdList.Reverse(); } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } var isTop = contentInfo.IsTop; for (var i = 1; i <= taxis; i++) { if (isUp) { if (DataProvider.ContentDao.SetTaxisToUp(tableName, channelId, contentId, isTop) == false) { break; } } else { if (DataProvider.ContentDao.SetTaxisToDown(tableName, channelId, contentId, isTop) == false) { break; } } } } CreateManager.TriggerContentChangedEvent(siteId, channelId); request.AddSiteLog(siteId, channelId, 0, "对内容排序", string.Empty); return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); var downloadUrl = string.Empty; var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); 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 columns = ContentManager.GetContentColumns(siteInfo, channelInfo, true); var pluginIds = PluginContentManager.GetContentPluginIds(channelInfo); var pluginColumns = PluginContentManager.GetContentColumns(pluginIds); var contentInfoList = new List <ContentInfo>(); var count = ContentManager.GetCount(siteInfo, channelInfo); 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 pageContentIds = ContentManager.GetContentIdList(siteInfo, channelInfo, offset, limit); var sequence = offset + 1; foreach (var contentId in pageContentIds) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, 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(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, contentInfoList, columnNames); downloadUrl = PageUtils.GetTemporaryFilesUrl(fileName); } } } return(Ok(new { Value = downloadUrl, IsSuccess = !string.IsNullOrEmpty(downloadUrl) })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var isRetainFiles = request.GetPostBool("isRetainFiles"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.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("无法确定内容对应的栏目")); } if (!isRetainFiles) { DeleteManager.DeleteContents(siteInfo, channelId, contentIdList); } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); if (contentIdList.Count == 1) { var contentId = contentIdList[0]; var contentTitle = DataProvider.ContentDao.GetValue(tableName, contentId, ContentAttribute.Title); request.AddSiteLog(siteId, channelId, contentId, "删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelId)},内容标题:{contentTitle}"); } else { request.AddSiteLog(siteId, "批量删除内容", $"栏目:{ChannelManager.GetChannelNameNavigation(siteId, channelId)},内容条数:{contentIdList.Count}"); } DataProvider.ContentDao.UpdateTrashContents(siteId, channelId, tableName, contentIdList); 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 RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetPostString("contentIds")); var pageType = request.GetPostString("pageType"); var isRecommend = request.GetPostBool("isRecommend"); var isHot = request.GetPostBool("isHot"); var isColor = request.GetPostBool("isColor"); var isTop = request.GetPostBool("isTop"); var hits = request.GetPostInt("hits"); 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("无法确定内容对应的栏目")); } if (pageType == "setAttributes") { if (isRecommend || isHot || isColor || isTop) { foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } if (isRecommend) { contentInfo.IsRecommend = true; } if (isHot) { contentInfo.IsHot = true; } if (isColor) { contentInfo.IsColor = true; } if (isTop) { contentInfo.IsTop = true; } DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } request.AddSiteLog(siteId, "设置内容属性"); } } else if (pageType == "cancelAttributes") { if (isRecommend || isHot || isColor || isTop) { foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } if (isRecommend) { contentInfo.IsRecommend = false; } if (isHot) { contentInfo.IsHot = false; } if (isColor) { contentInfo.IsColor = false; } if (isTop) { contentInfo.IsTop = false; } DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } request.AddSiteLog(siteId, "取消内容属性"); } } else if (pageType == "setHits") { foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } contentInfo.Hits = hits; DataProvider.ContentDao.Update(siteInfo, channelInfo, contentInfo); } request.AddSiteLog(siteId, "设置内容点击量"); } return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Main() { PageInfo pageInfo = null; var template = string.Empty; try { var request = new RequestImpl(); var form = GetPostCollection(request); var isAllSites = request.GetPostBool(StlSearch.IsAllSites.ToLower()); var siteName = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.SiteName.ToLower())); var siteDir = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.SiteDir.ToLower())); var siteIds = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.SiteIds.ToLower())); var channelIndex = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.ChannelIndex.ToLower())); var channelName = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.ChannelName.ToLower())); var channelIds = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.ChannelIds.ToLower())); var type = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.Type.ToLower())); var word = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.Word.ToLower())); var dateAttribute = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.DateAttribute.ToLower())); var dateFrom = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.DateFrom.ToLower())); var dateTo = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.DateTo.ToLower())); var since = AttackUtils.FilterSqlAndXss(request.GetPostString(StlSearch.Since.ToLower())); var pageNum = request.GetPostInt(StlSearch.PageNum.ToLower()); var isHighlight = request.GetPostBool(StlSearch.IsHighlight.ToLower()); var siteId = request.GetPostInt("siteid"); var ajaxDivId = AttackUtils.FilterSqlAndXss(request.GetPostString("ajaxdivid")); template = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("template")); var pageIndex = request.GetPostInt("page", 1) - 1; var templateInfo = new TemplateInfo(0, siteId, string.Empty, TemplateType.FileTemplate, string.Empty, string.Empty, string.Empty, ECharset.utf_8, false); var siteInfo = SiteManager.GetSiteInfo(siteId); pageInfo = new PageInfo(siteId, 0, siteInfo, templateInfo, new Dictionary <string, object>()) { UserInfo = request.UserInfo }; var contextInfo = new ContextInfo(pageInfo); var contentBuilder = new StringBuilder(StlRequestEntities.ParseRequestEntities(form, template)); var stlLabelList = StlParserUtility.GetStlLabelList(contentBuilder.ToString()); if (StlParserUtility.IsStlElementExists(StlPageContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageContents.ElementName, stlLabelList); var stlPageContentsElement = stlElement; var stlPageContentsElementReplaceString = stlElement; var whereString = DataProvider.ContentDao.GetWhereStringByStlSearch(isAllSites, siteName, siteDir, siteIds, channelIndex, channelName, channelIds, type, word, dateAttribute, dateFrom, dateTo, since, siteId, ApiRouteActionsSearch.ExlcudeAttributeNames, form); var stlPageContents = new StlPageContents(stlPageContentsElement, pageInfo, contextInfo, pageNum, siteInfo.TableName, whereString); var pageCount = stlPageContents.GetPageCount(out var totalNum); if (totalNum == 0) { return(NotFound()); } for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex != pageIndex) { continue; } var pageHtml = stlPageContents.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlPageContentsElementReplaceString, pageHtml)); StlParserManager.ReplacePageElementsInSearchPage(pagedBuilder, pageInfo, stlLabelList, ajaxDivId, pageInfo.PageChannelId, currentPageIndex, pageCount, totalNum); if (isHighlight && !string.IsNullOrEmpty(word)) { var pagedContents = pagedBuilder.ToString(); pagedBuilder = new StringBuilder(); pagedBuilder.Append(RegexUtils.Replace( $"({word.Replace(" ", "\\s")})(?!</a>)(?![^><]*>)", pagedContents, $"<span style='color:#cc0000'>{word}</span>")); } Parser.Parse(pageInfo, contextInfo, pagedBuilder, string.Empty, false); return(Ok(pagedBuilder.ToString())); } } else if (StlParserUtility.IsStlElementExists(StlPageSqlContents.ElementName, stlLabelList)) { var stlElement = StlParserUtility.GetStlElement(StlPageSqlContents.ElementName, stlLabelList); var stlPageSqlContents = new StlPageSqlContents(stlElement, pageInfo, contextInfo); var pageCount = stlPageSqlContents.GetPageCount(out var totalNum); if (totalNum == 0) { return(NotFound()); } for (var currentPageIndex = 0; currentPageIndex < pageCount; currentPageIndex++) { if (currentPageIndex != pageIndex) { continue; } var pageHtml = stlPageSqlContents.Parse(totalNum, currentPageIndex, pageCount, false); var pagedBuilder = new StringBuilder(contentBuilder.ToString().Replace(stlElement, pageHtml)); StlParserManager.ReplacePageElementsInSearchPage(pagedBuilder, pageInfo, stlLabelList, ajaxDivId, pageInfo.PageChannelId, currentPageIndex, pageCount, totalNum); if (isHighlight && !string.IsNullOrEmpty(word)) { var pagedContents = pagedBuilder.ToString(); pagedBuilder = new StringBuilder(); pagedBuilder.Append(RegexUtils.Replace( $"({word.Replace(" ", "\\s")})(?!</a>)(?![^><]*>)", pagedContents, $"<span style='color:#cc0000'>{word}</span>")); } Parser.Parse(pageInfo, contextInfo, pagedBuilder, string.Empty, false); return(Ok(pagedBuilder.ToString())); } } Parser.Parse(pageInfo, contextInfo, contentBuilder, string.Empty, false); return(Ok(contentBuilder.ToString())); } catch (Exception ex) { var message = LogUtils.AddStlErrorLog(pageInfo, StlSearch.ElementName, template, ex); return(BadRequest(message)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); 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 RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var isFix = request.GetPostBool("isFix"); var fixWidth = request.GetPostString("fixWidth"); var fixHeight = request.GetPostString("fixHeight"); var isEditor = request.GetPostBool("isEditor"); var editorIsFix = request.GetPostBool("editorIsFix"); var editorFixWidth = request.GetPostString("editorFixWidth"); var editorFixHeight = request.GetPostString("editorFixHeight"); var editorIsLinkToOriginal = request.GetPostBool("editorIsLinkToOriginal"); var filePaths = TranslateUtils.StringCollectionToStringList(request.GetPostString("filePaths")); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var retval = new List <string>(); var editors = new List <object>(); foreach (var filePath in filePaths) { if (string.IsNullOrEmpty(filePath)) { continue; } var fileExtName = PathUtils.GetExtension(filePath).ToLower(); var fileName = PathUtility.GetUploadFileName(siteInfo, filePath); var directoryPath = PathUtility.GetUploadDirectoryPath(siteInfo, fileExtName); var fixFilePath = PathUtils.Combine(directoryPath, StringUtils.Constants.TitleImageAppendix + fileName); var editorFixFilePath = PathUtils.Combine(directoryPath, StringUtils.Constants.SmallImageAppendix + fileName); var isImage = EFileSystemTypeUtils.IsImage(fileExtName); if (isImage) { if (isFix) { var width = TranslateUtils.ToInt(fixWidth); var height = TranslateUtils.ToInt(fixHeight); ImageUtils.MakeThumbnail(filePath, fixFilePath, width, height, true); } if (isEditor) { if (editorIsFix) { var width = TranslateUtils.ToInt(editorFixWidth); var height = TranslateUtils.ToInt(editorFixHeight); ImageUtils.MakeThumbnail(filePath, editorFixFilePath, width, height, true); } } } var imageUrl = PageUtility.GetSiteUrlByPhysicalPath(siteInfo, filePath, true); var fixImageUrl = PageUtility.GetSiteUrlByPhysicalPath(siteInfo, fixFilePath, true); var editorFixImageUrl = PageUtility.GetSiteUrlByPhysicalPath(siteInfo, editorFixFilePath, true); retval.Add(isFix ? fixImageUrl : imageUrl); editors.Add(new { ImageUrl = isFix ? editorFixImageUrl : imageUrl, OriginalUrl = imageUrl }); } var changed = false; if (siteInfo.Additional.ConfigImageIsFix != isFix) { changed = true; siteInfo.Additional.ConfigImageIsFix = isFix; } if (siteInfo.Additional.ConfigImageFixWidth != fixWidth) { changed = true; siteInfo.Additional.ConfigImageFixWidth = fixWidth; } if (siteInfo.Additional.ConfigImageFixHeight != fixHeight) { changed = true; siteInfo.Additional.ConfigImageFixHeight = fixHeight; } if (siteInfo.Additional.ConfigImageIsEditor != isEditor) { changed = true; siteInfo.Additional.ConfigImageIsEditor = isEditor; } if (siteInfo.Additional.ConfigImageEditorIsFix != editorIsFix) { changed = true; siteInfo.Additional.ConfigImageEditorIsFix = editorIsFix; } if (siteInfo.Additional.ConfigImageEditorFixWidth != editorFixWidth) { changed = true; siteInfo.Additional.ConfigImageEditorFixWidth = editorFixWidth; } if (siteInfo.Additional.ConfigImageEditorFixHeight != editorFixHeight) { changed = true; siteInfo.Additional.ConfigImageEditorFixHeight = editorFixHeight; } if (siteInfo.Additional.ConfigImageEditorIsLinkToOriginal != editorIsLinkToOriginal) { changed = true; siteInfo.Additional.ConfigImageEditorIsLinkToOriginal = editorIsLinkToOriginal; } if (changed) { DataProvider.SiteDao.Update(siteInfo); } return(Ok(new { Value = retval, Editors = editors })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); 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 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, 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()); return(Ok(new { Value = redirectUrl })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var importType = request.GetPostString("importType"); var checkedLevel = request.GetPostInt("checkedLevel"); var isOverride = request.GetPostBool("isOverride"); var fileNames = request.GetPostObject <List <string> >("fileNames"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd)) { 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 (importType == "zip") { foreach (var fileName in fileNames) { var localFilePath = PathUtils.GetTemporaryFilesPath(fileName); if (!EFileSystemTypeUtils.Equals(EFileSystemType.Zip, PathUtils.GetExtension(localFilePath))) { continue; } var importObject = new ImportObject(siteId, request.AdminName); importObject.ImportContentsByZipFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default); } } else if (importType == "csv") { foreach (var fileName in fileNames) { var localFilePath = PathUtils.GetTemporaryFilesPath(fileName); if (!EFileSystemTypeUtils.Equals(EFileSystemType.Csv, PathUtils.GetExtension(localFilePath))) { continue; } var importObject = new ImportObject(siteId, request.AdminName); importObject.ImportContentsByCsvFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default); } } else if (importType == "txt") { foreach (var fileName in fileNames) { var localFilePath = PathUtils.GetTemporaryFilesPath(fileName); if (!EFileSystemTypeUtils.Equals(EFileSystemType.Txt, PathUtils.GetExtension(localFilePath))) { continue; } var importObject = new ImportObject(siteId, request.AdminName); importObject.ImportContentsByTxtFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default); } } request.AddSiteLog(siteId, channelId, 0, "导入内容", string.Empty); return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new RequestImpl(); var siteId = request.GetPostInt("siteId"); var channelId = request.GetPostInt("channelId"); var isFirstLineTitle = request.GetPostBool("isFirstLineTitle"); var isFirstLineRemove = request.GetPostBool("isFirstLineRemove"); var isClearFormat = request.GetPostBool("isClearFormat"); var isFirstLineIndent = request.GetPostBool("isFirstLineIndent"); var isClearFontSize = request.GetPostBool("isClearFontSize"); var isClearFontFamily = request.GetPostBool("isClearFontFamily"); var isClearImages = request.GetPostBool("isClearImages"); var checkedLevel = request.GetPostInt("checkedLevel"); var fileNames = TranslateUtils.StringCollectionToStringList(request.GetPostString("fileNames")); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd)) { 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); var styleInfoList = TableStyleManager.GetContentStyleInfoList(siteInfo, channelInfo); var isChecked = checkedLevel >= siteInfo.Additional.CheckContentLevel; var contentIdList = new List <int>(); foreach (var fileName in fileNames) { if (string.IsNullOrEmpty(fileName)) { continue; } var formCollection = WordUtils.GetWordNameValueCollection(siteId, isFirstLineTitle, isFirstLineRemove, isClearFormat, isFirstLineIndent, isClearFontSize, isClearFontFamily, isClearImages, fileName); if (string.IsNullOrEmpty(formCollection[ContentAttribute.Title])) { continue; } var dict = BackgroundInputTypeParser.SaveAttributes(siteInfo, styleInfoList, formCollection, ContentAttribute.AllAttributes.Value); var contentInfo = new ContentInfo(dict) { ChannelId = channelInfo.Id, SiteId = siteId, AddUserName = request.AdminName, AddDate = DateTime.Now, SourceId = SourceManager.User, AdminId = request.AdminId, UserId = request.UserId, IsChecked = isChecked, CheckedLevel = checkedLevel }; contentInfo.LastEditUserName = contentInfo.AddUserName; contentInfo.LastEditDate = contentInfo.AddDate; contentInfo.Title = formCollection[ContentAttribute.Title]; contentInfo.Id = DataProvider.ContentDao.Insert(tableName, siteInfo, channelInfo, contentInfo); contentIdList.Add(contentInfo.Id); } if (isChecked) { foreach (var contentId in contentIdList) { CreateManager.CreateContent(siteId, channelInfo.Id, contentId); } CreateManager.TriggerContentChangedEvent(siteId, channelInfo.Id); } return(Ok(new { Value = contentIdList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }