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