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/CMS/CMSWebParts/General/AdminActions.ascx.cs
using System;
using System.Data;
using System.Collections;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using CMS.DataEngine;
using CMS.Helpers;
using CMS.Membership;
using CMS.PortalControls;
using CMS.DocumentEngine;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.URLRewritingEngine;

public partial class CMSWebParts_General_AdminActions : CMSAbstractWebPart
{
    #region "Properties"

    /// <summary>
    /// Indicates whether on-site editing is preferred for document editing if is available
    /// </summary>
    public bool PreferOnSiteEdit
    {
        get
        {
            return ValidationHelper.GetBoolean(GetValue("PreferOnSiteEdit"), true);
        }
        set
        {
            SetValue("PreferOnSiteEdit", value);
        }
    }


    /// <summary>
    /// Display only to global administrator.
    /// </summary>
    public bool DisplayOnlyToGlobalAdministrator
    {
        get
        {
            return ValidationHelper.GetBoolean(GetValue("DisplayOnlyToGlobalAdministrator"), false);
        }
        set
        {
            SetValue("DisplayOnlyToGlobalAdministrator", value);
        }
    }


    /// <summary>
    /// Check permissions.
    /// </summary>
    public bool CheckPermissions
    {
        get
        {
            return ValidationHelper.GetBoolean(GetValue("CheckPermissions"), false);
        }
        set
        {
            SetValue("CheckPermissions", value);
        }
    }


    /// <summary>
    /// Separator.
    /// </summary>
    public string Separator
    {
        get
        {
            return ValidationHelper.GetString(GetValue("Separator"), null);
        }
        set
        {
            SetValue("Separator", value);
        }
    }


    /// <summary>
    /// Show cms desk link.
    /// </summary>
    public bool ShowCMSDeskLink
    {
        get
        {
            return ValidationHelper.GetBoolean(GetValue("ShowCMSDeskLink"), true);
        }
        set
        {
            SetValue("ShowCMSDeskLink", value);
        }
    }


    /// <summary>
    /// CMS Desk link text.
    /// </summary>
    public string CMSDeskLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("CMSDeskLinkText"), "Administration");
        }
        set
        {
            SetValue("CMSDeskLinkText", value);
        }
    }


    /// <summary>
    /// CMS Desk text.
    /// </summary>
    public string CMSDeskText
    {
        get
        {
            return DataHelper.GetNotEmpty(GetValue("CMSDeskText"), "{0}");
        }
        set
        {
            SetValue("CMSDeskText", value);
        }
    }


    /// <summary>
    /// Show edit document link.
    /// </summary>
    public bool ShowEditDocumentLink
    {
        get
        {
            return ValidationHelper.GetBoolean(GetValue("ShowEditDocumentLink"), false);
        }
        set
        {
            SetValue("ShowEditDocumentLink", value);
        }
    }


    /// <summary>
    /// Edit document link text.
    /// </summary>
    public string EditDocumentLinkText
    {
        get
        {
            return ValidationHelper.GetString(GetValue("EditDocumentLinkText"), "Edit page");
        }
        set
        {
            SetValue("EditDocumentLinkText", value);
        }
    }


    /// <summary>
    /// Edit document text.
    /// </summary>
    public string EditDocumentText
    {
        get
        {
            return DataHelper.GetNotEmpty(GetValue("EditDocumentText"), "{0}");
        }
        set
        {
            SetValue("EditDocumentText", value);
        }
    }


    /// <summary>
    /// Default user name for logon page.
    /// </summary>
    public string DefaultUserName
    {
        get
        {
            return ValidationHelper.GetString(GetValue("DefaultUserName"), null);
        }
        set
        {
            SetValue("DefaultUserName", value);
        }
    }

    #endregion


    #region "Methods"

    /// <summary>
    /// Content loaded event handler.
    /// </summary>
    public override void OnContentLoaded()
    {
        base.OnContentLoaded();
        SetupControl();
    }


    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do not process
        }
        else
        {
            var uinfo = MembershipContext.AuthenticatedUser;

            if (uinfo.IsGlobalAdministrator || !DisplayOnlyToGlobalAdministrator)
            {
                // Create new string builder for links
                StringBuilder sb = new StringBuilder();

                // Store current site name
                string curSiteName = SiteContext.CurrentSiteName;
                // Get default user name
                string queryStringKey = (string.IsNullOrEmpty(DefaultUserName)) ? null : "?username=" + DefaultUserName;
                bool separatorNeeded = false;

                // If cms desk link is shown
                if (ShowCMSDeskLink && (!CheckPermissions || uinfo.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Editor, curSiteName)))
                {
                    string url = ResolveUrl("~/Admin/");
                    if (!string.IsNullOrEmpty(DefaultUserName))
                    {
                        url = URLHelper.AddParameterToUrl(url, "username", DefaultUserName);
                    }

                    sb.AppendFormat(CMSDeskText, string.Concat("<a href=\"", HTMLHelper.EncodeForHtmlAttribute(url), "\">", CMSDeskLinkText, "</a>"));

                    separatorNeeded = true;
                }

                // If edit document link is shown
                if (ShowEditDocumentLink && (!CheckPermissions || (uinfo.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Editor, curSiteName) && CMSPage.IsUserAuthorizedPerContent() && (uinfo.IsAuthorizedPerDocument(DocumentContext.CurrentDocument, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Allowed))))
                {
                    // Check if separator needed
                    if (separatorNeeded)
                    {
                        sb.Append(" " + Separator + " ");
                    }

                    string url = HTMLHelper.EncodeForHtmlAttribute(DocumentHelper.GetDocumentEditUrl(DocumentContext.CurrentDocument.NodeID, DocumentContext.CurrentDocumentCulture.CultureCode));
                    if (PreferOnSiteEdit && PortalHelper.IsOnSiteEditingEnabled(CurrentSiteName))
                    {
                         url = URLHelper.ResolveUrl(PortalHelper.OnSiteEditRelativeURL);

                        string retUrl = RequestContext.CurrentURL;
                        // handle default alias path
                        if ((ViewMode == CMS.PortalEngine.ViewModeEnum.LiveSite) && (URLRewritingContext.CurrentPageInfoSource == PageInfoSource.DefaultAliasPath))
                        {
                            string aliasPath = PageInfoProvider.GetDefaultAliasPath(RequestContext.CurrentDomain, SiteContext.CurrentSiteName);
                            if (!String.IsNullOrEmpty(aliasPath))
                            {
                                string query = URLHelper.GetQuery(retUrl);
                                retUrl = URLHelper.ResolveUrl(DocumentURLProvider.GetUrl(aliasPath));
                                retUrl = URLHelper.AppendQuery(retUrl, query);
                            }
                        }

                        url = URLHelper.UpdateParameterInUrl(url, "returnurl", HTMLHelper.HTMLEncode(HttpUtility.UrlEncode(retUrl)));
                    }

                    sb.AppendFormat(EditDocumentText, string.Concat("<a href=\"", url, "\">", EditDocumentLinkText, "</a>"));
                }

                ltlAdminActions.Text = sb.ToString();
            }
        }
    }


    /// <summary>
    /// Reloads the control data.
    /// </summary>
    public override void ReloadData()
    {
        base.ReloadData();

        SetupControl();
    }

    #endregion
}