public void InitializeDatabase(WPFOutlookContext context) { if (!context.Database.Exists()) { context.Database.Create(); var salt = EncryptionHelpers.GenerateSalt(); User user = new User { UserId = 1, IsActive = true, Name = "admin", UserName = "******", Salt = salt, Password = EncryptionHelpers.HashPassword("admin", salt) }; context.Users.Add(user); context.Roles.Add(new Role { RoleId = 1, Name = "admin", Users = new List <User> { user } }); context.Roles.Add(new Role { RoleId = 2, Name = "user", Users = new List <User> { user } }); context.Locations.Add(new Location { LocationId = 1, Room = "Room1" }); context.Locations.Add(new Location { LocationId = 2, Room = "Room2" }); context.SaveChanges(); } }
public void CreateUser(UserDTO user, ICollection <GroupDTO> groups, ICollection <RoleDTO> roles) { var salt = EncryptionHelpers.GenerateSalt(); var userItem = Mapper.Map <UserDTO, User>(user); userItem.Salt = salt; userItem.Password = EncryptionHelpers.HashPassword(user.Password, salt); userItem.Roles = new List <Role>(); var convertRoles = Mapper.Map <IEnumerable <RoleDTO>, IEnumerable <Role> >(roles); foreach (var item in convertRoles) { if (_roles.FindById(item.RoleId) != null) { userItem.Roles.Add(_roles.FindById(item.RoleId)); } } userItem.Groups = new List <Group>(); var convertGroups = Mapper.Map <IEnumerable <GroupDTO>, IEnumerable <Group> >(groups); foreach (var item in convertGroups) { if (_groups.FindById(item.GroupId) != null) { userItem.Groups.Add(_groups.FindById(item.GroupId)); } } _users.Create(userItem); _context.SaveChanges(); }
protected override void Seed(Model.WPFOutlookContext context) { foreach (var item in context.Users) { var salt = EncryptionHelpers.GenerateSalt(); item.Salt = salt; item.Password = EncryptionHelpers.HashPassword(item.Password, salt); context.Users.AddOrUpdate(item); } context.SaveChanges(); }
public UserDTO AuthenticateUser(string username, string password) { User user = _users.Get(u => u.UserName.Equals(username) && u.Password.Equals(EncryptionHelpers.HashPassword(password, u.Salt))).FirstOrDefault(); if (user != null && user.IsActive) { using (var transaction = _users.BeginTransaction()) { user = _users.FindById(user.UserId); user.Salt = EncryptionHelpers.GenerateSalt(); user.Password = EncryptionHelpers.HashPassword(password, user.Salt); _users.Save(); transaction.Commit(); } return(Mapper.Map <User, UserDTO>(user)); } else { throw new UnauthorizedAccessException("Wrong credentials."); } }
public void EditUser(UserDTO user, ICollection <GroupDTO> groups, ICollection <RoleDTO> roles) { if (user.UserName != null && user.Password != null) { User userToEdit = _users.FindById(user.UserId); if (user.Name != null) { userToEdit.Name = user.Name; } if ((user.UserName != null || userToEdit.UserName == user.UserName) && CheckUser(user.UserName)) { userToEdit.UserName = user.UserName; } if (user.Password != null && user.Password != userToEdit.Password) { var salt = EncryptionHelpers.GenerateSalt(); userToEdit.Salt = salt; userToEdit.Password = EncryptionHelpers.HashPassword(user.Password, salt); } if (user.IsActive != userToEdit.IsActive) { userToEdit.IsActive = user.IsActive; } var convertRoles = new List <Role>(); if (roles != null) { var convert = Mapper.Map <IEnumerable <RoleDTO>, IEnumerable <Role> >(roles); foreach (var item in convert) { if (_roles.FindById(item.RoleId) != null) { convertRoles.Add(_roles.FindById(item.RoleId)); } } } if (roles.Any()) { userToEdit.Roles = convertRoles; } if (!roles.Any()) { userToEdit.Roles = null; } var convertGroups = new List <Group>(); if (groups != null) { var convert = Mapper.Map <IEnumerable <GroupDTO>, IEnumerable <Group> >(groups); foreach (var item in convert) { if (_groups.FindById(item.GroupId) != null) { convertGroups.Add(_groups.FindById(item.GroupId)); } } } if (groups.Any()) { userToEdit.Groups = convertGroups; } if (!groups.Any()) { userToEdit.Groups = null; } _users.Update(userToEdit); _context.SaveChanges(); } }