private void MemberNonMemberRoles(string roletype, UserInfo user) { RoleInfo role = RoleInfoProvider.GetRoleInfo(roletype, CMS.SiteProvider.SiteContext.CurrentSiteID); // UserInfo user = UserInfoProvider.GetUserInfo("test"); if ((role != null)) { // Create new user role object UserRoleInfo userRole = new UserRoleInfo(); // Set the properties userRole.UserID = user.UserID; userRole.RoleID = role.RoleID; // Save the user role UserRoleInfoProvider.SetUserRoleInfo(userRole); CMS.Membership.UserInfoProvider.AddUserToRole(user.UserName, roletype, CMS.SiteProvider.SiteContext.CurrentSiteName); //return true; } else { // create role and add user to it CreateUpdateRole(roletype); CMS.Membership.UserInfoProvider.AddUserToRole(user.UserName, roletype, CMS.SiteProvider.SiteContext.CurrentSiteName); } }
protected void Page_Load(object sender, EventArgs e) { roleId = QueryHelper.GetInteger("roleid", 0); groupId = QueryHelper.GetInteger("groupid", 0); string currentRole = ""; RoleInfo role = RoleInfoProvider.GetRoleInfo(roleId); if (role != null) { currentRole = role.DisplayName; } // Initialize PageTitle breadcrumbs string[,] pageTitleTabs = new string[2, 3]; pageTitleTabs[0, 0] = GetString("general.roles"); pageTitleTabs[0, 1] = "~/CMSModules/Groups/Tools/Roles/Role_List.aspx?groupid=" + groupId; pageTitleTabs[0, 2] = "_parent"; pageTitleTabs[1, 0] = currentRole; pageTitleTabs[1, 1] = ""; pageTitleTabs[1, 2] = ""; this.CurrentMaster.Title.Breadcrumbs = pageTitleTabs; this.CurrentMaster.Title.HelpTopicName = "group_role_general"; this.CurrentMaster.Title.HelpName = "title"; // Register script ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ShowContent", ScriptHelper.GetScript("function ShowContent(contentLocation) { parent.frames['content'].location.href= contentLocation; }")); // Tabs InitalizeTabs(); }
/// <summary> /// Creates role UI element. Called when the "Add element to role" button is pressed. /// Expects the CreateUIElement method to be run first. /// </summary> private bool AddUIElementToRole() { // Get the role RoleInfo role = RoleInfoProvider.GetRoleInfo("cmsdeskadmin", SiteContext.CurrentSiteID); // Get the UI element UIElementInfo element = UIElementInfoProvider.GetUIElementInfo("MyNewModule", "MyNewElement"); if ((role != null) && (element != null)) { // Create new role UI element object RoleUIElementInfo newRoleElement = new RoleUIElementInfo(); // Set the properties newRoleElement.RoleID = role.RoleID; newRoleElement.ElementID = element.ElementID; // Save the role UI element RoleUIElementInfoProvider.SetRoleUIElementInfo(newRoleElement); return(true); } return(false); }
/// <summary> /// Removes role from message board. Called when the button "Remove role from board" is pressed. /// Expects the method AddRoleToMessageBoard to be run first. /// </summary> private bool RemoveRoleFromMessageBoard() { // Get the tree structure TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); // Get the root document TreeNode root = tree.SelectSingleNode(SiteContext.CurrentSiteName, "/", null, true); if (root != null) { // Get the message board BoardInfo board = BoardInfoProvider.GetBoardInfo("MyNewBoard", root.DocumentID); // Get the role RoleInfo role = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", SiteContext.CurrentSite.SiteID); if ((board != null) && (role != null)) { BoardRoleInfo boardRole = BoardRoleInfoProvider.GetBoardRoleInfo(role.RoleID, board.BoardID); if (boardRole != null) { // Remove role from message board BoardRoleInfoProvider.DeleteBoardRoleInfo(boardRole); return(true); } } } return(false); }
/// <summary> /// Expects the "CreateDocumentStructure" method to be run first. /// </summary> private bool SetRolePermissions() { // Create an instance of the Tree provider TreeProvider tree = new TreeProvider(CMSContext.CurrentUser); // Get default culture code string culture = SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSDefaultCultureCode"); // Get the API Example document TreeNode node = tree.SelectSingleNode(CMSContext.CurrentSiteName, "/API-Example", culture); if (node != null) { // Get the role ID RoleInfo role = RoleInfoProvider.GetRoleInfo("CMSEditor", CMSContext.CurrentSiteName); if (role != null) { // Prepare allowed / denied permissions int allowed = 0; int denied = 0; allowed += Convert.ToInt32(Math.Pow(2, Convert.ToInt32(NodePermissionsEnum.Modify))); // Create an instance of ACL provider AclProvider acl = new AclProvider(tree); // Set role permissions acl.SetRolePermissions(node, allowed, denied, role.RoleID); return(true); } } return(false); }
/// <summary> /// Adds permission to role. Called when the "Add permission to role" button is pressed. /// Expects the CreatePermission method to be run first. /// </summary> private bool AddPermissionToRole() { // Get the permission PermissionNameInfo permission = PermissionNameInfoProvider.GetPermissionNameInfo("MyNewPermission", "MyNewModule", null); // Get the role RoleInfo role = RoleInfoProvider.GetRoleInfo("cmsdeskadmin", SiteContext.CurrentSiteID); if ((permission != null) && (role != null)) { // Create new role permission object RolePermissionInfo newRolePermission = new RolePermissionInfo(); // Set the properties newRolePermission.PermissionID = permission.PermissionId; newRolePermission.RoleID = role.RoleID; // Add permission to role RolePermissionInfoProvider.SetRolePermissionInfo(newRolePermission); return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { // Hide site selector usUsers.ShowSiteFilter = false; // Set selector live site and hide special users usUsers.IsLiveSite = IsLiveSite; if (IsLiveSite) { usUsers.HideDisabledUsers = true; usUsers.HideHiddenUsers = true; } // Show only user belonging to role's site RoleInfo ri = RoleInfoProvider.GetRoleInfo(RoleID); if (ri != null) { usUsers.SiteID = ri.SiteID == 0 ? -1 : ri.SiteID; } // Load data in administration if (!IsLiveSite) { currentValues = GetRoleUsers(); if (!RequestHelper.IsPostBack()) { usUsers.Value = currentValues; } } usUsers.UniSelector.OnSelectionChanged += UniSelector_OnSelectionChanged; }
public HttpResponseMessage DeleteRole(int roleId = 0) { if (roleId == 0) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = "Invalid roleId" })); } RoleInfo deleteRole = new RoleInfo(); try { // Gets the role deleteRole = RoleInfoProvider.GetRoleInfo(roleId); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, new { errorMessage = e.Message })); } if (deleteRole != null) { try { // Deletes the role RoleInfoProvider.DeleteRoleInfo(deleteRole); return(Request.CreateResponse(HttpStatusCode.OK, new { })); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = e.Message })); } } return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = "There's a problem with your role." })); }
private string CheckIfUsersAndRolesExist(string[] usernames, string[] roleNames, string siteName) { UserInfo user; //Checks if all usernames are valid for (int i = 0; i < usernames.Length; i++) { user = UserInfoProvider.GetUserInfo(usernames[i]); if (user == null) { return("invalid username: "******"invalid roleName: " + roleNames[i]); } } return(""); }
/// <summary> /// Adds role permission to media library. Called when the "Add role permission to library " button is pressed. /// Expects the CreateMediaLibrary method to be run first. /// </summary> private bool AddRolePermissionToLibrary() { // Get the media library MediaLibraryInfo mediaLibrary = MediaLibraryInfoProvider.GetMediaLibraryInfo("MyNewLibrary", SiteContext.CurrentSiteName); // Get the role RoleInfo libraryRole = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", SiteContext.CurrentSiteID); // Get the permission PermissionNameInfo libraryPermission = PermissionNameInfoProvider.GetPermissionNameInfo("FileCreate", "CMS.MediaLibrary", null); if ((mediaLibrary != null) && (libraryRole != null) && (libraryPermission != null)) { // Create a new media library role permision info MediaLibraryRolePermissionInfo rolePermission = new MediaLibraryRolePermissionInfo(); // Set the values rolePermission.LibraryID = mediaLibrary.LibraryID; rolePermission.RoleID = libraryRole.RoleID; rolePermission.PermissionID = libraryPermission.PermissionId; // Add role permission to media library MediaLibraryRolePermissionInfoProvider.SetMediaLibraryRolePermissionInfo(rolePermission); return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { roleUsersElem.IsLiveSite = false; roleId = QueryHelper.GetInteger("roleid", 0); groupId = QueryHelper.GetInteger("groupid", 0); // Check whether group exists GroupInfo gi = GroupInfoProvider.GetGroupInfo(groupId); if (gi != null) { //Check whether selected role is in selected group RoleInfo ri = RoleInfoProvider.GetRoleInfo(roleId); if ((ri != null) && (ri.RoleGroupID == gi.GroupID)) { roleUsersElem.RoleID = roleId; roleUsersElem.GroupID = groupId; roleUsersElem.OnCheckPermissions += roleUsersElem_OnCheckPermissions; } } else { roleUsersElem.Visible = false; } }
/// <summary> /// Nottify Admin /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnNotifyAdmin_Click(object sender, EventArgs e) { try { var nodeGuid = CurrentDocument.NodeGUID; var emailTemplate = DIContainer.Resolve <IKenticoResourceService>().GetSettingsKey(SiteContext.CurrentSiteID, "KDA_CampaignProductAddedTemplate"); Campaign campaign = CampaignProvider.GetCampaign(nodeGuid, CurrentDocument.DocumentCulture, CurrentSite.SiteName); var program = ProgramProvider.GetPrograms() .WhereEquals("ProgramId", ddlPrograms.SelectedValue) .FirstOrDefault(); if (program != null) { program.GlobalAdminNotified = true; program.Update(); var roleName = SettingsKeyInfoProvider.GetValue(CurrentSite.SiteName + ".KDA_GlobalAminRoleName"); var role = RoleInfoProvider.GetRoleInfo(roleName, CurrentSite.SiteID); if (role != null) { var users = RoleInfoProvider.GetRoleUsers(role.RoleID); if (users != null) { foreach (var user in users.AsEnumerable().ToList()) { ProductEmailNotifications.CampaignEmail(campaign.DocumentName, user.Field <string>("Email"), emailTemplate, program.DocumentName); } } } Response.Redirect(CurrentDocument.DocumentUrlPath, false); } } catch (Exception ex) { EventLogProvider.LogException("CMSWebParts_Kadena_Campaign_Web_Form_CampaignProductsFilter", "btnNotifyAdmin_Click", ex, CurrentSite.SiteID, ex.Message); } }
/// <summary> /// Adds role to message board. Called when the button "Add role to board" is pressed. /// Expects the method CreateMessageBoard to be run first. /// </summary> private bool AddRoleToMessageBoard() { // Get the tree structure TreeProvider tree = new TreeProvider(CMSContext.CurrentUser); // Get the root document TreeNode root = tree.SelectSingleNode(CMSContext.CurrentSiteName, "/", null, true); if (root != null) { // Get the message board BoardInfo board = BoardInfoProvider.GetBoardInfo("MyNewBoard", root.DocumentID); // Get the role CMSDeskAdmin RoleInfo role = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", CMSContext.CurrentSite.SiteID); if ((board != null) && (role != null)) { // Add role to message board BoardRoleInfoProvider.AddRoleToBoard(role.RoleID, board.BoardID); return(true); } } return(false); }
/// <summary> /// Deletes role. Called when the "Delete role" button is pressed. /// Expects the CreateRole method to be run first. /// </summary> private bool DeleteRole() { // Get the role RoleInfo deleteRole = RoleInfoProvider.GetRoleInfo("MyNewRole", CMSContext.CurrentSiteID); // Delete the role RoleInfoProvider.DeleteRoleInfo(deleteRole); return(deleteRole != null); }
public HttpResponseMessage RemoveUsersFromRoles([FromBody] JObject postData) { string[] usernames, roleNames; string siteName; //parsing postdata try { usernames = postData["usernames"].ToObject <string[]>(); roleNames = postData["roleNames"].ToObject <string[]>(); siteName = postData["siteName"].ToObject <string>(); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = e.Message })); } //checks if the given usernames and role names are valid on the given site string check = CheckIfUsersAndRolesExist(usernames, roleNames, siteName); if (check != "") { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = check })); } UserInfo user; RoleInfo role; //for all usernames for (int i = 0; i < usernames.Length; i++) { //gets the user according to the username user = UserInfoProvider.GetUserInfo(usernames[i]); //and for all role names for (int j = 0; j < roleNames.Length; j++) { //all global and membership roles will be checked bool checkGlobalRoles = true; bool checkMembership = true; // Checks whether the user is assigned to a role with the role name if (user.IsInRole(roleNames[j], siteName, checkGlobalRoles, checkMembership)) { // Removes the user from the role try { role = RoleInfoProvider.GetRoleInfo(roleNames[i], siteName, true); UserInfoProvider.RemoveUserFromRole(user.UserID, role.RoleID); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = e.Message })); } } } } return(Request.CreateResponse(HttpStatusCode.OK, new { })); }
/// <summary> /// Returns instance of <see cref="Role"/>. /// </summary> /// <param name="roleName">Name of role.</param> public Task <Role> FindByNameAsync(string roleName) { var roleInfo = RoleInfoProvider.GetRoleInfo(roleName, SiteContext.CurrentSiteID); if (roleInfo == null) { return(Task.FromResult((Role)null)); } return(Task.FromResult(new Role(roleInfo))); }
private string AreRoleIdsValid(int[] roleIds) { for (int i = 0; i < roleIds.Length; i++) { if (RoleInfoProvider.GetRoleInfo(roleIds[i]) == null) { return("invalid roleId: " + roleIds[i]); } } return(""); }
/// <summary> /// Returns instance of <see cref="Role"/>. /// </summary> /// <param name="roleId">ID of the role.</param> public Task <Role> FindByIdAsync(int roleId) { var roleInfo = RoleInfoProvider.GetRoleInfo(roleId); if (roleInfo == null) { return(Task.FromResult((Role)null)); } return(Task.FromResult(new Role(roleInfo))); }
private RoleInfo GetRoleByRoleName(string roleName, int siteId) { var role = RoleInfoProvider.GetRoleInfo(roleName, siteId); if (role == null) { throw new InvalidOperationException(ResHelper.GetString("general.rolenotfound")); } return(role); }
protected void Page_Load(object sender, EventArgs e) { roleId = QueryHelper.GetInteger("roleid", 0); string roleListUrl = "~/CMSModules/Membership/Pages/Roles/Role_List.aspx"; if (SelectedSiteID != 0) { urlQuery = "selectedsiteid=" + SelectedSiteID; siteID = SelectedSiteID; } else if (SiteID != 0) { urlQuery = "siteid=" + SiteID; siteID = SiteID; } if (urlQuery != String.Empty) { roleListUrl += "?"; } roleListUrl += urlQuery; string currentRole = ""; role = RoleInfoProvider.GetRoleInfo(roleId); if (role != null) { currentRole = role.DisplayName; } // Initialize PageTitle breadcrumbs string[,] pageTitleTabs = new string[2, 3]; pageTitleTabs[0, 0] = GetString("general.roles"); pageTitleTabs[0, 1] = roleListUrl; pageTitleTabs[0, 2] = "_parent"; pageTitleTabs[1, 0] = currentRole; pageTitleTabs[1, 1] = ""; pageTitleTabs[1, 2] = ""; CurrentMaster.Title.Breadcrumbs = pageTitleTabs; CurrentMaster.Title.TitleText = GetString("Administration-Role_Edit.Title"); CurrentMaster.Title.TitleImage = GetImageUrl("Objects/CMS_Role/object.png"); CurrentMaster.Title.HelpTopicName = "general_tab9"; CurrentMaster.Title.HelpName = "title"; // Register script ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "ShowContent", ScriptHelper.GetScript("function ShowContent(contentLocation) { parent.frames['content'].location.href= contentLocation; }")); // Tabs InitalizeTabs(); }
/// <summary> /// Reloads textboxes with new data. /// </summary> public override void ReloadData(bool forceReload) { RoleInfo ri = ItemID > 0 ? RoleInfoProvider.GetRoleInfo(ItemID) : new RoleInfo(); // Set edited object EditedObject = ri; if (ri.RoleID > 0) { var user = MembershipContext.AuthenticatedUser; // Security test if (!user.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin)) { if (ri.SiteID == 0) { RedirectToAccessDenied(GetString("general.actiondenied")); } else { SiteInfo si = SiteInfoProvider.GetSiteInfo(ri.SiteID); if (si != null) { if (!user.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin) && !MembershipContext.AuthenticatedUser.IsInSite(si.SiteName)) { RedirectToAccessDenied(GetString("general.actiondenied")); } } } } } if ((!RequestHelper.IsPostBack()) || (forceReload)) { string roleName = string.Empty; if (ri.RoleID > 0) { LoadData(ri); SiteID = ri.SiteID; roleName = ri.RoleName; } else { txtRoleCodeName.Text = null; txtRoleDisplayName.Text = null; txtDescription.Text = null; chkIsDomain.Checked = false; chkIsAdmin.Checked = false; } bool displayIsDomain = ((roleName != RoleName.EVERYONE) && (roleName != RoleName.AUTHENTICATED) && (roleName != RoleName.NOTAUTHENTICATED) && (GroupID == 0)); plcIsDomain.Visible = displayIsDomain; } }
/// <summary> /// Recursivelly select or deselect all child elements. /// </summary> /// <param name="select">Determines the type of action</param> /// <param name="parentId">ID of the parent UIElement</param> /// <param name="excludeRoot">Indicates whether to exclude root element from selection/deselection</param> private void SelectDeselectAll(bool select, int parentId, bool excludeRoot) { // Check manage permission if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.UIPersonalization", CMSAdminControl.PERMISSION_MODIFY)) { RedirectToAccessDenied("CMS.UIPersonalization", CMSAdminControl.PERMISSION_MODIFY); } // Get the children and select them string where = (ModuleID > 0) ? String.Format(@"(ElementResourceID = {0} OR EXISTS (SELECT ElementID FROM CMS_UIElement AS x WHERE x.ElementIDPath like CMS_UIElement.ElementIDPath+ '%' AND x.ElementResourceID = {0})) AND ElementIDPath LIKE (SELECT TOP 1 ElementIDPath FROM CMS_UIElement WHERE ElementID = {1}) + '%' ", ModuleID, parentId) : "ElementIDPath LIKE (SELECT TOP 1 ElementIDPath FROM CMS_UIElement WHERE ElementID = " + parentId + ") + '%' "; if (excludeRoot) { where += " AND NOT ElementID = " + parentId; } if (!String.IsNullOrEmpty(GroupPreffix)) { where += " AND ElementName NOT LIKE '" + SqlHelper.EscapeLikeText(SqlHelper.EscapeQuotes(GroupPreffix)) + "%'"; } using (CMSActionContext context = new CMSActionContext()) { // Many updates caused deadlocks with CMS_Role table, disable touch parent of the role context.TouchParent = false; DataSet ds = UIElementInfoProvider.GetUIElements(where, null, 0, "ElementID"); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { int id = ValidationHelper.GetInteger(dr["ElementID"], 0); if (select) { RoleUIElementInfoProvider.AddRoleUIElementInfo(RoleID, id); } else { RoleUIElementInfoProvider.DeleteRoleUIElementInfo(RoleID, id); } } } // Explicitly touch the role only once var role = RoleInfoProvider.GetRoleInfo(RoleID); if (role != null) { role.Update(); } } }
private void SaveRole(RoleInfo ri, string codeName, string displayName) { bool newRole = false; // Get object if (ri == null) { ri = RoleInfoProvider.GetRoleInfo(ItemID); if (ri == null) { ri = new RoleInfo(); // indicate this is new role and should be redirected after safe newRole = true; } } if (ri.DisplayName != displayName) { // Refresh a breadcrumb if used in the tabs layout ScriptHelper.RefreshTabHeader(Page, string.Empty); } // Set the fields ri.DisplayName = displayName; ri.RoleName = codeName; ri.RoleID = ItemID; ri.Description = txtDescription.Text; ri.SiteID = mSiteId; ri.RoleIsDomain = chkIsDomain.Checked; // If group id is present then it's group role if (GroupID > 0) { ri.RoleGroupID = mGroupId; ri.RoleIsGroupAdministrator = chkIsAdmin.Checked; } RoleInfoProvider.SetRoleInfo(ri); ItemID = ri.RoleID; ShowChangesSaved(); // if new group was created redirect to edit page if (newRole) { RoleID = ri.RoleID; RaiseOnSaved(); } }
/// <summary> /// Reloads textboxes with new data. /// </summary> public override void ReloadData(bool forceReload) { RoleInfo ri = RoleInfoProvider.GetRoleInfo(ItemID); if (ri != null) { CurrentUserInfo user = CMSContext.CurrentUser; // Security test if (!user.UserSiteManagerAdmin) { if (ri.SiteID == 0) { RedirectToAccessDenied(GetString("general.actiondenied")); } else { SiteInfo si = SiteInfoProvider.GetSiteInfo(ri.SiteID); if (si != null) { if (!user.IsGlobalAdministrator && !CMSContext.CurrentUser.IsInSite(si.SiteName)) { RedirectToAccessDenied(GetString("general.actiondenied")); } } } } } if ((!RequestHelper.IsPostBack()) || (forceReload)) { string roleName = string.Empty; if (ri != null) { LoadData(ri); SiteID = ri.SiteID; roleName = ri.RoleName; } else { txtRoleCodeName.Text = null; txtRoleDisplayName.Text = null; txtDescription.Text = null; chkIsDomain.Checked = false; chkIsAdmin.Checked = false; } bool displayIsDomain = ((roleName != RoleInfoProvider.EVERYONE) && (roleName != RoleInfoProvider.AUTHENTICATED) && (roleName != RoleInfoProvider.NOTAUTHENTICATED) && (GroupID == 0)); plcIsDomain.Visible = displayIsDomain; } }
public HttpResponseMessage CreateNewRole([FromBody] JObject postData) { // Creates a new role object RoleInfo newRole = new RoleInfo(); string newRoleName, newDisplayName; //parsing of the postdata try { newRoleName = postData["roleName"].ToObject <string>(); newDisplayName = postData["roleDisplayName"].ToObject <string>(); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = e.Message })); } // Sets the role properties newRole.RoleName = newRoleName; newRole.DisplayName = newDisplayName; newRole.SiteID = SiteContext.CurrentSiteID; int roleId; // Verifies that the role is unique for the current site if (!RoleInfoProvider.RoleExists(newRole.RoleName, SiteContext.CurrentSiteName)) { try { // Saves the role to the database RoleInfoProvider.SetRoleInfo(newRole); roleId = RoleInfoProvider.GetRoleInfo(newRole.RoleName, SiteContext.CurrentSiteName).RoleID; } catch (CodeNameNotValidException e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = e.Message })); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, new { errorMessage = e.Message })); } //everything is OK, the ID of the new role are also returned return(Request.CreateResponse(HttpStatusCode.OK, new { newRoleId = roleId })); } else { // A role with the same name already exists on the site return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = "A role with the same name already exists on the site" })); } }
/// <summary> /// Recursivelly select or deselect all child elements. /// </summary> /// <param name="select">Determines the type of action</param> /// <param name="parentId">ID of the parent UIElement</param> /// <param name="excludeRoot">Indicates whether to exclude root element from selection/deselection</param> private void SelectDeselectAll(bool select, int parentId, bool excludeRoot) { // Check manage permission if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.UIPersonalization", CMSAdminControl.PERMISSION_MODIFY)) { RedirectToAccessDenied("CMS.UIPersonalization", CMSAdminControl.PERMISSION_MODIFY); } // Get the children and select them (do not use module as filter if all elements should be visible) string where = ((ModuleID > 0) && !ShowAllElementsFromModuleSection) ? String.Format(@"(ElementResourceID = {0} OR EXISTS (SELECT ElementID FROM CMS_UIElement AS x WHERE x.ElementIDPath LIKE CMS_UIElement.ElementIDPath+ '%' AND x.ElementResourceID = {0})) AND ElementIDPath LIKE (SELECT TOP 1 ElementIDPath FROM CMS_UIElement WHERE ElementID = {1}) + '%' ", ModuleID, parentId) : "ElementIDPath LIKE (SELECT TOP 1 ElementIDPath FROM CMS_UIElement WHERE ElementID = " + parentId + ") + '%' "; if (excludeRoot) { where += " AND NOT ElementID = " + parentId; } if (!String.IsNullOrEmpty(GroupPreffix)) { where += " AND ElementName NOT LIKE '" + SqlHelper.EscapeLikeText(SqlHelper.EscapeQuotes(GroupPreffix)) + "%'"; } using (CMSActionContext context = new CMSActionContext()) { // Many updates caused deadlocks with CMS_Role table, disable touch parent of the role context.TouchParent = false; var elementIds = UIElementInfoProvider.GetUIElements() .Where(where) .Columns("ElementID") .GetListResult <int>(); foreach (var id in elementIds) { if (select) { RoleUIElementInfoProvider.AddRoleUIElementInfo(RoleID, id); } else { RoleUIElementInfoProvider.DeleteRoleUIElementInfo(RoleID, id); } } // Explicitly touch the role only once RoleInfoProvider.GetRoleInfo(RoleID) ?.Update(); } }
/// <summary> /// Removes membership from role. Called when the "Remove membership from role" button is pressed. /// </summary> private bool RemoveMembershipFromRole() { // Get role and user objects RoleInfo role = RoleInfoProvider.GetRoleInfo("MyNewRole", CMSContext.CurrentSiteID); MembershipInfo membership = MembershipInfoProvider.GetMembershipInfo("MyNewMembership", CMSContext.CurrentSiteName); if ((role != null) && (membership != null)) { MembershipRoleInfoProvider.RemoveMembershipFromRole(membership.MembershipID, role.RoleID); return(true); } return(false); }
public async Task RemoveFromRoleAsync_UserIsInRole_UserRoleInfoDeletedUserAndRoleExists() { var role = mMembershipFakeFactory.AdminRole; var user = new User(mMembershipFakeFactory.UserEnabledWithEmail); UserRoleInfoProvider.AddUserToRole(mMembershipFakeFactory.UserEnabledWithEmail, mMembershipFakeFactory.AdminRole); await mUserStore.RemoveFromRoleAsync(user, role.RoleName); CMSAssert.All( () => Assert.AreEqual(0, UserRoleInfoProvider.GetUserRoles().Count), () => Assert.IsNull(UserRoleInfoProvider.GetUserRoleInfo(user.Id, role.RoleID)), () => Assert.IsNotNull(RoleInfoProvider.GetRoleInfo(role.RoleID)), () => Assert.IsNotNull(UserInfoProvider.GetUserInfo(user.Id))); }
/// <summary> /// Initializes breadcrumbs items. /// </summary> private void InitializeBreadcrumbs() { ucBreadcrumbs.AddBreadcrumb(new BreadcrumbItem { Text = GetString("general.roles"), Index = 0, RedirectUrl = "javascript:" + ControlsHelper.GetPostBackEventReference(lnkBackHidden) }); RoleInfo role = RoleInfoProvider.GetRoleInfo(RoleID); ucBreadcrumbs.AddBreadcrumb(new BreadcrumbItem { Text = (role == null) ? GetString("Administration-Role_New.NewRole") : role.RoleDisplayName, Index = 1 }); }
/// <summary> /// Removes the assignment of the CMS Editors role from a workflow step. Called when the "Remove role from step" button is pressed. /// Expects the CreateWorkflow, CreateWorkflowStep and AddRoleToStep methods to be run first. /// </summary> private bool RemoveRoleFromStep() { // Get the workflow WorkflowInfo workflow = WorkflowInfoProvider.GetWorkflowInfo("MyNewWorkflow", WorkflowTypeEnum.Approval); if (workflow != null) { // Get the custom step WorkflowStepInfo step = WorkflowStepInfoProvider.GetWorkflowStepInfo("MyNewWorkflowStep", workflow.WorkflowID); if (step != null) { // Get the role to be assigned to the step RoleInfo role = RoleInfoProvider.GetRoleInfo("CMSEditor", SiteContext.CurrentSiteID); if (role != null) { // Get the step - role relationship WorkflowStepRoleInfo stepRoleInfo = WorkflowStepRoleInfoProvider.GetWorkflowStepRoleInfo(step.StepID, role.RoleID); if (stepRoleInfo != null) { // Remove the assignment WorkflowStepRoleInfoProvider.RemoveRoleFromWorkflowStep(step.StepID, role.RoleID); return(true); } else { // The role is not assigned to the step apiRemoveRoleFromStep.ErrorMessage = "The 'CMS Editors' role is not assigned to the step."; } } else { // The role was not found apiRemoveRoleFromStep.ErrorMessage = "The role 'CMS Editors' was not found."; } } else { // The step was not found apiRemoveRoleFromStep.ErrorMessage = "The step 'My new workflow step' was not found."; } } return(false); }