Exemple #1
0
    protected override void OnPreRender(EventArgs e)
    {
        // Load the matrix
        if (Element != null)
        {
            // Disable check box if no user selected
            if (SelectedUserID > 0)
            {
                chkUserOnly.Enabled = true;
            }
            else
            {
                chkUserOnly.Checked = false;
                chkUserOnly.Enabled = false;
            }

            // Set info label
            headTitle.Text = String.Format(GetString("resource.ui.rolesinfo"), HTMLHelper.HTMLEncode(Element.ElementDisplayName));

            // Set matrix parameters
            gridMatrix.QueryParameters      = GetQueryParameters(siteSelector.SiteID, Element.ElementDisplayName);
            gridMatrix.WhereCondition       = GetWhereCondition();
            gridMatrix.ShowContentBeforeRow = (SelectedUser != null);

            // Get content before rows
            GenerateBeforeRowsContent();

            ucDisabledModule.SiteName = siteSelector.SiteName;
            ucDisabledModule.InfoText = GetString("resource.ui.disabled");

            ShowInformation(String.Empty);

            if (!gridMatrix.HasData)
            {
                plcUpdate.Visible = false;
                headTitle.Text    = (chkUserOnly.Checked) ? GetString("general.norolemember") : GetString("uiprofile.norole");
            }
            else
            {
                // Inform user that global admin was selected
                if ((SelectedUserID > 0) && (SelectedUser != null) && (SelectedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin)))
                {
                    ShowInformation(GetString("uiprofile.GlobalAdministrator"));
                }

                plcUpdate.Visible = true;
            }
        }

        base.OnPreRender(e);
    }
Exemple #2
0
    protected override void OnPreRender(EventArgs e)
    {
        // Initialize value dependant properties of uni matrix
        gridMatrix.ShowContentBeforeRow = SelectedUserID > 0;
        gridMatrix.QueryName            = GetQueryNameByType();
        gridMatrix.QueryParameters      = GetQueryParameters();
        gridMatrix.WhereCondition       = GetWhereCondition();

        if (FilterChanged || (gridMatrix.Pager.CurrentPage <= 0))
        {
            gridMatrix.Pager.CurrentPage = 1;
        }
        if (gridMatrix.Pager.CurrentPage > gridMatrix.Pager.PageCount)
        {
            gridMatrix.Pager.CurrentPage = gridMatrix.Pager.PageCount;
        }

        int selectedId = ValidationHelper.GetInteger(SelectedID, 0);

        ShowInformation(String.Empty);

        if (!gridMatrix.HasData)
        {
            if (UserRolesOnly && (selectedId > 0))
            {
                lblInfo.Text = GetString("general.norolemember");
            }
        }
        else
        {
            // Inform user that global admin was selected
            if ((SelectedUserID > 0) && SelectedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin))
            {
                ShowInformation(GetString("Administration-Permissions_Matrix.GlobalAdministrator"));
            }
        }
        lblInfo.Visible = !string.IsNullOrEmpty(lblInfo.Text);

        // Set content before rows and refresh matrix content
        GenerateBeforeRowsContent(SiteID, selectedId, SelectedType);
        pnlUpdMat.Update();

        base.OnPreRender(e);
    }
Exemple #3
0
    protected override void OnPreRender(EventArgs e)
    {
        // Load the matrix
        if (Permission != null)
        {
            // Disable check box if no user selected
            if (SelectedUserID > 0)
            {
                chkUserOnly.Enabled = true;
            }
            else
            {
                chkUserOnly.Checked = false;
                chkUserOnly.Enabled = false;
            }

            headTitle.Text = String.Format(GetString("administration-module_edit_permissionnames.rolesinfo"), HTMLHelper.HTMLEncode(Permission.PermissionDisplayName));

            gridMatrix.QueryParameters      = GetQueryParameters(siteSelector.SiteID, Permission.PermissionId, Permission.PermissionDisplayName);
            gridMatrix.WhereCondition       = GetWhereCondition();
            gridMatrix.ShowContentBeforeRow = (SelectedUser != null);

            GenerateBeforeRowsContent();
            ShowInformation(String.Empty);

            if (!gridMatrix.HasData)
            {
                plcUpdate.Visible = false;
                headTitle.Text    = (chkUserOnly.Checked) ? GetString("general.norolemember") : GetString("general.emptymatrix");
            }
            else
            {
                // Inform user that global admin was selected
                if ((SelectedUserID > 0) && (SelectedUser != null) && SelectedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin))
                {
                    ShowInformation(GetString("Administration-Permissions_Matrix.GlobalAdministrator"));
                }

                plcUpdate.Visible = true;
            }
        }
        base.OnPreRender(e);
    }
