public IHttpActionResult Submit() { try { var request = new RequestImpl(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add)) { return(Unauthorized()); } var fileNames = request.GetPostObject <List <string> >("fileNames"); foreach (var fileName in fileNames) { var localFilePath = PathUtils.GetTemporaryFilesPath(fileName); //var importObject = new ImportObject(siteId, request.AdminName); //importObject.ImportContentsByZipFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default); } request.AddAdminLog("安装离线插件", string.Empty); return(Ok(new { Value = true })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Create() { try { var request = new RequestImpl(); var userInfo = new UserInfo(request.GetPostObject <Dictionary <string, object> >()); if (!ConfigManager.SystemConfigInfo.IsUserRegistrationGroup) { userInfo.GroupId = 0; } var password = request.GetPostString("password"); var userId = DataProvider.UserDao.Insert(userInfo, password, PageUtils.GetIpAddress(), out var errorMessage); if (userId == 0) { return(BadRequest(errorMessage)); } return(Ok(new { Value = UserManager.GetUserInfoByUserId(userId) })); } catch (Exception ex) { LogUtils.AddErrorLog(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 Update(int id) { try { var request = new RequestImpl(); var isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) || request.IsUserLoggin && request.UserId == id || request.IsAdminLoggin && request.AdminPermissions.HasSystemPermissions(ConfigManager.SettingsPermissions.User); if (!isAuth) { return(Unauthorized()); } var body = request.GetPostObject <Dictionary <string, object> >(); if (body == null) { return(BadRequest("Could not read user from body")); } var userInfo = UserManager.GetUserInfoByUserId(id); if (userInfo == null) { return(NotFound()); } var retval = DataProvider.UserDao.Update(userInfo, body, out var errorMessage); if (retval == null) { return(BadRequest(errorMessage)); } return(Ok(new { Value = retval })); } 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 Create(int siteId, int channelId) { try { var request = new RequestImpl(); var sourceId = request.GetPostInt(ContentAttribute.SourceId.ToCamelCase()); bool isAuth; if (sourceId == SourceManager.User) { isAuth = request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd); } else { isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeContents) || request.IsUserLoggin && request.UserPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd) || request.IsAdminLoggin && request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd); } 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 (!channelInfo.Additional.IsContentAddable) { return(BadRequest("此栏目不能添加内容")); } var attributes = request.GetPostObject <Dictionary <string, object> >(); if (attributes == null) { return(BadRequest("无法从body中获取内容实体")); } var checkedLevel = request.GetPostInt("checkedLevel"); var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); var adminName = request.AdminName; var isChecked = checkedLevel >= siteInfo.Additional.CheckContentLevel; if (isChecked) { if (sourceId == SourceManager.User || request.IsUserLoggin) { isChecked = request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentCheck); } else if (request.IsAdminLoggin) { isChecked = request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentCheck); } } var contentInfo = new ContentInfo(attributes) { SiteId = siteId, ChannelId = channelId, AddUserName = adminName, LastEditDate = DateTime.Now, LastEditUserName = adminName, AdminId = request.AdminId, UserId = request.UserId, SourceId = sourceId, IsChecked = isChecked, CheckedLevel = checkedLevel }; contentInfo.Id = DataProvider.ContentDao.Insert(tableName, siteInfo, channelInfo, contentInfo); foreach (var service in PluginManager.Services) { try { service.OnContentFormSubmit(new ContentFormSubmitEventArgs(siteId, channelId, contentInfo.Id, new AttributesImpl(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 })); } 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 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)); } }