public void RblTableRule_OnSelectedIndexChanged(object sender, EventArgs e) { var tableRule = ETableRuleUtils.GetEnumType(RblTableRule.SelectedValue); PhTableChoose.Visible = PhTableHandWrite.Visible = false; if (tableRule == ETableRule.Choose) { PhTableChoose.Visible = true; } else if (tableRule == ETableRule.HandWrite) { PhTableHandWrite.Visible = true; } }
public override void Submit_OnClick(object sender, EventArgs e) { if (!Page.IsPostBack || !Page.IsValid) { return; } SiteInfo.SiteName = TbSiteName.Text; SiteInfo.Taxis = TranslateUtils.ToInt(TbTaxis.Text); SiteInfo.Additional.IsCheckContentLevel = TranslateUtils.ToBool(RblIsCheckContentUseLevel.SelectedValue); if (SiteInfo.Additional.IsCheckContentLevel) { SiteInfo.Additional.CheckContentLevel = TranslateUtils.ToInt(DdlCheckContentLevel.SelectedValue); } var isTableChanged = false; var tableName = string.Empty; var tableRule = ETableRuleUtils.GetEnumType(RblTableRule.SelectedValue); if (tableRule == ETableRule.Choose) { tableName = DdlTableChoose.SelectedValue; } else if (tableRule == ETableRule.HandWrite) { tableName = TbTableHandWrite.Text; if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } } if (!StringUtils.EqualsIgnoreCase(SiteInfo.TableName, tableName)) { isTableChanged = true; SiteInfo.TableName = tableName; } if (SiteInfo.IsRoot == false) { if (!StringUtils.EqualsIgnoreCase(PathUtils.GetDirectoryName(SiteInfo.SiteDir, false), TbSiteDir.Text)) { var list = DataProvider.SiteDao.GetLowerSiteDirList(SiteInfo.ParentId); if (list.IndexOf(TbSiteDir.Text.ToLower()) != -1) { FailMessage("站点修改失败,已存在相同的发布路径!"); return; } var parentPsPath = WebConfigUtils.PhysicalApplicationPath; if (SiteInfo.ParentId > 0) { var parentSiteInfo = SiteManager.GetSiteInfo(SiteInfo.ParentId); parentPsPath = PathUtility.GetSitePath(parentSiteInfo); } DirectoryUtility.ChangeSiteDir(parentPsPath, SiteInfo.SiteDir, TbSiteDir.Text); } if (PhParentId.Visible && SiteInfo.ParentId != TranslateUtils.ToInt(DdlParentId.SelectedValue)) { var newParentId = TranslateUtils.ToInt(DdlParentId.SelectedValue); var list = DataProvider.SiteDao.GetLowerSiteDirList(newParentId); if (list.IndexOf(TbSiteDir.Text.ToLower()) != -1) { FailMessage("站点修改失败,已存在相同的发布路径!"); return; } DirectoryUtility.ChangeParentSite(SiteInfo.ParentId, TranslateUtils.ToInt(DdlParentId.SelectedValue), SiteId, TbSiteDir.Text); SiteInfo.ParentId = newParentId; } SiteInfo.SiteDir = TbSiteDir.Text; } DataProvider.SiteDao.Update(SiteInfo); if (isTableChanged) { ContentManager.RemoveCountCache(tableName); } AuthRequest.AddAdminLog("修改站点属性", $"站点:{SiteInfo.SiteName}"); SuccessMessage("站点修改成功!"); AddWaitAndRedirectScript(PageSite.GetRedirectUrl()); }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.SiteAdd)) { return(Unauthorized()); } var createType = request.GetPostString("createType"); var createTemplateId = request.GetPostString("createTemplateId"); var siteName = request.GetPostString("siteName"); var isRoot = request.GetPostBool("isRoot"); var parentId = request.GetPostInt("parentId"); var siteDir = request.GetPostString("siteDir"); var domainName = request.GetPostString("domainName"); var tableRule = ETableRuleUtils.GetEnumType(request.GetPostString("tableRule")); var tableChoose = request.GetPostString("tableChoose"); var tableHandWrite = request.GetPostString("tableHandWrite"); var isImportContents = request.GetPostBool("isImportContents"); var isImportTableStyles = request.GetPostBool("isImportTableStyles"); if (!isRoot) { if (DirectoryUtils.IsSystemDirectory(siteDir)) { return(BadRequest("文件夹名称不能为系统文件夹名称,请更改文件夹名称!")); } if (!DirectoryUtils.IsDirectoryNameCompliant(siteDir)) { return(BadRequest("文件夹名称不符合系统要求,请更改文件夹名称!")); } var list = DataProvider.SiteDao.GetLowerSiteDirList(parentId); if (list.IndexOf(siteDir.ToLower()) != -1) { return(BadRequest("已存在相同的发布路径,请更改文件夹名称!")); } } var channelInfo = new ChannelInfo(); channelInfo.ChannelName = channelInfo.IndexName = "首页"; channelInfo.ParentId = 0; channelInfo.ContentModelPluginId = string.Empty; var tableName = string.Empty; if (tableRule == ETableRule.Choose) { tableName = tableChoose; } else if (tableRule == ETableRule.HandWrite) { tableName = tableHandWrite; if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } } var siteInfo = new SiteInfo { SiteName = AttackUtils.FilterXss(siteName), SiteDir = siteDir, DomainName = domainName, TableName = tableName, ParentId = parentId, IsRoot = isRoot }; siteInfo.Additional.IsCheckContentLevel = false; siteInfo.Additional.Charset = ECharsetUtils.GetValue(ECharset.utf_8); var siteId = DataProvider.ChannelDao.InsertSiteInfo(channelInfo, siteInfo, request.AdminName); if (string.IsNullOrEmpty(tableName)) { tableName = ContentDao.GetContentTableName(siteId); DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); DataProvider.SiteDao.UpdateTableName(siteId, tableName); } if (request.AdminPermissionsImpl.IsSystemAdministrator && !request.AdminPermissionsImpl.IsConsoleAdministrator) { var siteIdList = request.AdminPermissionsImpl.GetSiteIdList() ?? new List <int>(); siteIdList.Add(siteId); var adminInfo = AdminManager.GetAdminInfoByUserId(request.AdminId); DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, TranslateUtils.ObjectCollectionToString(siteIdList)); } var siteTemplateDir = string.Empty; var onlineTemplateName = string.Empty; if (StringUtils.EqualsIgnoreCase(createType, "local")) { siteTemplateDir = createTemplateId; } else if (StringUtils.EqualsIgnoreCase(createType, "cloud")) { onlineTemplateName = createTemplateId; } var redirectUrl = PageProgressBar.GetCreateSiteUrl(siteId, isImportContents, isImportTableStyles, siteTemplateDir, onlineTemplateName, StringUtils.Guid()); SystemManager.UpdateSites(); return(Ok(new { Value = redirectUrl })); } catch (Exception ex) { return(InternalServerError(ex)); } }
private int Validate_SiteInfo(out string errorMessage) { try { var isRoot = TranslateUtils.ToBool(RblIsRoot.SelectedValue); // 是否主站 var parentSiteId = 0; var siteDir = string.Empty; var domainName = string.Empty; if (DirectoryUtils.IsSystemDirectory(TbSiteDir.Text) || DirectoryUtils.IsWebSiteDirectory(TbSiteDir.Text)) { errorMessage = "文件夹名称不能为系统文件夹名称!"; return(0); } parentSiteId = TranslateUtils.ToInt(DdlParentId.SelectedValue); siteDir = TbSiteDir.Text; var list = DataProvider.SiteDao.GetLowerSiteDirList(parentSiteId); if (list.IndexOf(siteDir.ToLower()) != -1) { errorMessage = "已存在相同的发布路径!"; return(0); } if (!DirectoryUtils.IsDirectoryNameCompliant(siteDir)) { errorMessage = "文件夹名称不符合系统要求!"; return(0); } if (isRoot == false)//如果不是主站 { if (String.IsNullOrWhiteSpace(TbDomainName.Text)) { errorMessage = "网站域名不能为空!"; return(0); } else { String[] domainNames = TbDomainName.Text.Split(';'); foreach (String domain in domainNames) { if (SystemManager.SiteList.ContainsKey(domain)) { errorMessage = "域名“" + domain + "”已被其他网站占用,请选择其他域名!"; return(0); } else if (domainName.Length > 0) { domainName += ";" + domain; } else { domainName += ";" + domain; } } } if (domainName.Split(';').Length > 3) { errorMessage = "一个网站最多只能绑定3个域名,而您绑定了" + domainName.Split(';').Length + "个,请删除多余的域名!"; return(0); } } var nodeInfo = new ChannelInfo(); nodeInfo.ChannelName = nodeInfo.IndexName = "首页"; nodeInfo.ParentId = 0; nodeInfo.ContentModelPluginId = string.Empty; var tableName = string.Empty; var tableRule = ETableRuleUtils.GetEnumType(RblTableRule.SelectedValue); if (tableRule == ETableRule.Choose) { tableName = DdlTableChoose.SelectedValue; } else if (tableRule == ETableRule.HandWrite) { tableName = TbTableHandWrite.Text; 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(TbSiteName.Text), DomainName = domainName, SiteDir = siteDir, TableName = tableName, ParentId = parentSiteId, IsRoot = isRoot }; siteInfo.Additional.IsCheckContentLevel = TranslateUtils.ToBool(RblIsCheckContentUseLevel.SelectedValue); if (siteInfo.Additional.IsCheckContentLevel) { siteInfo.Additional.CheckContentLevel = TranslateUtils.ToInt(DdlCheckContentLevel.SelectedValue); } siteInfo.Additional.Charset = DdlCharset.SelectedValue; var siteId = DataProvider.ChannelDao.InsertSiteInfo(nodeInfo, siteInfo, AuthRequest.AdminName); if (string.IsNullOrEmpty(tableName)) { tableName = ContentDao.GetContentTableName(siteId); DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); DataProvider.SiteDao.UpdateTableName(siteId, tableName); } if (AuthRequest.AdminPermissionsImpl.IsSystemAdministrator && !AuthRequest.AdminPermissionsImpl.IsConsoleAdministrator) { var siteIdList = AuthRequest.AdminPermissionsImpl.GetSiteIdList() ?? new List <int>(); siteIdList.Add(siteId); var adminInfo = AdminManager.GetAdminInfoByUserId(AuthRequest.AdminId); DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, TranslateUtils.ObjectCollectionToString(siteIdList)); } AuthRequest.AddAdminLog("创建新站点", $"站点名称:{AttackUtils.FilterXss(TbSiteName.Text)}"); errorMessage = string.Empty; return(siteId); } catch (Exception e) { errorMessage = e.Message; return(0); } }