67 lines
2.0 KiB
C#
67 lines
2.0 KiB
C#
using ModelTools.Models;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace ModelTools.Interfaces
|
||
{
|
||
/// <summary>
|
||
/// Интерфейс для аутентификации пользователя и проверки доступа к операциям для пользователя
|
||
/// </summary>
|
||
public interface ISecurityManager
|
||
{
|
||
/// <summary>
|
||
/// Аутентифицированный пользователь
|
||
/// </summary>
|
||
public Guid? User { get; set; }
|
||
|
||
/// <summary>
|
||
/// Список ролей аутентифицированного пользователь
|
||
/// </summary>
|
||
public List<Guid> Roles { get; set; }
|
||
|
||
/// <summary>
|
||
/// Выполнена ли аутентификация
|
||
/// </summary>
|
||
public bool IsAuth { get; }
|
||
|
||
/// <summary>
|
||
/// Сообщение с причиной не получения доступа
|
||
/// </summary>
|
||
string ErrorMessage { get; set; }
|
||
|
||
/// <summary>
|
||
/// Авторизация пользователя к операции
|
||
/// </summary>
|
||
/// <param name="model">Данные по операции</param>
|
||
/// <returns></returns>
|
||
bool CheckAccess(SecurityManagerCheckAccessModel model);
|
||
|
||
/// <summary>
|
||
/// Проверка наличия старотвых данных для работы с ситемой
|
||
/// </summary>
|
||
void CheckStartDataSource();
|
||
|
||
/// <summary>
|
||
/// Аутентификация пользователя
|
||
/// </summary>
|
||
/// <param name="login"></param>
|
||
/// <param name="password"></param>
|
||
/// <returns></returns>
|
||
Task LoginAsync(string login, string password);
|
||
|
||
/// <summary>
|
||
/// Выход из системы
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
Task LogoutAsync();
|
||
|
||
/// <summary>
|
||
/// Смена пароля
|
||
/// </summary>
|
||
/// <param name="login"></param>
|
||
/// <param name="oldPassword"></param>
|
||
/// <param name="newPassword"></param>
|
||
Task ChangePassword(string login, string oldPassword, string newPassword);
|
||
}
|
||
} |