Exemple #1
0
 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();
        }
Exemple #3
0
 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();
 }
Exemple #4
0
        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();
            }
        }