Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }