using AsbCloudApp.Services; using System.Collections.Generic; using System.Threading.Tasks; using System.Threading; using AsbCloudApp.Data.User; namespace AsbCloudApp.Repositories { /// <summary> /// Разрешения на доступ к данным /// </summary> public interface IUserRoleRepository : ICrudRepository<UserRoleDto> { /// <summary> /// получить dto по названиям /// </summary> /// <param name="names"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<UserRoleDto>> GetByNamesAsync(IEnumerable<string> names, CancellationToken token = default); /// <summary> /// получить все вложенные разрешения /// </summary> /// <param name="id"></param> /// <param name="counter"></param> /// <returns></returns> IEnumerable<UserRoleDto> GetNestedById(int id, int counter = 10); /// <summary> /// определяет содержится ли разрешение в одной из указанных ролей /// </summary> /// <param name="rolesIds"></param> /// <param name="permissionName"></param> /// <returns></returns> bool HasPermission(IEnumerable<int> rolesIds, string permissionName); } }