public IHttpActionResult GetConfig() { try { var request = new RequestImpl(); 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.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 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); } return(Ok(new { Value = retval })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentId = request.GetQueryInt("contentId"); 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 contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, contentId); if (contentInfo == null) { return(BadRequest("无法确定对应的内容")); } var title = WebUtils.GetContentTitle(siteInfo, contentInfo, string.Empty); 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 RequestImpl(); 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 RequestImpl(); 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()); } return(Ok(new { Value = adminInfo })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Get() { try { var request = new RequestImpl(); 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 GetChannels() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channels = new List <object>(); var channelIdList = request.UserPermissionsImpl.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 RequestImpl(); 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 IHttpActionResult Upload() { try { var request = new RequestImpl(); 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 RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); 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("无法确定内容对应的栏目")); } 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 RequestImpl(); 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 })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetList() { try { var request = new RequestImpl(); 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(RequestImpl 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 IHttpActionResult GetLogs(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 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 RequestImpl(); 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 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 Submit() { try { var request = new RequestImpl(); var userId = request.GetQueryInt("userId"); if (!request.IsAdminLoggin) { return(Unauthorized()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } AdministratorInfo adminInfo; if (userId > 0) { adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } } else { adminInfo = new AdministratorInfo(); } var userName = request.GetPostString("userName"); var password = request.GetPostString("password"); var displayName = request.GetPostString("displayName"); var avatarUrl = request.GetPostString("avatarUrl"); var mobile = request.GetPostString("mobile"); var email = request.GetPostString("email"); var departmentId = request.GetPostInt("departmentId"); var areaId = request.GetPostInt("areaId"); if (adminInfo.Id == 0) { adminInfo.UserName = userName; adminInfo.Password = password; adminInfo.CreatorUserName = request.AdminName; adminInfo.CreationDate = DateTime.Now; } else { if (adminInfo.Mobile != mobile && !string.IsNullOrEmpty(mobile) && DataProvider.AdministratorDao.IsMobileExists(mobile)) { return(BadRequest("资料修改失败,手机号码已存在")); } if (adminInfo.Email != email && !string.IsNullOrEmpty(email) && DataProvider.AdministratorDao.IsEmailExists(email)) { return(BadRequest("资料修改失败,邮箱地址已存在")); } } adminInfo.DisplayName = displayName; adminInfo.AvatarUrl = avatarUrl; adminInfo.Mobile = mobile; adminInfo.Email = email; adminInfo.DepartmentId = departmentId; adminInfo.AreaId = areaId; if (adminInfo.Id == 0) { if (!DataProvider.AdministratorDao.Insert(adminInfo, out var errorMessage)) { return(BadRequest($"管理员添加失败:{errorMessage}")); } request.AddAdminLog("添加管理员", $"管理员:{adminInfo.UserName}"); } else { DataProvider.AdministratorDao.Update(adminInfo); request.AddAdminLog("修改管理员属性", $"管理员:{adminInfo.UserName}"); } return(Ok(new { Value = true })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult Get() { try { var request = new RequestImpl(); var userId = request.GetQueryInt("userId"); if (!request.IsAdminLoggin) { return(Unauthorized()); } if (request.AdminId != userId && !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin)) { return(Unauthorized()); } AdministratorInfo adminInfo; if (userId > 0) { adminInfo = AdminManager.GetAdminInfoByUserId(userId); if (adminInfo == null) { return(NotFound()); } } else { adminInfo = new AdministratorInfo(); } var departments = new List <KeyValuePair <int, string> > { new KeyValuePair <int, string>(0, "<无所属部门>") }; var departmentIdList = DepartmentManager.GetDepartmentIdList(); var isLastNodeArrayOfDepartment = new bool[departmentIdList.Count]; foreach (var departmentId in departmentIdList) { var departmentInfo = DepartmentManager.GetDepartmentInfo(departmentId); departments.Add(new KeyValuePair <int, string>(departmentId, GetDepartment(isLastNodeArrayOfDepartment, departmentInfo.DepartmentName, departmentInfo.ParentsCount, departmentInfo.IsLastNode))); } var areas = new List <KeyValuePair <int, string> > { new KeyValuePair <int, string>(0, "<无所在区域>") }; var areaIdList = AreaManager.GetAreaIdList(); var isLastNodeArrayOfArea = new bool[areaIdList.Count]; foreach (var areaId in areaIdList) { var areaInfo = AreaManager.GetAreaInfo(areaId); areas.Add(new KeyValuePair <int, string>(areaId, GetArea(isLastNodeArrayOfArea, areaInfo.AreaName, areaInfo.ParentsCount, areaInfo.IsLastNode))); } return(Ok(new { Value = adminInfo, Departments = departments, Areas = areas, request.AdminToken })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetQueryString("contentIds")); 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("无法确定内容对应的栏目")); } 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.UserPermissionsImpl.GetSiteIdList(); foreach (var permissionSiteId in siteIdList) { var permissionSiteInfo = SiteManager.GetSiteInfo(permissionSiteId); sites.Add(new { permissionSiteInfo.Id, permissionSiteInfo.SiteName }); } var channelIdList = request.UserPermissionsImpl.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 List() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var page = request.GetQueryInt("page"); 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 columns = ContentManager.GetContentColumns(siteInfo, channelInfo, false); var pluginIds = PluginContentManager.GetContentPluginIds(channelInfo); var pluginColumns = PluginContentManager.GetContentColumns(pluginIds); var pageContentInfoList = 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) { 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; } pageContentInfoList.Add(ContentManager.Calculate(sequence++, contentInfo, columns, pluginColumns)); } } var permissions = new { IsAdd = request.UserPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentAdd) && channelInfo.Additional.IsContentAddable, IsDelete = request.UserPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentDelete), IsEdit = request.UserPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentEdit), IsTranslate = request.UserPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentTranslate), IsCheck = request.UserPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.ContentCheck), IsCreate = request.UserPermissionsImpl.HasSitePermissions(siteInfo.Id, ConfigManager.WebSitePermissions.Create) || request.UserPermissionsImpl.HasChannelPermissions(siteInfo.Id, channelInfo.Id, ConfigManager.ChannelPermissions.CreatePage), IsChannelEdit = request.UserPermissionsImpl.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 StlRequest() { Request = new RequestImpl(); IsApiAuthorized = Request.IsApiAuthenticated && AccessTokenManager.IsScope(Request.ApiToken, AccessTokenManager.ScopeStl); if (!IsApiAuthorized) { return; } var siteId = Request.GetQueryInt("siteId"); var siteDir = Request.GetQueryString("siteDir"); var channelId = Request.GetQueryInt("channelId"); var contentId = Request.GetQueryInt("contentId"); if (siteId > 0) { SiteInfo = SiteManager.GetSiteInfo(siteId); } else if (!string.IsNullOrEmpty(siteDir)) { SiteInfo = SiteManager.GetSiteInfoByDirectory(siteDir); } else { SiteInfo = SiteManager.GetSiteInfoByIsRoot(); if (SiteInfo == null) { var siteInfoList = SiteManager.GetSiteInfoList(); if (siteInfoList != null && siteInfoList.Count > 0) { SiteInfo = siteInfoList[0]; } } } if (SiteInfo == null) { return; } if (channelId == 0) { channelId = SiteInfo.Id; } var templateInfo = new TemplateInfo(0, SiteInfo.Id, string.Empty, TemplateType.IndexPageTemplate, string.Empty, string.Empty, string.Empty, ECharset.utf_8, true); PageInfo = new PageInfo(channelId, contentId, SiteInfo, templateInfo, new Dictionary <string, object>()) { UniqueId = 1000, UserInfo = Request.UserInfo }; var attributes = TranslateUtils.NewIgnoreCaseNameValueCollection(); foreach (var key in Request.QueryString.AllKeys) { attributes[key] = Request.QueryString[key]; } ContextInfo = new ContextInfo(PageInfo) { IsStlEntity = true, Attributes = attributes, InnerHtml = string.Empty }; }
public IHttpActionResult GetChannelContents(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.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"); int count; var contentIdList = DataProvider.ContentDao.ApiGetContentIdListByChannelId(tableName, siteId, channelId, top, skip, like, orderBy, request.QueryString, out count); var value = new List <Dictionary <string, object> >(); foreach (var contentId in contentIdList) { var contentInfo = ContentManager.GetContentInfo(siteInfo, channelInfo, 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 async Task Main() { var request = new RequestImpl(); 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)) { if (returnUrl.StartsWith("?")) { parameters = TranslateUtils.ToNameValueCollection(returnUrl.Substring(1)); } else { redirectUrl = returnUrl; } } 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 void Main() { var isSuccess = false; try { var request = new RequestImpl(); 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)) { isSuccess = true; PageUtils.Redirect(fileUrl); } else { 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)) { isSuccess = true; PageUtils.Download(HttpContext.Current.Response, filePath); } } else { isSuccess = true; PageUtils.Redirect(PageUtility.ParseNavigationUrl(siteInfo, fileUrl, false)); } } } 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)) { isSuccess = true; PageUtils.Download(HttpContext.Current.Response, filePath); } } else { isSuccess = true; var fileUrl = PageUtils.GetRootUrlByPhysicalPath(filePath); PageUtils.Redirect(PageUtils.ParseNavigationUrl(fileUrl)); } } 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); if (!string.IsNullOrEmpty(contentInfo?.GetString(BackgroundContentAttribute.FileUrl))) { if (PageUtils.IsProtocolUrl(fileUrl)) { isSuccess = true; PageUtils.Redirect(fileUrl); } else { var filePath = PathUtility.MapPath(siteInfo, fileUrl, true); var fileType = EFileSystemTypeUtils.GetEnumType(PathUtils.GetExtension(filePath)); if (EFileSystemTypeUtils.IsDownload(fileType)) { if (FileUtils.IsFileExists(filePath)) { isSuccess = true; PageUtils.Download(HttpContext.Current.Response, filePath); } } else { isSuccess = true; PageUtils.Redirect(PageUtility.ParseNavigationUrl(siteInfo, fileUrl, false)); } } } } } catch { // ignored } if (!isSuccess) { HttpContext.Current.Response.Write("下载失败,不存在此文件!"); } }
public IHttpActionResult Upload() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd)) { return(Unauthorized()); } var fileName = request.HttpRequest["fileName"]; var fileCount = request.HttpRequest.Files.Count; string filePath = null; if (fileCount > 0) { var file = request.HttpRequest.Files[0]; if (string.IsNullOrEmpty(fileName)) { fileName = Path.GetFileName(file.FileName); } var extendName = fileName.Substring(fileName.LastIndexOf(".", StringComparison.Ordinal)).ToLower(); if (extendName == ".doc" || extendName == ".docx") { filePath = PathUtils.GetTemporaryFilesPath(fileName); DirectoryUtils.CreateDirectoryIfNotExists(filePath); file.SaveAs(filePath); } } FileInfo fileInfo = null; if (!string.IsNullOrEmpty(filePath)) { fileInfo = new FileInfo(filePath); } if (fileInfo != null) { return(Ok(new { fileName, length = fileInfo.Length, ret = 1 })); } return(Ok(new { ret = 0 })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Upload() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); if (!request.IsUserLoggin || !request.UserPermissionsImpl.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentAdd)) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var path = string.Empty; var url = string.Empty; var contentLength = 0; if (request.HttpRequest.Files.Count > 0) { var file = request.HttpRequest.Files[0]; var filePath = file.FileName; var fileExtName = PathUtils.GetExtension(filePath).ToLower(); var localDirectoryPath = PathUtility.GetUploadDirectoryPath(siteInfo, fileExtName); var localFileName = PathUtility.GetUploadFileName(siteInfo, filePath); path = PathUtils.Combine(localDirectoryPath, localFileName); contentLength = file.ContentLength; if (!PathUtility.IsImageExtenstionAllowed(siteInfo, fileExtName)) { return(BadRequest("上传失败,上传图片格式不正确!")); } if (!PathUtility.IsImageSizeAllowed(siteInfo, contentLength)) { return(BadRequest("上传失败,上传图片超出规定文件大小!")); } file.SaveAs(path); FileUtility.AddWaterMark(siteInfo, path); url = PageUtility.GetSiteUrlByPhysicalPath(siteInfo, path, true); } return(Ok(new { Path = path, Url = url, ContentLength = contentLength })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetConfig() { try { var request = new RequestImpl(); var siteId = request.GetQueryInt("siteId"); var channelId = request.GetQueryInt("channelId"); var contentIdList = TranslateUtils.StringCollectionToIntList(request.GetQueryString("contentIds")); if (!request.IsUserLoggin || !request.UserPermissionsImpl.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["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)); } }
public IHttpActionResult GetConfig() { try { var request = new RequestImpl(); if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { return(Ok(new { Value = false, RedirectUrl = "Installer/" })); } if (ConfigManager.Instance.IsInitialized && ConfigManager.Instance.DatabaseVersion != SystemManager.Version) { return(Ok(new { Value = false, RedirectUrl = PageSyncDatabase.GetRedirectUrl() })); } if (!request.IsAdminLoggin || request.AdminInfo == null || request.AdminInfo.IsLockedOut) { return(Ok(new { Value = false, RedirectUrl = "pageLogin.cshtml" })); } var siteId = request.GetQueryInt("siteId"); var siteInfo = SiteManager.GetSiteInfo(siteId); var adminInfo = request.AdminInfo; var permissions = request.AdminPermissionsImpl; var isSuperAdmin = permissions.IsConsoleAdministrator; var siteIdListWithPermissions = permissions.GetSiteIdList(); if (siteInfo == null || !siteIdListWithPermissions.Contains(siteInfo.Id)) { if (siteIdListWithPermissions.Contains(adminInfo.SiteId)) { return(Ok(new { Value = false, RedirectUrl = PageUtils.GetMainUrl(adminInfo.SiteId) })); } if (siteIdListWithPermissions.Count > 0) { return(Ok(new { Value = false, RedirectUrl = PageUtils.GetMainUrl(siteIdListWithPermissions[0]) })); } if (isSuperAdmin) { return(Ok(new { Value = false, RedirectUrl = PageSiteAdd.GetRedirectUrl() })); } return(Ok(new { Value = false, RedirectUrl = $"pageError.html?message={HttpUtility.UrlEncode("您没有可以管理的站点,请联系超级管理员协助解决")}" })); } var packageIds = new List <string> { PackageUtils.PackageIdSsCms }; var packageList = new List <object>(); var dict = PluginManager.GetPluginIdAndVersionDict(); foreach (var id in dict.Keys) { packageIds.Add(id); var version = dict[id]; packageList.Add(new { id, version }); } var siteIdListLatestAccessed = DataProvider.AdministratorDao.UpdateSiteId(adminInfo, siteInfo.Id); var permissionList = new List <string>(permissions.PermissionList); if (permissions.HasSitePermissions(siteInfo.Id)) { var websitePermissionList = permissions.GetSitePermissions(siteInfo.Id); if (websitePermissionList != null) { permissionList.AddRange(websitePermissionList); } } var channelPermissions = permissions.GetChannelPermissions(siteInfo.Id); if (channelPermissions.Count > 0) { permissionList.AddRange(channelPermissions); } var topMenus = GetTopMenus(siteInfo, isSuperAdmin, siteIdListLatestAccessed, siteIdListWithPermissions); var siteMenus = GetLeftMenus(siteInfo, ConfigManager.TopMenu.IdSite, isSuperAdmin, permissionList); var pluginMenus = GetLeftMenus(siteInfo, string.Empty, isSuperAdmin, permissionList); return(Ok(new { Value = true, DefaultPageUrl = PluginMenuManager.GetSystemDefaultPageUrl(siteId) ?? "dashboard.cshtml", IsNightly = WebConfigUtils.IsNightlyUpdate, Version = SystemManager.PluginVersion, IsSuperAdmin = isSuperAdmin, PackageList = packageList, PackageIds = packageIds, CurrentVersion = SystemManager.Version, TopMenus = topMenus, SiteMenus = siteMenus, PluginMenus = pluginMenus, Local = new { UserId = adminInfo.Id, adminInfo.UserName, adminInfo.AvatarUrl, Level = permissions.GetAdminLevel() } })); } catch (Exception ex) { return(InternalServerError(ex)); } }