public void Assignment_UpdateUser_Test()
        {
            //Arrange
            UserSqlDAL dao = new UserSqlDAL(ConnectionString);

            User inputUser = new User();

            inputUser.Password = "******";
            inputUser.Salt     = "NuE0Y6FonAI=";
            inputUser.Role     = "Teacher";
            inputUser.Username = "******";


            dao.CreateUser(inputUser);

            inputUser = dao.GetUser(inputUser.Username);

            inputUser.Role = "Admin";
            dao.UpdateUser(inputUser);

            //Action
            User testUser = dao.GetUser(inputUser.Username);

            //Assert
            Assert.AreEqual(testUser.Role, inputUser.Role);
        }
        public void Assignment_DeleteUser_Test()
        {
            //Arrange
            UserSqlDAL dao = new UserSqlDAL(ConnectionString);

            User inputUser = new User();

            inputUser.Password = "******";
            inputUser.Salt     = "NuE0Y6FonAI=";
            inputUser.Role     = "Teacher";
            inputUser.Username = "******";


            dao.CreateUser(inputUser);

            int test = GetRowCount("users");

            inputUser = dao.GetUser(inputUser.Username);
            //Action
            dao.DeleteUser(inputUser);
            int result = GetRowCount("users");

            //Assert
            Assert.AreEqual(result, test - 1);
        }
示例#3
0
        public ActionResult Login(User model)
        {
            UserSqlDAL userDal = new UserSqlDAL(connectionString);

            User user = userDal.GetUser(model.Email);

            if (user.Email == null || user.Password != model.Password)
            {
                ModelState.AddModelError("invalid-credentials", "An invalid email or password was provided");
                return(View("Login", model));
            }

            //if user clicked on 'cards' or 'decks' before logging in, take them there now
            Session["userid"] = user.Id;
            Session["admin"]  = user.IsAdmin;
            switch (Session["anon"].ToString())
            {
            case "Cards":
                return(RedirectToAction("Index", "Card"));

            case "Decks":
                return(RedirectToAction("Index", "Deck"));

            default:
                return(RedirectToAction("Index", "Home"));
            }
        }
        public void GetUserTest()
        {
            UserSqlDAL dal  = new UserSqlDAL(ConnectionString);
            User       user = dal.GetUser("luteMan");

            Assert.IsNotNull(user);
        }
示例#5
0
        public void ShouldReturnUser()
        {
            UserSqlDAL dao      = new UserSqlDAL(connectionString);
            string     username = "******";
            User       user     = dao.GetUser(username);

            Assert.AreEqual("IvoryUnclerico", user);
        }
        public void Assignment_GetAllUsers_Test()
        {
            //Arrange
            IUserDAL     dao      = new UserSqlDAL(ConnectionString);
            IList <User> testList = new List <User>();

            testList = dao.GetAllUsers();
            //Action
            int results = GetRowCount("users");

            //Assert
            Assert.AreEqual(results, testList.Count);
        }
        public override void Setup()
        {
            base.Setup();
            PasswordHasher hash = new PasswordHasher();

            dao = new UserSqlDAL(ConnectionString, new PasswordHasher());
            string salt = Convert.ToBase64String(hash.GenerateRandomSalt());

            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();
                SqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = @"insert into Roles (roles_Title,role_Description) values ('Admin','Admin control' ),('Users','Generic User')";
                cmd.ExecuteNonQuery();
                cmd.CommandText = @"insert into UserLogin (first_Last_Name,userName,userRole,password,salt) values ('Gerg DinkleBerry','gdeckner','Admin',@password,@salt)";
                cmd.Parameters.AddWithValue("@salt", "RrQlUO2CbmowsGDSpRhXZA==");
                cmd.Parameters.AddWithValue("@password", "RrQlUO2CbmowsGDSpRhXZPGjRy1BEXkN3fdCrNs4xUJjxNcs");

                cmd.ExecuteNonQuery();
            }
        }
