Пример #1
0
 public void CheckPassword(UserSubject user, string password)
 {
     if (user.Password != password) // пока и так сойдет
     {
         throw new UserMgrException("Неверный пароль");
     }
 }
Пример #2
0
 public void RemoveRoleFromUser(UserSubject sub, UserRole role)
 {
     if (UsersRoles.ContainsKey(sub.Id))
     {
         UsersRoles[sub.Id].Remove(role.Id);
     }
 }
Пример #3
0
 public void Logout(bool closeSession = true)
 {
     if (closeSession)
     {
         Sessions.CloseSession(SessionId);
     }
     CurrentUser = null;
 }
Пример #4
0
 public void AddRoleToUser(UserSubject sub, UserRole role)
 {
     if (!UsersRoles.ContainsKey(sub.Id))
     {
         UsersRoles.Add(sub.Id, new HashSet <int>()
         {
             role.Id
         });
     }
     else
     {
         UsersRoles[sub.Id].Add(role.Id);
     }
 }
Пример #5
0
        public UserSubject Registrate(string name, string password, UserType type = UserType.User)
        {
            if (Users.Any(u => u.Name == name))
            {
                throw new UserMgrException($"Пользователь с именем {name} уже существует");
            }
            if (!Regex.IsMatch(name, @"^[a-zа-я][a-zа-я0-9]{3,20}$", RegexOptions.IgnoreCase))
            {
                throw new UserMgrException($"Имя пользователя {name} имеет неверный формат");
            }
            if (!Regex.IsMatch(password, @"^[a-zA-Z0-9]{5,30}$"))
            {
                throw new UserMgrException("Пароль имеет неверный формат");
            }

            int id = Users.Count > 0 ? Users[Users.Count - 1].Id + 1 : 0;

            var user = new UserSubject(id, name, password, type);

            Users.Add(user);

            return(user);
        }
Пример #6
0
 public void Remove(UserSubject user)
 {
     Users.Remove(user);
 }
Пример #7
0
 public string GetSessionId(UserSubject user, UserRole role) => $"{user.Id}-{role.Id}";
Пример #8
0
 public void Login(string user, string password)
 {
     CurrentUser = Umgr.Login(user, password);
 }