Example #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;
            }
        }
Example #2
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("siteId");

            if (IsPostBack)
            {
                return;
            }

            VerifySystemPermissions(ConfigManager.SettingsPermissions.Site);

            if (SiteInfo.IsRoot)
            {
                PhParentId.Visible = false;
            }
            else
            {
                PhParentId.Visible = true;

                DdlParentId.Items.Add(new ListItem("<无上级站点>", "0"));
                var siteIdList            = SiteManager.GetSiteIdList();
                var mySystemInfoArrayList = new ArrayList();
                var parentWithChildren    = new Hashtable();
                foreach (var siteId in siteIdList)
                {
                    if (siteId == SiteId)
                    {
                        continue;
                    }
                    var siteInfo = SiteManager.GetSiteInfo(siteId);
                    if (siteInfo.IsRoot == false)
                    {
                        if (siteInfo.ParentId == 0)
                        {
                            mySystemInfoArrayList.Add(siteInfo);
                        }
                        else
                        {
                            var children = new ArrayList();
                            if (parentWithChildren.Contains(siteInfo.ParentId))
                            {
                                children = (ArrayList)parentWithChildren[siteInfo.ParentId];
                            }
                            children.Add(siteInfo);
                            parentWithChildren[siteInfo.ParentId] = children;
                        }
                    }
                }
                foreach (SiteInfo siteInfo in mySystemInfoArrayList)
                {
                    AddSite(DdlParentId, siteInfo, parentWithChildren, 0);
                }
                ControlUtils.SelectSingleItem(DdlParentId, SiteInfo.ParentId.ToString());
            }

            var tableNameList = SiteManager.GetSiteTableNames();

            if (tableNameList.Count > 0)
            {
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Choose, true));
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false));

                PhTableChoose.Visible    = true;
                PhTableHandWrite.Visible = false;

                foreach (var tableName in tableNameList)
                {
                    DdlTableChoose.Items.Add(new ListItem(tableName, tableName));
                }
            }
            else
            {
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false));

                PhTableChoose.Visible    = false;
                PhTableHandWrite.Visible = false;
            }

            TbTaxis.Text = SiteInfo.Taxis.ToString();

            RblIsCheckContentUseLevel.Items.Add(new ListItem("默认审核机制", false.ToString()));
            RblIsCheckContentUseLevel.Items.Add(new ListItem("多级审核机制", true.ToString()));

            if (SiteInfo == null)
            {
                PageUtils.RedirectToErrorPage("站点不存在,请确认后再试!");
                return;
            }
            TbSiteName.Text = SiteInfo.SiteName;
            ControlUtils.SelectSingleItem(RblIsCheckContentUseLevel, SiteInfo.Additional.IsCheckContentLevel.ToString());
            if (SiteInfo.Additional.IsCheckContentLevel)
            {
                ControlUtils.SelectSingleItem(DdlCheckContentLevel, SiteInfo.Additional.CheckContentLevel.ToString());
                PhCheckContentLevel.Visible = true;
            }
            else
            {
                PhCheckContentLevel.Visible = false;
            }
            if (!string.IsNullOrEmpty(SiteInfo.SiteDir))
            {
                TbSiteDir.Text = PathUtils.GetDirectoryName(SiteInfo.SiteDir, false);
            }
            if (SiteInfo.IsRoot)
            {
                PhSiteDir.Visible = false;
            }

            ControlUtils.SelectSingleItem(DdlTableChoose, SiteInfo.TableName);

            BtnSubmit.Attributes.Add("onclick", PageLoading());
        }
Example #3
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());
        }
Example #4
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));
            }
        }
