/// <summary>
        /// The GetRoles method returns a list of roles for the user.
        /// </summary>
        /// <param name="email">The email.</param>
        /// <param name="portalAlias">The portal alias.</param>
        /// <returns>A <code>IList&lt;RainbowRole&gt;</code> containing the user's roles</returns>
        public IList <RainbowRole> GetRoles(string email, string portalAlias)
        {
            string      userName = MembershipProvider.GetUserNameByEmail(portalAlias, email);
            RainbowUser user     = (RainbowUser)MembershipProvider.GetUser(portalAlias, userName, true);

            return(RoleProvider.GetRolesForUser(portalAlias, user.ProviderUserKey));
        }
        /// <summary>
        /// UpdateUser
        /// This overload allow to change identity of the user
        /// </summary>
        /// <param name="oldUserID">The old user ID.</param>
        /// <param name="userID">The user ID.</param>
        /// <param name="name">The name.</param>
        /// <param name="company">The company.</param>
        /// <param name="address">The address.</param>
        /// <param name="city">The city.</param>
        /// <param name="zip">The zip.</param>
        /// <param name="countryID">The country ID.</param>
        /// <param name="stateID">The state ID.</param>
        /// <param name="phone">The phone.</param>
        /// <param name="fax">The fax.</param>
        /// <param name="email">The email.</param>
        /// <param name="sendNewsletter">if set to <c>true</c> [send newsletter].</param>
        public void UpdateUser(Guid oldUserID, Guid userID, string name, string company, string address,
                               string city, string zip, string countryID, int stateID,
                               string phone, string fax, string email, bool sendNewsletter)
        {
            if (oldUserID != userID)
            {
                throw new ApplicationException("UpdateUser: oldUserID != userID");
            }

            RainbowUser user = MembershipProvider.GetUser(userID, true) as RainbowUser;

            user.Email          = email;
            user.Name           = name;
            user.Company        = company;
            user.Address        = address;
            user.Zip            = zip;
            user.City           = city;
            user.CountryID      = countryID;
            user.StateID        = stateID;
            user.Fax            = fax;
            user.Phone          = phone;
            user.SendNewsletter = sendNewsletter;

            MembershipProvider.UpdateUser(user);
        }
        /// <summary>
        /// Adds the user.
        /// </summary>
        /// <param name="fullName">The full name.</param>(6)
        /// <param name="email">The email.</param>
        /// <param name="password">The password.</param>
        /// <returns></returns>
        public Guid AddUser(string fullName, string email, string password)
        {
            Guid newUserId = AddUser(email, string.Empty, string.Empty, string.Empty,
                                     string.Empty, string.Empty, 0, string.Empty, string.Empty, password, email, false);
            RainbowUser user = MembershipProvider.GetUser(newUserId, false) as RainbowUser;

            user.Name = fullName;
            MembershipProvider.UpdateUser(user);
            return(newUserId);
        }
        public override bool IsUserInRole( string username, string roleName ) {

            RainbowUser user = ( RainbowUser )Membership.GetUser( username );

            if ( user == null ) {
                throw new RainbowRoleProviderException( "User doesn't exist" );
            }

            RainbowRole role = GetRoleByName( ApplicationName, roleName );

            return IsUserInRole( ApplicationName, user.ProviderUserKey, role.Id );
        }
        public override string[] GetRolesForUser( string username ) {

            RainbowUser user = ( RainbowUser )Membership.GetUser( username );

            IList<RainbowRole> roles = GetRolesForUser( ApplicationName, user.ProviderUserKey );

            string[] result = new string[roles.Count];

            for ( int i = 0; i < roles.Count; i++ ) {
                result[i] = roles[i].Name;
            }

            return result;            
        }
        public void UpdateUserTest2()
        {
            try {
                RainbowUser user = new RainbowUser(Membership.Provider.Name, "invalidUserName", Guid.NewGuid(), "*****@*****.**", "question", "answer", true, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.MinValue);

                Membership.UpdateUser(user);

                Assert.Fail("UpdateUser didn't throw an exception even though userName was invalid");
            }
            catch (RainbowMembershipProviderException) {
            }
            catch (Exception ex) {
                Console.WriteLine(ex.Message + ex.StackTrace);
                Assert.Fail("Error in UpdateUserTest1", ex);
            }
        }
        /// <summary>
        /// Gets the items.
        /// </summary>
        private void GetItems()
        {
            string status = "Dialing...";

            try
            {
                int  portalID = portalSettings.PortalID;
                Guid userID   = Guid.Empty;

                UsersDB     u = new UsersDB();
                RainbowUser s = u.GetSingleUser(PortalSettings.CurrentUser.Identity.Email);
                try
                {
                    userID = (Guid)s.ProviderUserKey;
                }
                finally
                {
                    //   s.Close(); //by Manu, fixed bug 807858
                }

                ServiceResponseInfo responseInfo;
                responseInfo =
                    ServiceHelper.CallService(portalID, userID, Path.ApplicationFullPath, ref requestInfo, (Page)Page);
                status = responseInfo.ServiceStatus;
                if (status != "OK")
                {
                    if (status.IndexOf("404") > 0)
                    {
                        lblStatus.Text = status + "<br>" + "URL: " + requestInfo.Url;
                    }
                    else
                    {
                        lblStatus.Text = "WARNING! Service status: " + status;
                    }
                }

                DataSet ds = FillPortalDS(ref responseInfo);
                DataGrid1.DataSource = ds;
                DataGrid1.DataBind();
            }
            catch (Exception ex)
            {
                lblStatus.Text = "FATAL ERROR! Problem: " + ex.Message + ". Service status: " + status;
                return;
            }
        }
