/// <summary> /// The BindData helper method is used to bind the list of /// security roles for this portal to an asp:datalist server control /// </summary> private void BindData() { // Get the portal's roles from the database UsersDB users = new UsersDB(); IList <RainbowRole> roles = users.GetPortalRoles(portalSettings.PortalAlias); // remove "All Users", "Authenticated Users" and "Unauthenticated Users" pseudo-roles RainbowRole pseudoRole = new RainbowRole(RainbowRoleProvider.AllUsersGuid, RainbowRoleProvider.AllUsersRoleName); if (roles.Contains(pseudoRole)) { roles.Remove(pseudoRole); } pseudoRole = new RainbowRole(RainbowRoleProvider.AuthenticatedUsersGuid, RainbowRoleProvider.AuthenticatedUsersRoleName); if (roles.Contains(pseudoRole)) { roles.Remove(pseudoRole); } pseudoRole = new RainbowRole(RainbowRoleProvider.UnauthenticatedUsersGuid, RainbowRoleProvider.UnauthenticatedUsersRoleName); if (roles.Contains(pseudoRole)) { roles.Remove(pseudoRole); } rolesList.DataSource = roles; rolesList.DataBind(); }
public void DeleteRoleTest4() { try { RainbowRoleProvider provider = Roles.Provider as RainbowRoleProvider; RainbowRole editors = provider.GetRoleByName("Rainbow", "editors"); provider.DeleteRole("invalidApp", editors.Id, true); Assert.Fail(); } catch (RainbowRoleProviderException) {} catch (Exception ex) { Console.WriteLine(ex.Message); Assert.Fail("Error in DeleteRoleTest4" + ex.Message, ex); } }
public void AddUsersToRolesTest6() { try { RainbowRoleProvider provider = Roles.Provider as RainbowRoleProvider; RainbowUser user = ( RainbowUser )Membership.GetUser("*****@*****.**"); Guid[] users = new Guid[1]; users[0] = user.ProviderUserKey; RainbowRole role = provider.GetRoleByName("Rainbow", "clerks"); Guid[] roles = new Guid[1]; roles[0] = role.Id; provider.AddUsersToRoles("Rainbow", users, roles); } catch (Exception ex) { Console.WriteLine(ex.Message); Assert.Fail("Error in AddUsersToRolesTest6" + ex.Message, ex); } }
public void RemoveUsersFromRolesTest6() { try { RainbowRoleProvider provider = Roles.Provider as RainbowRoleProvider; Guid[] users = new Guid[1]; users[0] = new Guid("BE7DC028-7238-45D3-AF35-DD3FE4AEFB7E"); //"*****@*****.**"; RainbowRole editors = provider.GetRoleByName("Rainbow", "salesman"); Guid[] roles = new Guid[1]; roles[0] = editors.Id; provider.RemoveUsersFromRoles("Rainbow", users, roles); Assert.Fail(); } catch (RainbowRoleProviderException) {} catch (Exception ex) { Console.WriteLine(ex.Message); Assert.Fail("Error in RemoveUsersFromRolesTest6" + ex.Message, ex); } }
/// <summary> /// The BindData helper method is used to bind the list of /// security roles for this portal to an asp:datalist server control /// </summary> private void BindData() { // add the role name to the title if (roleId != Guid.Empty) { RainbowRoleProvider roleProvider = ( RainbowRoleProvider )System.Web.Security.Roles.Provider; RainbowRole role = roleProvider.GetRoleById(roleId); title.InnerText = General.GetString("ROLE_MEMBERSHIP") + role.Name; } // Get the portal's roles from the database UsersDB users = new UsersDB(); // bind users in role to DataList usersInRole.DataSource = users.GetRoleMembers(roleId); usersInRole.DataBind(); // bind all portal users to dropdownlist allUsers.DataSource = users.GetUsers(); allUsers.DataBind(); }
public void RemoveUsersFromRolesTest7() { try { RainbowRoleProvider provider = Roles.Provider as RainbowRoleProvider; Guid userId = new Guid("34ADB714-92B0-47ff-B5AF-5DB2E0D124A9"); // [email protected]; Guid[] users = new Guid[] { userId }; RainbowRole editors = provider.GetRoleByName("Rainbow", "editors"); Guid[] roles = new Guid[1]; roles[0] = editors.Id; provider.AddUsersToRoles("Rainbow", users, roles); Assert.IsTrue(provider.IsUserInRole("Rainbow", userId, editors.Id)); provider.RemoveUsersFromRoles("Rainbow", users, roles); Assert.IsFalse(provider.IsUserInRole("Rainbow", userId, editors.Id)); } catch (Exception ex) { Console.WriteLine(ex.Message); Assert.Fail("Error in RemoveUsersFromRolesTest7" + ex.Message, ex); } }
/// <summary> /// Handles the ItemDataBound event of the RolesList control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.DataListItemEventArgs"/> instance containing the event data.</param> protected void RolesList_ItemDataBound(object sender, DataListItemEventArgs e) { // 20/7/2004 changed by Mario Endara [email protected] // don't let the user to edit or delete the role "Admins" // the rolename is an hyperlink to the list of users of the role Control dl = e.Item.FindControl("ImageButton1"); Control d2 = e.Item.FindControl("ImageButton2"); HyperLink d3 = ( HyperLink )e.Item.FindControl("Name"); RainbowRole role = (( RainbowRole )e.Item.DataItem); // Added by Mario Endara <*****@*****.**> 2004/11/04 // if the user is not member of the "Admins" role, he can´t access to the members of the Admins role // added mID by Mario Endara <*****@*****.**> to support security check (2004/11/27) if ((d3 != null) && (PortalSecurity.IsInRoles("Admins") == true || role.Name != "Admins")) { d3.NavigateUrl = HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Roles/SecurityRoles.aspx", PageID, "mID=" + ModuleID + "&roleID=" + role.Id.ToString()); } if (dl != null) { if (role.Name.Equals("Admins")) { dl.Visible = false; } (( ImageButton )dl).Attributes.Add("OnClick", "return confirmDelete()"); } if (d2 != null) { if (role.Name.Equals("Admins")) { d2.Visible = false; } } }
/// <summary> /// The RolesList_ItemCommand server event handler on this page /// is used to handle the user editing and deleting roles /// from the RolesList asp:datalist control /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="T:System.Web.UI.WebControls.DataListCommandEventArgs"/> instance containing the event data.</param> protected void rolesList_ItemCommand(object source, DataListCommandEventArgs e) { //http://sourceforge.net/tracker/index.php?func=detail&aid=828580&group_id=66837&atid=515929 UsersDB users = new UsersDB(); // Apply changes RainbowRole selectedRole = ( RainbowRole )e.Item.DataItem; bool enable = true; // enable add - bja if (e.CommandName == "edit") { // Set editable list item index if "edit" button clicked next to the item rolesList.EditItemIndex = e.Item.ItemIndex; // disable the add function enable = false; // Repopulate the datalist control BindData(); } else if (e.CommandName == "apply") { string _roleName = (( TextBox )e.Item.FindControl("roleName")).Text; // update database users.UpdateRole(selectedRole.Id, _roleName, portalSettings.PortalAlias); // Disable editable list item access rolesList.EditItemIndex = -1; // Repopulate the datalist control BindData(); } else if (e.CommandName == "delete") { // [email protected]: 30th May 2004: Added Try And Catch To Delete Role // update database try { users.DeleteRole(new Guid(e.CommandArgument.ToString())); } catch { labelError.Visible = true; } // End of [email protected] Update // Ensure that item is not editable rolesList.EditItemIndex = -1; // Repopulate list BindData(); } else if (e.CommandName == "members") { string _roleId = ((System.Web.UI.WebControls.Label)e.Item.FindControl("roleId")).Text; // Role names shouldn't be editable, it's not supported by the Roles Provider API //// Save role name changes first //users.UpdateRole( selectedRole.Id, _roleName, portalSettings.PortalAlias ); // redirect to edit page Response.Redirect( HttpUrlBuilder.BuildUrl("~/DesktopModules/CoreModules/Roles/SecurityRoles.aspx", PageID, "mID=" + ModuleID.ToString() + "&roleID=" + _roleId)); } // reset the enable state of the add // set add button -- bja AddRoleBtn.Enabled = enable; }