public void CheckPassword(UserSubject user, string password) { if (user.Password != password) // пока и так сойдет { throw new UserMgrException("Неверный пароль"); } }
public void RemoveRoleFromUser(UserSubject sub, UserRole role) { if (UsersRoles.ContainsKey(sub.Id)) { UsersRoles[sub.Id].Remove(role.Id); } }
public void Logout(bool closeSession = true) { if (closeSession) { Sessions.CloseSession(SessionId); } CurrentUser = null; }
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); } }
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); }
public void Remove(UserSubject user) { Users.Remove(user); }
public string GetSessionId(UserSubject user, UserRole role) => $"{user.Id}-{role.Id}";
public void Login(string user, string password) { CurrentUser = Umgr.Login(user, password); }