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

67 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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