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) }
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 }); }