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); }
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); }
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); }
/// <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); } }
/// <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); } }