Beispiel #8
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);
            }
        }
        /// <summary>
        /// UsersDB.Login() Method.
        /// The Login method validates a email/password hash pair against credentials
        /// stored in the users database.  If the email/password hash pair is valid,
        /// the method returns user's name.
        /// </summary>
        /// <param name="email">The email.</param>
        /// <param name="password">The password.</param>
        /// <returns></returns>
        /// <remarks>UserLogin Stored Procedure</remarks>
        public MembershipUser Login(string email, string password)
        {
            string userName = MembershipProvider.GetUserNameByEmail(CurrentPortalSettings.PortalAlias, email);

            if (string.IsNullOrEmpty(userName))
            {
                return(null);
            }
            RainbowUser user    = ( RainbowUser )MembershipProvider.GetUser(userName, true);
            bool        isValid = MembershipProvider.ValidateUser(user.UserName, password);

            if (isValid)
            {
                return(user);
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// The usersInRole_ItemCommand server event handler on this page
        /// is used to handle the user editing and deleting roles
        /// from the usersInRole 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 usersInRole_ItemCommand(object sender, DataListCommandEventArgs e)
        {
            UsersDB users = new UsersDB();

            Label lblUserEmail = (Label)e.Item.FindControl("lblUserEmail");

            RainbowUser user = ( RainbowUser )Membership.GetUser(lblUserEmail.Text);

            if (e.CommandName == "delete")
            {
                // update database
                users.DeleteUserRole(roleId, user.ProviderUserKey);

                // Ensure that item is not editable
                usersInRole.EditItemIndex = -1;

                // Repopulate list
                BindData();
            }
        }
        /// <summary>
        /// UpdateUser
        /// Autogenerated by CodeWizard 04/04/2003 17.55.40
        /// </summary>
        /// <param name="userID">The user ID.</param>
        /// <param name="name">The name.</param>
        /// <param name="company">The company.</param>
        /// <param name="address">The address.</param>
        /// <param name="city">The city.</param>
        /// <param name="zip">The zip.</param>
        /// <param name="countryID">The country ID.</param>
        /// <param name="stateID">The state ID.</param>
        /// <param name="phone">The phone.</param>
        /// <param name="fax">The fax.</param>
        /// <param name="password">The password.</param>
        /// <param name="email">The email.</param>
        /// <param name="sendNewsletter">if set to <c>true</c> [send newsletter].</param>
        public void UpdateUser(Guid userID, string name, string company, string address, string city,
                               string zip, string countryID, int stateID, string phone,
                               string fax, string password, string email, bool sendNewsletter)
        {
            RainbowUser user = MembershipProvider.GetUser(userID, true) as RainbowUser;

            user.Email          = email;
            user.Name           = name;
            user.Company        = company;
            user.Address        = address;
            user.Zip            = zip;
            user.City           = city;
            user.CountryID      = countryID;
            user.StateID        = stateID;
            user.Fax            = fax;
            user.Phone          = phone;
            user.SendNewsletter = sendNewsletter;

            MembershipProvider.ChangePassword(CurrentPortalSettings.PortalAlias, user.UserName, user.GetPassword(), password);
            MembershipProvider.UpdateUser(user);
        }
        public override void AddUsersToRoles( string[] usernames, string[] roleNames ) {
            Guid[] userIds = new Guid[usernames.Length];
            Guid[] roleIds = new Guid[roleNames.Length];

            RainbowUser user = null;
            for ( int i = 0; i < usernames.Length; i++ ) {
                user = ( RainbowUser )Membership.GetUser( usernames[i] );

                if ( user == null ) {
                    throw new RainbowMembershipProviderException( "User " + usernames[i] + " doesn't exist" );
                }

                userIds[i] = user.ProviderUserKey;
            }

            RainbowRole role = null;
            for ( int i = 0; i < roleNames.Length; i++ ) {
                role = GetRoleByName( ApplicationName, roleNames[i] );
                roleIds[i] = role.Id;
            }

            AddUsersToRoles( ApplicationName, userIds, roleIds );
        }
        public void UpdateUserTest1()
        {
            try {
                RainbowUser user = ( RainbowUser )Membership.GetUser("Tito");

                Assert.AreEqual(user.Email, "*****@*****.**");
                Assert.IsTrue(user.IsApproved);

                user.Email         = "*****@*****.**";
                user.IsApproved    = false;
                user.LastLoginDate = new DateTime(1982, 2, 6);

                Membership.UpdateUser(user);

                user = ( RainbowUser )Membership.GetUser("Tito");
                Assert.AreEqual(user.Email, "*****@*****.**");
                Assert.IsFalse(user.IsApproved);
                Assert.AreEqual(new DateTime(1982, 2, 6), user.LastLoginDate);
            }
            catch (Exception ex) {
                Console.WriteLine(ex.Message + ex.StackTrace);
                Assert.Fail("Error in UpdateUserTest1", ex);
            }
        }
Beispiel #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                BindCountry();
                BindState();

                // Edit check
                if (EditMode)   // Someone requested edit this record
                {
                    //True is use is editing himself, false if is edited by an admin
                    selfEdit = (userName == PortalSettings.CurrentUser.Identity.Email);

                    // Removed by Mario Endara <*****@*****.**> (2004/11/04)
                    //					if (PortalSecurity.IsInRoles("Admins") || selfEdit)
                    if (PortalSecurity.HasEditPermissions(ModuleID) || PortalSecurity.HasAddPermissions(ModuleID) ||
                        selfEdit)
                    {
                        //We can edit

                        // Hide
                        RequiredPassword.Visible = false;
                        RequiredConfirm.Visible  = false;
                        EditPasswordRow.Visible  = true;
                        SaveChangesBtn.Visible   = true;
                        RegisterBtn.Visible      = false;

                        // Obtain a single row of event information
                        UsersDB accountSystem = new UsersDB();

                        RainbowUser memberUser = accountSystem.GetSingleUser(userName);

                        try {
                            originalUserID    = memberUser.ProviderUserKey;
                            NameField.Text    = memberUser.Name;
                            EmailField.Text   = memberUser.Email;
                            CompanyField.Text = memberUser.Company;
                            AddressField.Text = memberUser.Address;
                            ZipField.Text     = memberUser.Zip;
                            CityField.Text    = memberUser.City;

                            CountryField.ClearSelection();
                            if (CountryField.Items.FindByValue(memberUser.CountryID) != null)
                            {
                                CountryField.Items.FindByValue(memberUser.CountryID).Selected = true;
                            }
                            BindState();
                            StateField.ClearSelection();
                            if (StateField.Items.Count > 0 &&
                                StateField.Items.FindByValue(memberUser.StateID.ToString()) != null)
                            {
                                StateField.Items.FindByValue(memberUser.StateID.ToString()).Selected = true;
                            }

                            FaxField.Text          = memberUser.Fax;
                            PhoneField.Text        = memberUser.Phone;
                            SendNewsletter.Checked = memberUser.SendNewsletter;

                            //stores original password for later check
                            // originalPassword = memberUser.GetPassword();  NOT STILL SUPPORTED
                        }
                        catch (System.ArgumentNullException error) {
                            // no  existe el usuario;
                        }
                    }
                    else
                    {
                        //We do not have rights to do it!
                        PortalSecurity.AccessDeniedEdit();
                    }
                }
                else
                {
                    BindState();

                    //No edit
                    RequiredPassword.Visible = true;
                    RequiredConfirm.Visible  = true;
                    EditPasswordRow.Visible  = false;
                    SaveChangesBtn.Visible   = false;
                    RegisterBtn.Visible      = true;
                }

                string termsOfService = portalSettings.GetTermsOfService;

                //Verify if we have to show conditions
                if (termsOfService.Length != 0)
                {
                    //Shows conditions
                    FieldConditions.Text  = termsOfService;
                    ConditionsRow.Visible = true;
                }
                else
                {
                    //Hides conditions
                    ConditionsRow.Visible = false;
                }
            }
        }