示例#8
0
        public ActionResult Register(User model)
        {
            if (!ModelState.IsValid)
            {
                return(View("Register", model));
            }

            UserSqlDAL newUserDAL = new UserSqlDAL(connectionString);
            //attempt to retrieve provided email - cannot duplicate existing
            User newUser = newUserDAL.GetUser(model.Email);

            if (newUser.Email == null)
            {
                newUser.Email    = model.Email;
                newUser.Password = model.Password;
                if (model.DisplayName == null)
                {
                    newUser.DisplayName = model.Email.Substring(0, model.Email.IndexOf('@'));
                }
                else
                {
                    newUser.DisplayName = model.DisplayName;
                }

                newUserDAL.Register(newUser);
                User retriveUser = newUserDAL.GetUser(newUser.Email);

                Session["userid"] = retriveUser.Id;
                Session["admin"]  = retriveUser.IsAdmin;
            }
            else
            {
                ModelState.AddModelError("email-exists", "That email address exists, please contact Admin for password reset if needed.");
                return(View("Register", model));
            }
            return(RedirectToAction("Index", "Home"));
        }
        public void CreateUserTest()
        {
            UserSqlDAL dal  = new UserSqlDAL(ConnectionString);
            User       user = new User();

            //populates our fake user with info
            user.BirthDate = new DateTime(2018, 1, 15);
            user.Email     = "*****@*****.**";
            user.HomeCity  = "pittsburgh";
            user.HomeState = "PA";

            user.PasswordHash = "fake";
            user.Salt         = "testSalt";

            user.SelfDescription   = "testdescription";
            user.Username          = "******";
            user.ListOfInstruments = new List <Instrument>();
            Instrument horn = new Instrument("Horn");

            Instrument violin = new Instrument("Violin");

            Instrument viola = new Instrument("Viola");


            user.ListOfInstruments.Add(horn);
            user.ListOfInstruments.Add(violin);
            user.ListOfInstruments.Add(viola);

            Place firstPlace  = new Place("foo", "bar", DateTime.Today, DateTime.Today);
            Place secondPlace = new Place("fooburgh", "barland", DateTime.Today, DateTime.Today);

            user.ListOfPlaces = new List <Place>();
            user.ListOfPlaces.Add(firstPlace);
            user.ListOfPlaces.Add(secondPlace);

            dal.CreateUser(user);

            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();

                string     cmdText   = "SELECT email FROM users WHERE username = '******'";
                SqlCommand command   = new SqlCommand(cmdText, connection);
                string     userEmail = Convert.ToString(command.ExecuteScalar());

                cmdText = "SELECT ID FROM users WHERE username = '******'";
                command = new SqlCommand(cmdText, connection);
                string userId = Convert.ToString(command.ExecuteScalar());


                cmdText = $"SELECT instrument_name FROM Instruments_Played WHERE user_id = '{userId}' ORDER BY instrument_name ASC";
                command = new SqlCommand(cmdText, connection);
                string userInstrument = Convert.ToString(command.ExecuteScalar());

                cmdText = $"SELECT from_date FROM PLaces WHERE user_id = '{userId}'";
                command = new SqlCommand(cmdText, connection);
                string userDate = Convert.ToString(command.ExecuteScalar());

                Assert.AreEqual("*****@*****.**", $"{userEmail}");
                Assert.AreEqual("Horn", $"{userInstrument}");
                Assert.AreEqual($"{DateTime.Today}", actual: $"{userDate}");
            }
        }
示例#10
0
 public ProfileController(UserSqlDAL userSqlDAL, SurveyAnswerDAL surveyAnswerDAL, FranchiseSqlDAL franchiseSqlDAL)
 {
     this.userSqlDAL      = userSqlDAL;
     this.surveyAnswerDAL = surveyAnswerDAL;
     this.franchiseSqlDAL = franchiseSqlDAL;
 }
