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/TDijk1/erp-apps.eu/wwwroot/CMSModules/Bizforms/Tools/BizForm_List.aspx.cs
using System;

using CMS.DataEngine;
using CMS.ExtendedControls.ActionsConfig;
using CMS.FormEngine;
using CMS.Helpers;
using CMS.OnlineForms;
using CMS.PortalEngine;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.Membership;

[UIElement("CMS.Form", "Form")]
public partial class CMSModules_BizForms_Tools_BizForm_List : CMSBizFormPage
{
    private CurrentUserInfo currentUser;


    protected void Page_Load(object sender, EventArgs e)
    {
        currentUser = MembershipContext.AuthenticatedUser;

        if (currentUser == null)
        {
            return;
        }

        // Check 'ReadForm' permission
        if (!currentUser.IsAuthorizedPerResource("cms.form", "ReadForm"))
        {
            RedirectToAccessDenied("cms.form", "ReadForm");
        }

        UniGridBizForms.OnAction += UniGridBizForms_OnAction;
        UniGridBizForms.HideControlForZeroRows = false;
        UniGridBizForms.ZeroRowsText = GetString("general.nodatafound");
        UniGridBizForms.WhereCondition = GetUniGridWhereCondition();

        PageTitle.TitleText = GetString("BizFormList.TitleText");

        InitHeaderActions();
    }


    private string GetUniGridWhereCondition()
    {
        // Global administrators can see all forms. 
        if (currentUser.IsGlobalAdministrator)
        {
            return "FormSiteID = " + SiteContext.CurrentSiteID;
        }

        var bizFormsAvailableForUser = BizFormInfoProvider.GetBizForms()
                                                          .Column("CMS_Form.FormID")
                                                          .OnSite(SiteContext.CurrentSiteID)
                                                          .Distinct()
                                                          .Source(s => s.LeftJoin<BizFormRoleInfo>("FormID", "FormID"))
                                                          .Where(new WhereCondition()
                                                              .WhereIn("RoleID", UserRoleInfoProvider.GetUserRoles().Column("RoleID").WhereEquals("UserID", currentUser.UserID))
                                                              .Or()
                                                              .WhereNull("FormAccess")
                                                              .Or()
                                                              .WhereEquals("FormAccess", (int)FormAccessEnum.AllBizFormUsers));

        return new WhereCondition().WhereIn("CMS_Form.FormID", bizFormsAvailableForUser).ToString(true);
    }


    private void InitHeaderActions()
    {
        HeaderActions.AddAction(new HeaderAction
        {
            Text = GetString("BizFormList.lnkNewBizForm"),
            Tooltip = GetString("BizFormList.lnkNewBizForm"),
            RedirectUrl = "BizForm_New.aspx",
            ResourceName = "cms.form",
            Permission = "CreateForm"
        });
    }


    protected void UniGridBizForms_OnAction(string actionName, object actionArgument)
    {
        if (DataHelper.GetNotEmpty(actionName, String.Empty) == "edit")
        {
            URLHelper.Redirect(UIContextHelper.GetElementUrl("CMS.Form", "Forms.Properties", false, Convert.ToInt32(actionArgument)));
        }
        if (DataHelper.GetNotEmpty(actionName, "") == "delete")
        {
            // Check 'DeleteFormAndData' permission
            if (!currentUser.IsAuthorizedPerResource("cms.form", "DeleteFormAndData"))
            {
                RedirectToAccessDenied("cms.form", "DeleteFormAndData");
            }

            BizFormInfoProvider.DeleteBizFormInfo(ValidationHelper.GetInteger(actionArgument, 0));
        }
    }
}