Beispiel #15
0
        /// <summary>
        /// Handles the Click event of the SendPasswordBtn control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void SendPasswordBtn_Click(object sender, EventArgs e)
        {
            if (email.Text == string.Empty)
            {
                Message.Text    = "Please enter you email address";
                Message.TextKey = "SIGNIN_ENTER_EMAIL_ADDR";
                return;
            }
            // generate random password
            string randomPassword = RandomPassword.Generate(8, 10);

            CryptoHelper crypthelp = new CryptoHelper();
            UsersDB      usersDB   = new UsersDB();

            //Obtain single row of User information
            RainbowUser user = usersDB.GetSingleUser(email.Text);

            if (user != null)
            {
                string Pswrd;
                string AppName   = portalSettings.PortalName;
                bool   encrypted = Config.EncryptPassword;
                string Name      = user.Email;
                if (encrypted)
                {
                    Pswrd = randomPassword;
                    crypthelp.ResetPassword(Name, randomPassword);
                }
                else
                {
                    Pswrd = user.GetPassword();
                }
                crypthelp.ResetPassword(Name, randomPassword);
                string LoginUrl = Path.ApplicationFullPath + "DesktopModules/Admin/Logon.aspx?Usr="******"&Pwd=" +
                                  Pswrd + "&Alias=" + portalSettings.PortalAlias;
                MailMessage mail = new MailMessage();

                // [email protected]
                // Date 19 March 2003
                // We have to use a correct sender address,
                // because most SMTP servers reject it otherwise
                //jes1111 - mail.From = ConfigurationSettings.AppSettings["EmailFrom"].ToString();
                mail.From    = Config.EmailFrom;
                mail.To      = email.Text;
                mail.Subject = AppName + " - " + General.GetString("SIGNIN_SEND_PWD", "Send me password", this);

                StringBuilder sb = new StringBuilder();

                sb.Append(Name);
                sb.Append(",");
                sb.Append("\r\n\r\n");
                sb.Append(General.GetString("SIGNIN_PWD_REQUESTED", "This is the password you requested", this));
                sb.Append(" ");
                sb.Append(Pswrd);
                sb.Append("\r\n\r\n");
                sb.Append(General.GetString("SIGNIN_THANK_YOU", "Thanks for your visit.", this));
                sb.Append(" ");
                sb.Append(AppName);
                sb.Append("\r\n\r\n");
                sb.Append(General.GetString("SIGNIN_YOU_CAN_LOGIN_FROM", "You can login from", this));
                sb.Append(":");
                sb.Append("\r\n");
                sb.Append(Path.ApplicationFullPath);
                sb.Append("\r\n\r\n");
                sb.Append(General.GetString("SIGNIN_USE_DIRECT_URL", "Or using direct url", this));
                sb.Append("\r\n");
                sb.Append(LoginUrl);
                sb.Append("\r\n\r\n");
                sb.Append(
                    General.GetString("SIGNIN_URL_WARNING",
                                      "NOTE: The address above may not show up on your screen as one line. This would prevent you from using the link to access the web page. If this happens, just use the 'cut' and 'paste' options to join the pieces of the URL.",
                                      this));

                mail.Body       = sb.ToString();
                mail.BodyFormat = MailFormat.Text;

                SmtpMail.SmtpServer = Config.SmtpServer;
                SmtpMail.Send(mail);

                Message.Text =
                    General.GetString("SIGNIN_PWD_WAS_SENT", "Your password was sent to the addess you provided",
                                      this);
                Message.TextKey = "SIGNIN_PWD_WAS_SENT";
            }
            else
            {
                Message.Text =
                    General.GetString("SIGNIN_PWD_MISSING_IN_DB",
                                      "The email you specified does not exists on our database", this);
                Message.TextKey = "SIGNIN_PWD_MISSING_IN_DB";
            }
        }
        /// <summary>
        /// Return the role list the user's in
        /// </summary>
        /// <param name="userId">The User Id</param>
        /// <param name="portalAlias">The portal alias</param>
        /// <returns></returns>
        public IList <RainbowRole> GetRolesByUser(Guid userId, string portalAlias)
        {
            RainbowUser user = ( RainbowUser )MembershipProvider.GetUser(userId, true);

            return(RoleProvider.GetRolesForUser(portalAlias, user.ProviderUserKey));
        }
