public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var specialId = request.GetQueryInt("specialId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.Specials)) { return(Unauthorized()); } SpecialInfo specialInfo = null; if (specialId > 0) { specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId); } return(Ok(new { Value = specialInfo, Guid = StringUtils.GetShortGuid(false), })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult List() { try { var request = new AuthenticatedRequest(); var isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) || request.IsAdminLoggin && request.AdminPermissions.HasSystemPermissions(ConfigManager.SettingsPermissions.User); if (!isAuth) { return(Unauthorized()); } var top = request.GetQueryInt("top", 20); var skip = request.GetQueryInt("skip"); var users = DataProvider.UserDao.GetUsers(skip, top); var count = DataProvider.UserDao.GetCount(); return(Ok(new PageResponse(users, top, skip, request.HttpRequest.Url.AbsoluteUri) { Count = count })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult List() { try { var request = new AuthenticatedRequest(); var isApiAuthorized = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeAdministrators); if (!isApiAuthorized) { return(Unauthorized()); } var top = request.GetQueryInt("top", 20); var skip = request.GetQueryInt("skip"); var administrators = DataProvider.AdministratorDao.ApiGetAdministrators(skip, top); var count = DataProvider.AdministratorDao.ApiGetCount(); return(Ok(new PageResponse(administrators, top, skip, request.HttpRequest.Url.AbsoluteUri) { Count = count })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var channelContentIds = MinContentInfo.ParseMinContentInfoList(request.GetQueryString("channelContentIds")); 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("无法确定内容对应的栏目")); } var retVal = new List <Dictionary <string, object> >(); foreach (var channelContentId in channelContentIds) { var contentChannelInfo = ChannelManager.GetChannelInfo(siteId, channelContentId.ChannelId); var contentInfo = ContentManager.GetContentInfo(siteInfo, contentChannelInfo, channelContentId.Id); if (contentInfo == null) { continue; } var dict = contentInfo.ToDictionary(); dict["title"] = WebUtils.GetContentTitle(siteInfo, contentInfo, string.Empty); dict["checkState"] = CheckManager.GetCheckState(siteInfo, contentInfo); retVal.Add(dict); } return(Ok(new { Value = retVal })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Get() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentId = request.GetQueryInt("contentId"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { return(BadRequest("无法确定对应的内容")); } contentInfo.Load(new { CheckState = CheckManager.GetCheckState(siteInfo, contentInfo) }); var channelName = ChannelManager.GetChannelNameNavigation(siteId, channelId); var attributes = ChannelManager.GetContentsColumns(siteInfo, channelInfo, true); return(Ok(new { Value = contentInfo, ChannelName = channelName, Attributes = attributes })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentId = request.GetQueryInt("contentId"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { return(BadRequest("无法确定对应的内容")); } var title = contentInfo.Title; var checkState = CheckManager.GetCheckState(siteInfo, contentInfo); var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); var contentChecks = DataProvider.ContentCheckDao.GetCheckInfoList(tableName, contentId); return(Ok(new { Value = contentChecks, Title = title, CheckState = checkState })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public void Main(int siteId) { var request = new AuthenticatedRequest(); var callback = request.GetQueryString("callback"); var relatedFieldId = request.GetQueryInt("relatedFieldId"); var parentId = request.GetQueryInt("parentId"); var jsonString = GetRelatedField(relatedFieldId, parentId); var call = callback + "(" + jsonString + ")"; HttpContext.Current.Response.Write(call); HttpContext.Current.Response.End(); }
public IHttpActionResult Get() { try { var request = new AuthenticatedRequest(); var userId = request.GetQueryInt("userId"); if (!request.IsAdminLoggin) { return(Unauthorized()); } var adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var departmentName = DepartmentManager.GetDepartmentName(adminInfo.DepartmentId); var areaName = AreaManager.GetAreaName(adminInfo.AreaId); var permissions = new PermissionsImpl(adminInfo); var level = permissions.GetAdminLevel(); var isSuperAdmin = permissions.IsConsoleAdministrator; var siteNames = new List <string>(); if (!isSuperAdmin) { var siteIdListWithPermissions = permissions.GetSiteIdList(); foreach (var siteId in siteIdListWithPermissions) { siteNames.Add(SiteManager.GetSiteName(SiteManager.GetSiteInfo(siteId))); } } var isOrdinaryAdmin = !permissions.IsSystemAdministrator; var roleNames = string.Empty; if (isOrdinaryAdmin) { roleNames = AdminManager.GetRolesHtml(adminInfo.UserName); } return(Ok(new { Value = adminInfo, DepartmentName = departmentName, AreaName = areaName, Level = level, IsSuperAdmin = isSuperAdmin, SiteNames = TranslateUtils.ObjectCollectionToString(siteNames, "<br />"), IsOrdinaryAdmin = isOrdinaryAdmin, RoleNames = roleNames })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Get() { try { var request = new AuthenticatedRequest(); var userId = request.GetQueryInt("userId"); if (userId == 0) { userId = request.AdminId; } if (!request.IsAdminLoggin) { return(Unauthorized()); } var adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } return(Ok(new { Value = adminInfo })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult List() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.Specials)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); var specialInfoList = DataProvider.SpecialDao.GetSpecialInfoList(siteId); return(Ok(new { Value = specialInfoList, SiteUrl = PageUtility.GetSiteUrl(siteInfo, true) })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetChannels() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channels = new List <object>(); var channelIdList = request.AdminPermissions.GetChannelIdList(siteId, ConfigManager.ChannelPermissions.ContentAdd); foreach (var permissionChannelId in channelIdList) { var permissionChannelInfo = ChannelManager.GetChannelInfo(siteId, permissionChannelId); channels.Add(new { permissionChannelInfo.Id, ChannelName = ChannelManager.GetChannelNameNavigation(siteId, permissionChannelId) }); } return(Ok(new { Value = channels })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); if (!request.IsAdminLoggin || !request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { 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 isChecked = CheckManager.GetUserCheckLevel(request.AdminPermissionsImpl, siteInfo, siteId, out var checkedLevel); var checkedLevels = CheckManager.GetCheckedLevels(siteInfo, isChecked, checkedLevel, true); return(Ok(new { Value = columns, CheckedLevels = checkedLevels, CheckedLevel = checkedLevel })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public LibraryTextInfo Create() { var auth = new AuthenticatedRequest(); if (!auth.IsAdminLoggin || !auth.AdminPermissionsImpl.HasSitePermissions(auth.SiteId, ConfigManager.SitePermissions.Library)) { return(Request.Unauthorized <LibraryTextInfo>()); } var library = new LibraryTextInfo { GroupId = auth.GetQueryInt("groupId") }; var fileName = auth.HttpRequest["fileName"]; var fileCount = auth.HttpRequest.Files.Count; if (fileCount == 0) { return(Request.BadRequest <LibraryTextInfo>("请选择有效的文件上传")); } var file = auth.HttpRequest.Files[0]; if (string.IsNullOrEmpty(fileName)) { fileName = Path.GetFileName(file.FileName); } var sExt = PathUtils.GetExtension(fileName); if (!StringUtils.EqualsIgnoreCase(sExt, ".doc") && !StringUtils.EqualsIgnoreCase(sExt, ".docx") && !StringUtils.EqualsIgnoreCase(sExt, ".wps")) { return(Request.BadRequest <LibraryTextInfo>("文件只能是 Word 格式,请选择有效的文件上传!")); } var libraryFileName = PathUtils.GetLibraryFileName(fileName); var virtualDirectoryPath = PathUtils.GetLibraryVirtualPath(EUploadType.Image, libraryFileName); var directoryPath = PathUtils.Combine(WebConfigUtils.PhysicalApplicationPath, virtualDirectoryPath); var filePath = PathUtils.Combine(directoryPath, libraryFileName); DirectoryUtils.CreateDirectoryIfNotExists(filePath); file.SaveAs(filePath); var wordContent = WordUtils.Parse(auth.SiteId, filePath, true, true, true, true, false); FileUtils.DeleteFileIfExists(filePath); library.Title = fileName; library.Content = wordContent; library.Id = DataProvider.LibraryTextDao.Insert(library); return(library); }
public IHttpActionResult Upload() { try { var request = new AuthenticatedRequest(); var userId = request.GetQueryInt("userId"); if (!request.IsAdminLoggin) { return(Unauthorized()); } var adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var avatarUrl = string.Empty; foreach (string name in HttpContext.Current.Request.Files) { var postFile = HttpContext.Current.Request.Files[name]; if (postFile == null) { return(BadRequest("Could not read image from body")); } var fileName = AdminManager.GetUserUploadFileName(postFile.FileName); var filePath = AdminManager.GetUserUploadPath(userId, fileName); if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName))) { return(BadRequest("image file extension is not correct")); } postFile.SaveAs(filePath); avatarUrl = AdminManager.GetUserUploadUrl(userId, fileName); } return(Ok(new { Value = avatarUrl })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("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 attributes = ChannelManager.GetContentsColumns(siteInfo, channelInfo, true); return(Ok(new { Value = attributes, channelInfo.Additional.IsAllContents, channelInfo.Additional.IsSelfOnly })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); 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("无法确定内容对应的栏目")); } var contentGroupNameList = ContentGroupManager.GetGroupNameList(siteId); return(Ok(new { Value = contentGroupNameList })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var specialId = request.GetQueryInt("specialId"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.SitePermissions.Specials)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); var specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId); if (specialInfo == null) { return(BadRequest("专题不存在!")); } var specialUrl = PageUtility.ParseNavigationUrl(siteInfo, $"@/{StringUtils.TrimSlash(specialInfo.Url)}/", true); var filePath = PathUtils.Combine(SpecialManager.GetSpecialDirectoryPath(siteInfo, specialInfo.Url), "index.html"); var html = FileUtils.ReadText(filePath, Encoding.UTF8); return(Ok(new { Value = specialInfo, SpecialUrl = specialUrl, Html = html })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetList() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSitePermissions(request.SiteId, ConfigManager.WebSitePermissions.Create)) { return(Unauthorized()); } var siteId = request.SiteId; var parentId = request.GetQueryInt("parentId"); var siteInfo = SiteManager.GetSiteInfo(siteId); var parent = ChannelManager.GetChannelInfo(siteId, parentId); var countDict = new Dictionary <int, int>(); countDict[parent.Id] = ContentManager.GetCount(siteInfo, parent, true); var channelInfoList = new List <ChannelInfo>(); var channelIdList = ChannelManager.GetChannelIdList(parent, EScopeType.Children, string.Empty, string.Empty, string.Empty); foreach (var channelId in channelIdList) { var enabled = request.AdminPermissionsImpl.IsOwningChannelId(channelId); if (!enabled) { if (!request.AdminPermissionsImpl.IsDescendantOwningChannelId(siteId, channelId)) { continue; } } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); channelInfoList.Add(channelInfo); countDict[channelInfo.Id] = ContentManager.GetCount(siteInfo, channelInfo, true); } return(Ok(new { Value = channelInfoList, Parent = parent, CountDict = countDict })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public ApiContentsParameters(AuthenticatedRequest request) { ChannelIds = TranslateUtils.StringCollectionToIntList(request.GetQueryString("channelIds")); ChannelGroup = StringUtils.Trim(AttackUtils.FilterSql(request.GetQueryString("channelGroup"))); ContentGroup = StringUtils.Trim(AttackUtils.FilterSql(request.GetQueryString("contentGroup"))); Tag = StringUtils.Trim(AttackUtils.FilterSql(request.GetQueryString("tag"))); Top = request.GetQueryInt("top", 20); Skip = request.GetQueryInt("skip"); Likes = TranslateUtils.StringCollectionToStringList(StringUtils.Trim(AttackUtils.FilterSql(request.GetQueryString("like")))); OrderBy = StringUtils.Trim(AttackUtils.FilterSql(request.GetQueryString("orderBy"))); QueryString = new NameValueCollection(request.QueryString); QueryString.Remove("siteId"); QueryString.Remove("channelIds"); QueryString.Remove("channelGroup"); QueryString.Remove("contentGroup"); QueryString.Remove("tag"); QueryString.Remove("top"); QueryString.Remove("skip"); QueryString.Remove("like"); QueryString.Remove("orderBy"); }
public LibraryImageInfo Create() { var auth = new AuthenticatedRequest(); if (!auth.IsAdminLoggin || !auth.AdminPermissionsImpl.HasSitePermissions(auth.SiteId, ConfigManager.SitePermissions.Library)) { return(Request.Unauthorized <LibraryImageInfo>()); } var library = new LibraryImageInfo { GroupId = auth.GetQueryInt("groupId") }; var fileName = auth.HttpRequest["fileName"]; var fileCount = auth.HttpRequest.Files.Count; if (fileCount == 0) { return(Request.BadRequest <LibraryImageInfo>("请选择有效的文件上传")); } var file = auth.HttpRequest.Files[0]; if (string.IsNullOrEmpty(fileName)) { fileName = Path.GetFileName(file.FileName); } if (!PathUtils.IsExtension(PathUtils.GetExtension(fileName), ".jpg", ".jpeg", ".bmp", ".gif", ".png", ".svg", ".webp")) { return(Request.BadRequest <LibraryImageInfo>("文件只能是图片格式,请选择有效的文件上传!")); } var libraryFileName = PathUtils.GetLibraryFileName(fileName); var virtualPath = PathUtils.GetLibraryVirtualPath(EUploadType.Image, libraryFileName); var filePath = PathUtils.Combine(WebConfigUtils.PhysicalApplicationPath, virtualPath); DirectoryUtils.CreateDirectoryIfNotExists(filePath); file.SaveAs(filePath); library.Title = fileName; library.Url = virtualPath; library.Id = DataProvider.LibraryImageDao.Insert(library); return(library); }
public IHttpActionResult GetLogs(int id) { try { var request = new AuthenticatedRequest(); var isAuth = request.IsApiAuthenticated && AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) || request.IsUserLoggin && request.UserId == id || request.IsAdminLoggin && request.AdminPermissions.HasSystemPermissions(ConfigManager.AppPermissions.SettingsUser); if (!isAuth) { return(Unauthorized()); } var userInfo = UserManager.GetUserInfoByUserId(id); if (userInfo == null) { return(NotFound()); } var top = request.GetQueryInt("top", 20); var skip = request.GetQueryInt("skip"); var logs = DataProvider.UserLogDao.ApiGetLogs(userInfo.UserName, skip, top); return(Ok(new PageResponse(logs, top, skip, request.HttpRequest.Url.AbsoluteUri) { Count = DataProvider.UserDao.GetCount() })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); var userId = request.GetQueryInt("userId"); if (userId == 0) { userId = request.AdminId; } if (!request.IsAdminLoggin) { return(Unauthorized()); } var adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var password = request.GetPostString("password"); if (!DataProvider.AdministratorDao.ChangePassword(adminInfo, password, out var errorMessage)) { return(BadRequest($"更改密码失败:{errorMessage}")); } request.AddAdminLog("重设管理员密码", $"管理员:{adminInfo.UserName}"); return(Ok(new { Value = true })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetSitePermissions(int siteId) { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var roleId = request.GetQueryInt("roleId"); return(Ok(GetSitePermissionsObject(roleId, siteId, request))); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Cache() { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin) { return(Unauthorized()); } var siteId = request.GetQueryInt("siteId"); var site = SiteManager.GetSiteInfo(siteId); var channelInfoList = ChannelManager.GetChannelInfoList(siteId); foreach (var channelInfo in channelInfoList) { var adminId = channelInfo.Additional.IsSelfOnly ? request.AdminId : request.AdminPermissionsImpl.GetAdminId(siteId, channelInfo.Id); var isAllContents = channelInfo.Additional.IsAllContents; var ccIds = ContentManager.GetChannelContentIdList(site, channelInfo, adminId, isAllContents); var count = ccIds.Count; if (count > 0) { var limit = site.Additional.PageSize; var pageCcIds = ccIds.Take(limit).ToList(); foreach (var(contentChannelId, contentId) in pageCcIds) { ContentManager.GetContentInfo(site, contentChannelId, contentId); } } } return(Ok(new { Value = true })); }
public IHttpActionResult Get() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var page = request.GetQueryInt("page"); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } var onlyAdminId = request.AdminPermissionsImpl.GetOnlyAdminId(siteId, channelId); var pluginIds = PluginContentManager.GetContentPluginIds(channelInfo); var pluginColumns = PluginContentManager.GetContentColumns(pluginIds); var columns = ContentManager.GetContentColumns(siteInfo, channelInfo, false); var pageContentInfoList = new List <ContentInfo>(); var count = ContentManager.GetCount(siteInfo, channelInfo, onlyAdminId); var pages = Convert.ToInt32(Math.Ceiling((double)count / siteInfo.Additional.PageSize)); if (pages == 0) { pages = 1; } if (count > 0) { var offset = siteInfo.Additional.PageSize * (page - 1); var limit = siteInfo.Additional.PageSize; var pageContentIds = ContentManager.GetContentIdList(siteInfo, channelInfo, onlyAdminId, offset, limit); var sequence = offset + 1; foreach (var contentId in pageContentIds) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } var menus = PluginMenuManager.GetContentMenus(pluginIds, contentInfo); contentInfo.Set("PluginMenus", menus); pageContentInfoList.Add(ContentManager.Calculate(sequence++, contentInfo, columns, pluginColumns)); } } var permissions = new { IsAdd = request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentAdd) && channelInfo.Additional.IsContentAddable, IsDelete = request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentDelete), IsEdit = request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentEdit), IsTranslate = request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentTranslate), IsCheck = request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentCheck), IsCreate = request.AdminPermissionsImpl.HasSitePermissions(siteInfo.Id, ConfigManager.WebSitePermissions.Create) || request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.CreatePage), IsChannelEdit = request.AdminPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ChannelEdit) }; return(Ok(new { Value = pageContentInfoList, Count = count, Pages = pages, Permissions = permissions, Columns = columns })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public void Main() { try { var request = new AuthenticatedRequest(); if (!string.IsNullOrEmpty(request.GetQueryString("siteId")) && !string.IsNullOrEmpty(request.GetQueryString("fileUrl")) && string.IsNullOrEmpty(request.GetQueryString("contentId"))) { var siteId = request.GetQueryInt("siteId"); var fileUrl = TranslateUtils.DecryptStringBySecretKey(request.GetQueryString("fileUrl")); if (PageUtils.IsProtocolUrl(fileUrl)) { PageUtils.Redirect(fileUrl); return; } var siteInfo = SiteManager.GetSiteInfo(siteId); var filePath = PathUtility.MapPath(siteInfo, fileUrl); var fileType = EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(filePath)); if (EFileSystemTypeUtils.IsDownload(fileType)) { if (FileUtils.IsFileExists(filePath)) { PageUtils.Download(HttpContext.Current.Response, filePath); return; } } else { PageUtils.Redirect(PageUtility.ParseNavigationUrl(siteInfo, fileUrl, false)); return; } } else if (!string.IsNullOrEmpty(request.GetQueryString("filePath"))) { var filePath = TranslateUtils.DecryptStringBySecretKey(request.GetQueryString("filePath")); var fileType = EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(filePath)); if (EFileSystemTypeUtils.IsDownload(fileType)) { if (FileUtils.IsFileExists(filePath)) { PageUtils.Download(HttpContext.Current.Response, filePath); return; } } else { var fileUrl = PageUtils.GetRootUrlByPhysicalPath(filePath); PageUtils.Redirect(PageUtils.ParseNavigationUrl(fileUrl)); return; } } else if (!string.IsNullOrEmpty(request.GetQueryString("siteId")) && !string.IsNullOrEmpty(request.GetQueryString("channelId")) && !string.IsNullOrEmpty(request.GetQueryString("contentId")) && !string.IsNullOrEmpty(request.GetQueryString("fileUrl"))) { var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentId = request.GetQueryInt("contentId"); var fileUrl = TranslateUtils.DecryptStringBySecretKey(request.GetQueryString("fileUrl")); var siteInfo = SiteManager.GetSiteInfo(siteId); var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); DataProvider.ContentDao.AddDownloads(siteId, ChannelManager.GetTableName(siteInfo, channelInfo), channelId, contentId); if (!string.IsNullOrEmpty(contentInfo?.GetString(BackgroundContentAttribute.FileUrl))) { if (PageUtils.IsProtocolUrl(fileUrl)) { PageUtils.Redirect(fileUrl); return; } var filePath = PathUtility.MapPath(siteInfo, fileUrl, true); var fileType = EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(filePath)); if (EFileSystemTypeUtils.IsDownload(fileType)) { if (FileUtils.IsFileExists(filePath)) { PageUtils.Download(HttpContext.Current.Response, filePath); return; } } else { PageUtils.Redirect(PageUtility.ParseNavigationUrl(siteInfo, fileUrl, false)); return; } } } } catch { // ignored } HttpContext.Current.Response.Write("下载失败,不存在此文件!"); }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetQueryString("contentIds")); 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("无法确定内容对应的栏目")); } var retval = new List <Dictionary <string, object> >(); foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } var dict = contentInfo.ToDictionary(); dict["checkState"] = CheckManager.GetCheckState(siteInfo, contentInfo); retval.Add(dict); } var sites = new List <object>(); var channels = new List <object>(); var siteIdList = request.AdminPermissions.GetSiteIdList(); foreach (var permissionSiteId in siteIdList) { var permissionSiteInfo = SiteManager.GetSiteInfo(permissionSiteId); sites.Add(new { permissionSiteInfo.Id, permissionSiteInfo.SiteName }); } var channelIdList = request.AdminPermissions.GetChannelIdList(siteInfo.Id, ConfigManager.ChannelPermissions.ContentAdd); foreach (var permissionChannelId in channelIdList) { var permissionChannelInfo = ChannelManager.GetChannelInfo(siteInfo.Id, permissionChannelId); channels.Add(new { permissionChannelInfo.Id, ChannelName = ChannelManager.GetChannelNameNavigation(siteInfo.Id, permissionChannelId) }); } return(Ok(new { Value = retval, Sites = sites, Channels = channels, Site = siteInfo })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Get() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } var roleId = request.GetQueryInt("roleId"); var systemPermissionsInfoList = new List <SitePermissionsInfo>(); var permissionList = new List <string>(); RoleInfo roleInfo = null; if (roleId > 0) { roleInfo = DataProvider.RoleDao.GetRoleInfo(roleId); systemPermissionsInfoList = DataProvider.SitePermissionsDao.GetSystemPermissionsInfoList(roleInfo.RoleName); permissionList = DataProvider.PermissionsInRolesDao.GetGeneralPermissionList(new[] { roleInfo.RoleName }); } var permissions = new List <Permission>(); var generalPermissionList = request.AdminPermissionsImpl.PermissionList; var generalPermissions = PermissionConfigManager.Instance.GeneralPermissions; if (generalPermissions.Count > 0) { foreach (var permission in generalPermissions) { if (generalPermissionList.Contains(permission.Name)) { permissions.Add(new Permission { Name = permission.Name, Text = permission.Text, Selected = StringUtils.ContainsIgnoreCase(permissionList, permission.Name) }); } } } var siteInfoList = new List <SiteInfo>(); var checkedSiteIdList = new List <int>(); foreach (var permissionSiteId in request.AdminPermissionsImpl.GetSiteIdList()) { if (request.AdminPermissionsImpl.HasChannelPermissions(permissionSiteId, permissionSiteId) && request.AdminPermissionsImpl.HasSitePermissions(permissionSiteId)) { var listOne = request.AdminPermissionsImpl.GetChannelPermissions(permissionSiteId, permissionSiteId); var listTwo = request.AdminPermissionsImpl.GetSitePermissions(permissionSiteId); if (listOne != null && listOne.Count > 0 || listTwo != null && listTwo.Count > 0) { siteInfoList.Add(SiteManager.GetSiteInfo(permissionSiteId)); } } } foreach (var systemPermissionsInfo in systemPermissionsInfoList) { checkedSiteIdList.Add(systemPermissionsInfo.SiteId); } var sitePermissionsList = new List <object>(); foreach (var siteId in checkedSiteIdList) { sitePermissionsList.Add(GetSitePermissionsObject(roleId, siteId, request)); } return(Ok(new { Value = true, RoleInfo = roleInfo, Permissions = permissions, SiteInfoList = siteInfoList, CheckedSiteIdList = checkedSiteIdList, SitePermissionsList = sitePermissionsList })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task Main() { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var siteInfo = SiteManager.GetSiteInfo(siteId); try { var channelId = request.GetQueryInt("channelId"); if (channelId == 0) { channelId = siteId; } var contentId = request.GetQueryInt("contentId"); var fileTemplateId = request.GetQueryInt("fileTemplateId"); var specialId = request.GetQueryInt("specialId"); var isRedirect = TranslateUtils.ToBool(request.GetQueryString("isRedirect")); if (specialId != 0) { await FileSystemObjectAsync.ExecuteAsync(siteId, ECreateType.Special, 0, 0, 0, specialId); } else if (fileTemplateId != 0) { await FileSystemObjectAsync.ExecuteAsync(siteId, ECreateType.File, 0, 0, fileTemplateId, 0); } else if (contentId != 0) { await FileSystemObjectAsync.ExecuteAsync(siteId, ECreateType.Content, channelId, contentId, 0, 0); } else if (channelId != 0) { await FileSystemObjectAsync.ExecuteAsync(siteId, ECreateType.Channel, channelId, 0, 0, 0); } else if (siteId != 0) { await FileSystemObjectAsync.ExecuteAsync(siteId, ECreateType.Channel, siteId, 0, 0, 0); } if (isRedirect) { var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); var redirectUrl = string.Empty; if (specialId != 0) { redirectUrl = PageUtility.GetFileUrl(siteInfo, specialId, false); } else if (fileTemplateId != 0) { redirectUrl = PageUtility.GetFileUrl(siteInfo, fileTemplateId, false); } else if (contentId != 0) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); redirectUrl = PageUtility.GetContentUrl(siteInfo, contentInfo, false); } else if (channelId != 0) { redirectUrl = PageUtility.GetChannelUrl(siteInfo, channelInfo, false); } else if (siteId != 0) { redirectUrl = PageUtility.GetIndexPageUrl(siteInfo, false); } if (!string.IsNullOrEmpty(redirectUrl)) { var parameters = new NameValueCollection(); var returnUrl = request.GetQueryString("returnUrl"); if (!string.IsNullOrEmpty(returnUrl) && returnUrl.StartsWith("?")) { parameters = TranslateUtils.ToNameValueCollection(returnUrl.Substring(1)); } parameters["__r"] = StringUtils.GetRandomInt(1, 10000).ToString(); PageUtils.Redirect(PageUtils.AddQueryString(redirectUrl, parameters)); return; } } } catch { var redirectUrl = PageUtility.GetIndexPageUrl(siteInfo, false); PageUtils.Redirect(redirectUrl); return; } HttpContext.Current.Response.Write(string.Empty); HttpContext.Current.Response.End(); }
public IHttpActionResult GetConfig() { try { var request = new AuthenticatedRequest(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetQueryString("contentIds")); 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 retval = new List <Dictionary <string, object> >(); foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { continue; } var dict = contentInfo.ToDictionary(); dict["title"] = WebUtils.GetContentTitle(siteInfo, contentInfo, string.Empty); dict["checkState"] = CheckManager.GetCheckState(siteInfo, contentInfo); retval.Add(dict); } var isChecked = CheckManager.GetUserCheckLevel(request.AdminPermissionsImpl, siteInfo, siteId, out var checkedLevel); var checkedLevels = CheckManager.GetCheckedLevels(siteInfo, isChecked, checkedLevel, true); var allChannels = ChannelManager.GetChannels(siteId, request.AdminPermissionsImpl, ConfigManager.ChannelPermissions.ContentAdd); return(Ok(new { Value = retval, CheckedLevels = checkedLevels, CheckedLevel = checkedLevel, AllChannels = allChannels })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }