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/BannedIP/Tools/BannedIP_Edit.aspx.cs
using System;

using CMS.ExtendedControls;
using CMS.Helpers;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.Protection;

// Title
[Title("banip.editHeaderCaption")]
[UIElement(BannedIPInfo.OBJECT_TYPE, "BannedIP")]
public partial class CMSModules_BannedIP_Tools_BannedIP_Edit : CMSBannedIPsPage
{
    protected int itemid = 0;


    protected void Page_Load(object sender, EventArgs e)
    {
        // Controls initialization
        radBanIP.Text = GetString("banip.radBanIP");
        radAllowIP.Text = GetString("banip.radAllowIP");

        lblIPAddressBanType.Text = GetString("banip.IPAddressBanType") + ResHelper.Colon;
        lblIPAddressBanEnabled.Text = GetString("general.enabled") + ResHelper.Colon;
        lblIPAddress.Text = GetString("banip.IPAddress") + ResHelper.Colon;
        lblIPAddressBanReason.Text = GetString("banip.IPAddressBanReason") + ResHelper.Colon;

        rfvIPAddress.ErrorMessage = GetString("banip.IPAddressEmpty");
        lblIPAddressAllowOverride.Text = GetString("banip.IPAddressAllowOverride") + ResHelper.Colon;

        if (!RequestHelper.IsPostBack())
        {
            // Add list items to ban type drop down list
            ControlsHelper.FillListControlWithEnum<BanControlEnum>(drpIPAddressBanType, "banip.bantype", useStringRepresentation: true);
            drpIPAddressBanType.SelectedValue = BannedIPInfoProvider.BanControlEnumString(BanControlEnum.AllNonComplete);
        }

        string currentBannedIP = GetString("banip.NewItemCaption");

        // Get bannedIP id from querystring		
        itemid = QueryHelper.GetInteger("itemid", 0);
        if (itemid > 0)
        {
            BannedIPInfo bannedIPObj = BannedIPInfoProvider.GetBannedIPInfo(itemid);
            EditedObject = bannedIPObj;

            if (bannedIPObj != null)
            {
                //Check whether the item truly belogs to specified site
                if (((SiteID > 0) && (bannedIPObj.IPAddressSiteID != SiteID)) ||
                    ((SelectedSiteID > 0) && (bannedIPObj.IPAddressSiteID != SelectedSiteID)))
                {
                    RedirectToAccessDenied(GetString("banip.invaliditem"));
                }

                currentBannedIP = bannedIPObj.IPAddress;

                // Add site info to breadcrumbs
                if (SiteID == 0)
                {
                    if (bannedIPObj.IPAddressSiteID == 0)
                    {
                        currentBannedIP += " (global)";
                        radAllowIP.Text = GetString("banip.radAllowIPglobal");

                        plcIPOveride.Visible = true;
                    }
                    else
                    {
                        SiteInfo si = SiteInfoProvider.GetSiteInfo(bannedIPObj.IPAddressSiteID);
                        if (si != null)
                        {
                            currentBannedIP += " (" + si.DisplayName + ")";
                        }
                    }
                }

                // Fill editing form
                if (!RequestHelper.IsPostBack())
                {
                    LoadData(bannedIPObj);

                    // Show that the bannedIP was created or updated successfully
                    if ((QueryHelper.GetInteger("saved", 0) == 1) && !URLHelper.IsPostback())
                    {
                        ShowChangesSaved();
                    }
                }
            }
        }

        // Initializes page title control		
        SetBreadcrumb(0, GetString("banip.listHeaderCaption"), ResolveUrl("BannedIP_List.aspx?siteId=" + SiteID + "&selectedsiteid=" + SelectedSiteID), null, null);
        SetBreadcrumb(1, currentBannedIP, null, null, null);

        // Add info about selected site in Site manager for new item
        if ((SiteID == 0) && (itemid == 0))
        {
            if (SelectedSiteID > 0)
            {
                // Site banned IP
                SiteInfo si = SiteInfoProvider.GetSiteInfo(SelectedSiteID);
                if (si != null)
                {
                    SetBreadcrumb(1, currentBannedIP + " (" + si.DisplayName + ")", null, null, null);
                }
            }
            else
            {
                // Global banned IP
                SetBreadcrumb(1, currentBannedIP + " (global)", null, null, null);

                radAllowIP.Text = GetString("banip.radAllowIPglobal");

                plcIPOveride.Visible = true;
            }
        }

        // Different header and icon if it is new item
        if (itemid <= 0)
        {
            SetTitle(GetString("banip.newHeaderCaption"));
        }
    }


    /// <summary>
    /// Load data of editing bannedIP.
    /// </summary>
    /// <param name="bannedIPObj">BannedIP object</param>
    protected void LoadData(BannedIPInfo bannedIPObj)
    {
        // Check proper radio button
        if (bannedIPObj.IPAddressAllowed)
        {
            radAllowIP.Checked = true;
        }
        else
        {
            radBanIP.Checked = true;
        }

        drpIPAddressBanType.SelectedValue = bannedIPObj.IPAddressBanType;
        chkIPAddressBanEnabled.Checked = bannedIPObj.IPAddressBanEnabled;

        txtIPAddress.Text = bannedIPObj.IPAddress;
        txtIPAddressBanReason.Text = bannedIPObj.IPAddressBanReason;

        if (SiteID == 0)
        {
            chkIPAddressAllowOverride.Checked = bannedIPObj.IPAddressAllowOverride;
        }
    }


    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        // Check 'Modify' permission
        CheckPermissions("Modify");

        string errorMessage = new Validator().NotEmpty(txtIPAddress.Text, GetString("banip.IPAddressEmpty")).Result;

        // Check if regularized ip address doesn't overflow database column
        if (BannedIPInfoProvider.GetRegularIPAddress(txtIPAddress.Text).Length > 200)
        {
            errorMessage = GetString("banip.IPAddressInvalid");
        }

        if (errorMessage == "")
        {
            // If bannedIP doesn't already exist, create new one
            BannedIPInfo bannedIPObj = BannedIPInfoProvider.GetBannedIPInfo(itemid) ?? new BannedIPInfo();

            bannedIPObj.IPAddressAllowed = radAllowIP.Checked;
            bannedIPObj.IPAddressBanType = drpIPAddressBanType.SelectedValue;
            bannedIPObj.IPAddressBanEnabled = chkIPAddressBanEnabled.Checked;
            bannedIPObj.IPAddress = txtIPAddress.Text.Trim();

            // Make sure text is not too long
            if (txtIPAddressBanReason.Text.Length > 450)
            {
                txtIPAddressBanReason.Text = txtIPAddressBanReason.Text.Substring(0, 450);
            }
            bannedIPObj.IPAddressBanReason = txtIPAddressBanReason.Text.Trim();

            if (SiteID == 0)
            {
                // For (global) set overriding from checkbox, otherwise is true
                bannedIPObj.IPAddressAllowOverride = (SelectedSiteID > 0) || chkIPAddressAllowOverride.Checked;

                // If site selected assign it to banned IP
                if (SelectedSiteID > 0)
                {
                    bannedIPObj.IPAddressSiteID = SelectedSiteID;
                }
            }
            else
            {
                // Default setting for editing from CMSDesk
                bannedIPObj.IPAddressAllowOverride = true;
                bannedIPObj.IPAddressSiteID = SiteID;
            }

            BannedIPInfoProvider.SetBannedIPInfo(bannedIPObj);

            URLHelper.Redirect("Bannedip_Edit.aspx?siteid=" + SiteID + "&selectedsiteid=" + SelectedSiteID + "&itemid=" + bannedIPObj.IPAddressID + "&saved=1");
        }
        else
        {
            ShowError(errorMessage);
        }
    }
}