Example #1
0
        public IActionResult ChangePassword([FromBody] object json)
        {
            var JsonString = json.ToString();
            var user       = JsonConvert.DeserializeObject <User>(JsonString);

            var crypto = new CryptographyService();
            var salt   = crypto.GenerateSalt();

            if (IsAdmin())
            {
                user.password    = crypto.CalculateHash(salt, "password");
                user.newPassword = crypto.CalculateHash(salt, user.newPassword);
                user.Salt        = salt;

                if (_userService.ChangePasswordA(user))
                {
                    return(Ok());
                }
                return(StatusCode(500)); //Query failed
            }

            if (user.userID == GetUserID())
            {
                user.password    = crypto.CalculateHash(salt, user.password);
                user.newPassword = crypto.CalculateHash(salt, user.newPassword);
                user.Salt        = salt;

                if (_userService.ChangePassword(user))
                {
                    return(Ok());
                }
                return(StatusCode(500)); //Query failed
            }

            return(Unauthorized()); //Not an Admin or the current user, Unathorized (401)
        }
Example #2
0
        public static void SeedData(this TimeTrackerContext ctx, ModelBuilder modelBuilder)
        {
            var crypto           = new CryptographyService();
            var testSalt         = crypto.GenerateSalt();
            var testPasswordHash = crypto.CalculateHash(testSalt, "Password!");

            modelBuilder.Entity <User>().HasData(
                new User()
            {
                userID    = 1,
                username  = "******",
                firstName = "Adam",
                lastName  = "Admin",
                type      = 'A',
                isActive  = true,
                password  = testPasswordHash,
                Salt      = testSalt
            },
                new User()
            {
                userID    = 2,
                username  = "******",
                firstName = "Steve",
                lastName  = "Jobs",
                type      = 'I',
                isActive  = true,
                password  = testPasswordHash,
                Salt      = testSalt
            },
                new User()
            {
                userID    = 3,
                username  = "******",
                firstName = "Normal",
                lastName  = "User",
                type      = 'S',
                isActive  = true,
                password  = testPasswordHash,
                Salt      = testSalt
            });
            modelBuilder.Entity <Group>().HasData(
                new Group()
            {
                groupID   = 1,
                groupName = "Test Group 1",
                projectID = 1,
                isActive  = true
            });
            modelBuilder.Entity <Project>().HasData(
                new Project()
            {
                projectID   = 1,
                projectName = "Test Project 1",
                description = "This is the first test project",
                CourseID    = 1,
                isActive    = true
            });
            modelBuilder.Entity <Course>().HasData(
                new Course()
            {
                courseID     = 1,
                courseName   = "Test Course",
                description  = "This is a test course for testing.",
                InstructorId = 2,
                isActive     = true
            });

            modelBuilder.Entity <UserGroup>()
            .HasData(new UserGroup()
            {
                userID = 3, groupID = 1
            });
            modelBuilder.Entity <UserCourse>()
            .HasData(new UserCourse()
            {
                userID = 3, courseID = 1
            });
        }