Example #5
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            if (IsPostBack)
            {
                return;
            }

            VerifySystemPermissions(ConfigManager.SettingsPermissions.SiteAdd);

            //DataProvider.TableDao.CreateAllTableCollectionInfoIfNotExists();

            var hqSiteId = DataProvider.SiteDao.GetIdByIsRoot();

            if (hqSiteId == 0)
            {
                ControlUtils.SelectSingleItem(RblIsRoot, true.ToString());
                PhIsNotRoot.Visible = false;
            }
            else
            {
                RblIsRoot.Enabled = false;
            }

            DdlParentId.Items.Add(new ListItem("<无上级站点>", "0"));
            var siteIdArrayList       = SiteManager.GetSiteIdList();
            var mySystemInfoArrayList = new ArrayList();
            var parentWithChildren    = new Hashtable();

            foreach (var siteId in siteIdArrayList)
            {
                var siteInfo = SiteManager.GetSiteInfo(siteId);
                if (siteInfo.IsRoot == false)
                {
                    if (siteInfo.ParentId == 0)
                    {
                        mySystemInfoArrayList.Add(siteInfo);
                    }
                    else
                    {
                        var children = new ArrayList();
                        if (parentWithChildren.Contains(siteInfo.ParentId))
                        {
                            children = (ArrayList)parentWithChildren[siteInfo.ParentId];
                        }
                        children.Add(siteInfo);
                        parentWithChildren[siteInfo.ParentId] = children;
                    }
                }
            }
            foreach (SiteInfo siteInfo in mySystemInfoArrayList)
            {
                AddSite(DdlParentId, siteInfo, parentWithChildren, 0);
            }
            ControlUtils.SelectSingleItem(DdlParentId, "0");

            ECharsetUtils.AddListItems(DdlCharset);
            ControlUtils.SelectSingleItem(DdlCharset, ECharsetUtils.GetValue(ECharset.utf_8));

            var tableNameList = SiteManager.GetSiteTableNames();

            if (tableNameList.Count > 0)
            {
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Choose, true));
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Create, false));
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false));

                PhTableChoose.Visible    = true;
                PhTableHandWrite.Visible = false;

                foreach (var tableName in tableNameList)
                {
                    DdlTableChoose.Items.Add(new ListItem(tableName, tableName));
                }
            }
            else
            {
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Create, true));
                RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false));

                PhTableChoose.Visible    = false;
                PhTableHandWrite.Visible = false;
            }

            RblIsCheckContentUseLevel.Items.Add(new ListItem("默认审核机制", false.ToString()));
            RblIsCheckContentUseLevel.Items.Add(new ListItem("多级审核机制", true.ToString()));
            ControlUtils.SelectSingleItem(RblIsCheckContentUseLevel, false.ToString());

            if (SiteTemplateManager.Instance.IsSiteTemplateExists)
            {
                RblSource.Items.Add(new ListItem("创建空站点(不使用站点模板)", ETriStateUtils.GetValue(ETriState.True)));
                RblSource.Items.Add(new ListItem("使用本地站点模板创建站点", ETriStateUtils.GetValue(ETriState.False)));
                RblSource.Items.Add(new ListItem("使用在线站点模板创建站点", ETriStateUtils.GetValue(ETriState.All)));
            }
            else
            {
                RblSource.Items.Add(new ListItem("创建空站点(不使用站点模板)", ETriStateUtils.GetValue(ETriState.True)));
                RblSource.Items.Add(new ListItem("使用在线站点模板创建站点", ETriStateUtils.GetValue(ETriState.All)));
            }
            ControlUtils.SelectSingleItem(RblSource, ETriStateUtils.GetValue(ETriState.True));

            var siteTemplateDir    = AuthRequest.GetQueryString("siteTemplateDir");
            var onlineTemplateName = AuthRequest.GetQueryString("onlineTemplateName");

            if (!string.IsNullOrEmpty(siteTemplateDir))
            {
                HihSiteTemplateDir.Value = siteTemplateDir;
                ControlUtils.SelectSingleItem(RblSource, ETriStateUtils.GetValue(ETriState.False));
                BtnNext_Click(null, EventArgs.Empty);
            }
            else if (!string.IsNullOrEmpty(onlineTemplateName))
            {
                HihOnlineTemplateName.Value = onlineTemplateName;
                ControlUtils.SelectSingleItem(RblSource, ETriStateUtils.GetValue(ETriState.All));
                BtnNext_Click(null, EventArgs.Empty);
            }

            BtnSubmit.Attributes.Add("onclick", PageLoading());
            BtnSubmit.Attributes.Add("onclick", PageLoading());
        }
Example #6
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);
            }
        }