示例#1
0
文件: PageMain.cs 项目: zrrcj/cms
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            _permissions = PermissionsManager.GetPermissions(Body.AdminName);

            var siteId = SiteId;

            if (siteId == 0)
            {
                siteId = Body.AdministratorInfo.SiteId;
            }

            var siteIdList = ProductPermissionsManager.Current.SiteIdList;

            //站点要判断是否存在,是否有权限
            if (siteId == 0 || !SiteManager.IsExists(siteId) || !siteIdList.Contains(siteId))
            {
                if (siteIdList != null && siteIdList.Count > 0)
                {
                    siteId = siteIdList[0];
                }
            }

            _siteInfo = SiteManager.GetSiteInfo(siteId);

            if (_siteInfo != null && _siteInfo.Id > 0)
            {
                if (SiteId == 0)
                {
                    PageUtils.Redirect(GetRedirectUrl(_siteInfo.Id));
                    return;
                }

                var showSite = false;

                var permissionList = new List <string>();
                if (ProductPermissionsManager.Current.WebsitePermissionDict.ContainsKey(_siteInfo.Id))
                {
                    var websitePermissionList = ProductPermissionsManager.Current.WebsitePermissionDict[_siteInfo.Id];
                    if (websitePermissionList != null)
                    {
                        showSite = true;
                        permissionList.AddRange(websitePermissionList);
                    }
                }

                ICollection channelIdCollection = ProductPermissionsManager.Current.ChannelPermissionDict.Keys;
                foreach (int channelId in channelIdCollection)
                {
                    if (ChannelManager.IsAncestorOrSelf(_siteInfo.Id, _siteInfo.Id, channelId))
                    {
                        showSite = true;
                        var list = ProductPermissionsManager.Current.ChannelPermissionDict[channelId];
                        permissionList.AddRange(list);
                    }
                }

                var siteIdHashtable = new Hashtable();
                if (siteIdList != null)
                {
                    foreach (var theSiteId in siteIdList)
                    {
                        siteIdHashtable.Add(theSiteId, theSiteId);
                    }
                }

                if (!siteIdHashtable.Contains(SiteId))
                {
                    showSite = false;
                }

                if (!showSite)
                {
                    PageUtils.RedirectToErrorPage("您没有此发布系统的操作权限!");
                    return;
                }

                LtlTopMenus.Text = GetTopMenuSitesHtml() + GetTopMenuLinksHtml() + GetTopMenusHtml();

                PhSite.Visible = true;

                LtlCreateStatus.Text = $@"
<script type=""text/javascript"">
function {LayerUtils.OpenPageCreateStatusFuncName}() {{
    {PageCreateStatus.GetOpenLayerString(_siteInfo.Id)}
}}
</script>
<a href=""javascript:;"" onclick=""{LayerUtils.OpenPageCreateStatusFuncName}()"">
    <i class=""ion-wand""></i>
    <span id=""progress"" class=""badge badge-xs badge-pink"">0</span>
</a>
";

                NtLeftManagement.TopId          = ConfigManager.IdSite;
                NtLeftManagement.SiteId         = _siteInfo.Id;
                NtLeftManagement.PermissionList = permissionList;

                NtLeftFunctions.TopId          = string.Empty;
                NtLeftFunctions.SiteId         = _siteInfo.Id;
                NtLeftFunctions.PermissionList = permissionList;

                ClientScriptRegisterClientScriptBlock("NodeTreeScript", NodeNaviTreeItem.GetNavigationBarScript());
            }
            else
            {
                if (_permissions.IsSystemAdministrator)
                {
                    PageUtils.Redirect(PageSiteAdd.GetRedirectUrl());
                    return;
                }
            }

            if (_siteInfo != null && _siteInfo.Id > 0 && Body.AdministratorInfo.SiteId != _siteInfo.Id)
            {
                DataProvider.AdministratorDao.UpdateSiteId(Body.AdminName, _siteInfo.Id);
            }
        }