DepartmentProject/DepartmentPortal/Common/ModuleTools/Interfaces/ISecurityManager.cs

67 lines
2.0 KiB
C#
Raw Permalink Normal View History

using ModuleTools.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace ModuleTools.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);
}
}