/// <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();
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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();
        }
Пример #6
0
        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;
        }