Esempio n. 1
0
        public void LoginUser(string username, string password)
        {
            UserItem user = null;

            try
            {
                user = _db.GetUserItem(username);
            }
            catch (Exception)
            {
                throw new Exception("Either the username or the password is invalid.");
            }

            PasswordManager passHelper = new PasswordManager(password, user.Salt);

            if (!passHelper.Verify(user.Hash))
            {
                throw new Exception("Either the username or the password is invalid.");
            }

            _roleMgr = new RoleManager(user);
        }
Esempio n. 2
0
        public void RegisterUser(User userModel)
        {
            UserItem userItem = null;

            try
            {
                userItem = _db.GetUserItem(userModel.Username);
            }
            catch (Exception)
            {
            }

            if (userItem != null)
            {
                throw new UserExistsException("The username is already taken.");
            }

            if (userModel.Password != userModel.ConfirmPassword)
            {
                throw new PasswordMatchException("The password and confirm password do not match.");
            }

            PasswordManager passHelper = new PasswordManager(userModel.Password);
            UserItem        newUser    = new UserItem()
            {
                FirstName = userModel.FirstName,
                LastName  = userModel.LastName,
                Email     = userModel.Email,
                Username  = userModel.Username,
                Salt      = passHelper.Salt,
                Hash      = passHelper.Hash,
                RoleId    = (int)RoleManager.eRole.Customer
            };

            _db.AddUserItem(newUser);
            LoginUser(newUser.Username, userModel.Password);
        }
        /// <summary>
        /// Creates a user for each role type
        /// </summary>
        /// <param name="db">Database interface used to create the data</param>
        public static void PopulateDatabaseWithUsers(IVendingService db)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                PasswordManager passHelper = new PasswordManager("a");

                db.AddRoleItem(new RoleItem()
                {
                    Id = 1, Name = "Administrator"
                });
                db.AddRoleItem(new RoleItem()
                {
                    Id = 2, Name = "Customer"
                });
                db.AddRoleItem(new RoleItem()
                {
                    Id = 3, Name = "Executive"
                });
                db.AddRoleItem(new RoleItem()
                {
                    Id = 4, Name = "Serviceman"
                });

                UserItem item = new UserItem()
                {
                    FirstName = "Joe",
                    LastName  = "Piscapoe",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    RoleId    = (int)RoleManager.eRole.Administrator
                };
                item.Hash = passHelper.Hash;
                item.Salt = passHelper.Salt;
                item.Id   = db.AddUserItem(item);

                item = new UserItem()
                {
                    FirstName = "John",
                    LastName  = "Doe",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    RoleId    = (int)RoleManager.eRole.Customer
                };
                item.Hash = passHelper.Hash;
                item.Salt = passHelper.Salt;
                item.Id   = db.AddUserItem(item);

                item = new UserItem()
                {
                    FirstName = "Sally",
                    LastName  = "Mae",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    RoleId    = (int)RoleManager.eRole.Executive
                };
                item.Hash = passHelper.Hash;
                item.Salt = passHelper.Salt;
                item.Id   = db.AddUserItem(item);

                item = new UserItem()
                {
                    FirstName = "Alex",
                    LastName  = "Carol",
                    Username  = "******",
                    Email     = "*****@*****.**",
                    RoleId    = (int)RoleManager.eRole.Serviceman
                };
                item.Hash = passHelper.Hash;
                item.Salt = passHelper.Salt;
                item.Id   = db.AddUserItem(item);

                scope.Complete();
            }
        }