HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/wwwroot/CMSModules/Chat/Pages/Tools/ChatRoom/List.aspx.cs
using System;

using CMS.Helpers;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.FormControls;
using CMS.MacroEngine;

[Action(0, ResourceString = "chat.chatroom.new", TargetUrl = "New.aspx?siteID={%SelectedSiteID%}")]

public partial class CMSModules_Chat_Pages_Tools_ChatRoom_List : CMSChatPage
{
    #region "Private fields"

    private int selectedSiteID;

    #endregion

    #region "Page events"

    protected void Page_Load(object sender, EventArgs e)
    {
        // If user can view global and local rooms, display site selector
        if (ReadAllowed && ReadGlobalAllowed)
        {
            CurrentMaster.DisplaySiteSelectorPanel = true;

            if (!RequestHelper.IsPostBack())
            {
                siteOrGlobalSelector.SiteID = QueryHelper.GetInteger("siteid", SiteContext.CurrentSiteID);
            }

            // Get site id from site selector
            selectedSiteID = siteOrGlobalSelector.SiteID;

            // Security check: user can select global (-4) this site and global (-5) or current site, if something else was selected, set it back to current site
            if ((selectedSiteID != -4) && (selectedSiteID != -5) && (selectedSiteID != SiteContext.CurrentSiteID))
            {
                selectedSiteID = SiteContext.CurrentSiteID;
                siteOrGlobalSelector.SiteID = selectedSiteID;
            }
        }
        else
        {
            if (ReadAllowed)
            {
                selectedSiteID = SiteContext.CurrentSiteID;
            }
            else
            {
                selectedSiteID = -4;
            }
        }

        listElem.SiteID = selectedSiteID;

        // Store selected site ID to MacroResolver, so it can be retrieved in ActionAttribute's Apply method (on second pass, which is called on PreRender)
        MacroContext.CurrentResolver.SetNamedSourceData("SelectedSiteID", selectedSiteID);
    }


    protected void Page_PreRender(object sender, EventArgs e)
    {
        // Disable action and display label if site is set to "this site and global"
        if (selectedSiteID == -5)
        {
            HeaderActions.ActionsList[0].Enabled = false;

            FormEngineUserControl label = this.LoadUserControl("~/CMSFormControls/Basic/LabelControl.ascx") as FormEngineUserControl;
            label.Value = GetString("chat.chooseglobalorsitetoaddnewroom");

            HeaderActions.AdditionalControls.Add(label);
            HeaderActions.AdditionalControlsCssClass = "header-actions-label control-group-inline";
            HeaderActions.ReloadAdditionalControls();
        }
        else
        {
            HeaderActions.ActionsList[0].Enabled = HasUserModifyPermission(selectedSiteID);
        }
    }

    #endregion
}