示例#11
0
 public SessionAuthProvider(IHttpContextAccessor contextAccessor, UserSqlDAL userDAL)
 {
     this.contextAccessor = contextAccessor;
     this.userDAL         = userDAL;
 }
示例#12
0
        public void UserDALTest()
        {
            string joesUsername = "******";
            string joesPassword = "******";

            User someUser = new User();

            someUser.Username      = joesUsername;
            someUser.Password      = joesPassword;
            someUser.Administrator = false;
            someUser.Researcher    = false;
            someUser.Technician    = false;
            someUser.Partneruser   = false;


            UserSqlDAL dalObject = new UserSqlDAL(connectionString);

            dalObject.SaveUser(someUser);

            //checking if a username exists
            Assert.AreEqual(true, dalObject.UsernameExists(joesUsername));
            Assert.AreEqual(false, dalObject.UsernameExists("000"));

            //checking that a password is correct
            Assert.AreEqual(true, dalObject.PasswordIsCorrect(joesUsername, joesPassword));
            Assert.AreEqual(false, dalObject.PasswordIsCorrect(joesUsername, "000"));
            Assert.AreEqual(false, dalObject.PasswordIsCorrect("000", joesPassword));

            //checking roles for a user
            Assert.AreEqual(false, dalObject.IsAdmin(joesUsername));
            Assert.AreEqual(false, dalObject.IsResearcher(joesUsername));
            Assert.AreEqual(false, dalObject.IsTechnician(joesUsername));
            Assert.AreEqual(false, dalObject.IsPartner(joesUsername));

            //adding and removing roles for a user
            dalObject.AddAdminRole(joesUsername);
            Assert.AreEqual(true, dalObject.IsAdmin(joesUsername));
            Assert.AreEqual(false, dalObject.IsResearcher(joesUsername));
            Assert.AreEqual(false, dalObject.IsTechnician(joesUsername));
            Assert.AreEqual(false, dalObject.IsPartner(joesUsername));

            dalObject.RemoveAdminRole(joesUsername);
            dalObject.AddResearchRole(joesUsername);
            Assert.AreEqual(false, dalObject.IsAdmin(joesUsername));
            Assert.AreEqual(true, dalObject.IsResearcher(joesUsername));
            Assert.AreEqual(false, dalObject.IsTechnician(joesUsername));
            Assert.AreEqual(false, dalObject.IsPartner(joesUsername));

            dalObject.RemoveResearchRole(joesUsername);
            dalObject.AddTechRole(joesUsername);
            Assert.AreEqual(false, dalObject.IsAdmin(joesUsername));
            Assert.AreEqual(false, dalObject.IsResearcher(joesUsername));
            Assert.AreEqual(true, dalObject.IsTechnician(joesUsername));
            Assert.AreEqual(false, dalObject.IsPartner(joesUsername));

            dalObject.RemoveTechRole(joesUsername);
            dalObject.AddPartnerRole(joesUsername);
            Assert.AreEqual(false, dalObject.IsAdmin(joesUsername));
            Assert.AreEqual(false, dalObject.IsResearcher(joesUsername));
            Assert.AreEqual(false, dalObject.IsTechnician(joesUsername));
            Assert.AreEqual(true, dalObject.IsPartner(joesUsername));

            dalObject.RemovePartnerRole(joesUsername);
            Assert.AreEqual(false, dalObject.IsAdmin(joesUsername));
            Assert.AreEqual(false, dalObject.IsResearcher(joesUsername));
            Assert.AreEqual(false, dalObject.IsTechnician(joesUsername));
            Assert.AreEqual(false, dalObject.IsPartner(joesUsername));

            //Changing a user's password
            joesPassword = "******";
            dalObject.ChangeUsersPassword(joesUsername, joesPassword);
            Assert.AreEqual(true, dalObject.PasswordIsCorrect(joesUsername, joesPassword));
        }