Beispiel #17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                //Remove validation for Windows users
                if (HttpContext.Current != null && Context.User is WindowsPrincipal)
                {
                    ValidEmail.Visible = false;
                    EmailLabel.TextKey = "WINDOWS_USER_NAME";
                    EmailLabel.Text    = "Windows User Name";
                }

                // TODO: Jonathan - need to bring in country functionality from esperantus or new somehow?
                BindCountry();

                // TODO: Fix this
                // More esperanuts country stuff...
                // CountryInfo country = CountryInfo.CurrentCountry;
                //if (country != null && CountryField.Items.FindByValue(country.Name) != null)
                //	CountryField.Items.FindByValue(country.Name).Selected = true;
                BindState();


                // Edit check
                if (EditMode)   // Someone requested edit this record
                {
                    //True is use is editing himself, false if is edited by an admin
                    selfEdit = (userName == PortalSettings.CurrentUser.Identity.UserName);

                    // Removed by Mario Endara <*****@*****.**> (2004/11/04)
                    //					if (PortalSecurity.IsInRoles("Admins") || selfEdit)
                    if (PortalSecurity.HasEditPermissions(ModuleID) || PortalSecurity.HasAddPermissions(ModuleID) || selfEdit)
                    {
                        //We can edit

                        // Hide
                        RequiredPassword.Visible = false;
                        RequiredConfirm.Visible  = false;
                        EditPasswordRow.Visible  = true;
                        SaveChangesBtn.Visible   = true;
                        RegisterBtn.Visible      = false;

                        // Obtain a single row of event information
                        UsersDB accountSystem = new UsersDB();

                        RainbowUser memberUser = accountSystem.GetSingleUser(userName);

                        try {
                            NameField.Text    = memberUser.Name;
                            EmailField.Text   = memberUser.Email;
                            CompanyField.Text = memberUser.Company;
                            AddressField.Text = memberUser.Address;
                            ZipField.Text     = memberUser.Zip;
                            CityField.Text    = memberUser.City;

                            CountryField.ClearSelection();
                            if (CountryField.Items.FindByValue(memberUser.CountryID) != null)
                            {
                                CountryField.Items.FindByValue(memberUser.CountryID).Selected = true;
                            }
                            BindState();
                            StateField.ClearSelection();
                            if (StateField.Items.Count > 0 &&
                                StateField.Items.FindByValue(memberUser.StateID.ToString()) != null)
                            {
                                StateField.Items.FindByValue(memberUser.StateID.ToString()).Selected = true;
                            }

                            FaxField.Text          = memberUser.Fax;
                            PhoneField.Text        = memberUser.Phone;
                            SendNewsletter.Checked = memberUser.SendNewsletter;

                            //stores original password for later check
                            originalPassword = memberUser.GetPassword();
                            originalUserID   = memberUser.ProviderUserKey;
                        }
                        catch (System.ArgumentNullException error) {
                            // user doesn't exist
                        }
                    }
                    else
                    {
                        //We do not have rights to do it!
                        PortalSecurity.AccessDeniedEdit();
                    }
                }
                else
                {
                    BindState();

                    //No edit
                    RequiredPassword.Visible = true;
                    RequiredConfirm.Visible  = true;
                    EditPasswordRow.Visible  = false;
                    SaveChangesBtn.Visible   = false;
                    RegisterBtn.Visible      = true;
                }

                string termsOfService = portalSettings.GetTermsOfService;

                //Verify if we have to show conditions
                if (termsOfService.Length != 0)
                {
                    //Shows conditions
                    FieldConditions.Text  = termsOfService;
                    ConditionsRow.Visible = true;
                }
                else
                {
                    //Hides conditions
                    ConditionsRow.Visible = false;
                }
            }
        }
        /// <summary>
        /// Retrieves a <code>MembershipUser</code>.
        /// </summary>
        /// <param name="userName">the user's email</param>
        /// <returns></returns>
        public RainbowUser GetSingleUser(string userName)
        {
            RainbowUser user = MembershipProvider.GetUser(CurrentPortalSettings.PortalAlias, userName, true) as RainbowUser;

            return(user);
        }