Exemple #4
0
    /// <summary>
    /// Gets user effective UI permission HTML content.
    /// </summary>
    private void GenerateBeforeRowsContent()
    {
        // Check if every necessary property is set
        if ((SelectedUser != null) && (Element != null) && (ElementResource != null))
        {
            // Initialize variables used during rendering
            string userName = HTMLHelper.HTMLEncode(TextHelper.LimitLength(Functions.GetFormattedUserName(SelectedUser.UserName, SelectedUser.FullName), 50));
            bool   authorizedToUIElement = UserInfoProvider.IsAuthorizedPerUIElement(ElementResource.ResourceName,
                                                                                     new[] { Element.ElementName },
                                                                                     siteSelector.SiteName,
                                                                                     SelectedUser,
                                                                                     true,
                                                                                     siteSelector.SiteID <= 0);
            // Create header table cell
            var tcHeader = new TableCell
            {
                CssClass = "matrix-header",
                ToolTip  = userName,
                Text     = userName
            };

            var tr = gridMatrix.ContentBeforeRow;
            tr.Cells.Add(tcHeader);

            // Create UI permission cell
            var tc  = new TableCell();
            var chk = new CMSCheckBox
            {
                Checked = SelectedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin) || authorizedToUIElement,
                Enabled = false,
                ToolTip = GetString("Administration-Permissions_Matrix.NotAdjustable")
            };

            tc.Controls.Add(chk);
            tr.Cells.Add(tc);

            UniMatrix.AddFillingCell <TableCell>(tr);
        }
    }
Exemple #5
0
    /// <summary>
    /// Gets user effective permissions HTML content.
    /// </summary>
    /// <param name="siteId">Site ID</param>
    /// <param name="resourceId">ID of particular resource</param>
    /// <param name="selectedType">Permission type</param>
    private void GenerateBeforeRowsContent(int siteId, int resourceId, string selectedType)
    {
        // Check if selected users exists
        UserInfo user = SelectedUser;

        if (user == null)
        {
            gridMatrix.ShowContentBeforeRow = false;
            return;
        }

        string columns = "PermissionID";

        // Ensure tooltip column
        if (!String.IsNullOrEmpty(gridMatrix.ItemTooltipColumn))
        {
            columns += ",Matrix." + gridMatrix.ItemTooltipColumn;
        }

        // Get permission data
        DataSet dsPermissions;

        switch (selectedType)
        {
        case "r":
            dsPermissions = UserInfoProvider.GetUserResourcePermissions(user, siteId, resourceId, true, columns);
            break;

        default:
            dsPermissions = UserInfoProvider.GetUserDataClassPermissions(user, siteId, resourceId, true, columns);
            break;
        }

        if (!DataHelper.DataSourceIsEmpty(dsPermissions))
        {
            // Initialize variables used during rendering
            DataRowCollection rows     = dsPermissions.Tables[0].Rows;
            string            userName = Functions.GetFormattedUserName(user.UserName, user.FullName);
            var title = GetString("Administration-Permissions_Matrix.NotAdjustable");

            // Table header cell with user name
            var tcHeader = new TableCell
            {
                CssClass = "matrix-header",
                Text     = HTMLHelper.HTMLEncode(TextHelper.LimitLength(userName, 50)),
                ToolTip  = HTMLHelper.HTMLEncode(userName)
            };

            var tr = gridMatrix.ContentBeforeRow;

            tr.Cells.Add(tcHeader);

            // Process permissions according to matrix order
            foreach (int index in gridMatrix.ColumnOrderIndex)
            {
                DataRow dr = rows[index];

                // Table cell for each permission
                TableCell tc  = new TableCell();
                var       chk = new CMSCheckBox
                {
                    ID           = "chk_perm_" + index,
                    ClientIDMode = ClientIDMode.Static,
                    Enabled      = false,
                    Checked      = (SelectedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin) || Convert.ToInt32(dr["Allowed"]) == 1),
                    ToolTip      = title,
                };

                tc.Controls.Add(chk);
                tr.Cells.Add(tc);
            }

            UniMatrix.AddFillingCell <TableCell>(tr);
        }
    }