В настоящее время я работаю над многопользовательским веб-приложением saas с использованием aspboilerplate и хотел бы реализовать управление разрешениями , но у меня возникла небольшая путаница.
Во-первых, в чем разница между MultitenancySides.Host
и MultitenancySides.Tenant
, которые я нашел здесь ....
public override void SetPermissions(IPermissionDefinitionContext context)
{
context.CreatePermission(PermissionNames.Pages_Users, L("Users"));
context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));
context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);
context.CreatePermission(PermissionNames.Pages_Events, L("Events"), multiTenancySides: MultiTenancySides.Tenant);
}
Во-вторых, как [AbpAuthorize]
отличается от
[AbpAuthorize(PermissionNames.Pages_Tenants)]
Я нашел их в службе событий ( первая ссылка и вторая ссылка ),
[AbpAuthorize]
public class EventAppService : EventCloudAppServiceBase, IEventAppService
{
private readonly IEventManager _eventManager;
private readonly IRepository<Event, Guid> _eventRepository;
и в TenantService
[AbpAuthorize(PermissionNames.Pages_Tenants)]
public class TenantAppService : AsyncCrudAppService<Tenant, TenantDto, int, PagedResultRequestDto, CreateTenantDto, TenantDto>, ITenantAppService
{
private readonly TenantManager _tenantManager;
Вот то, что я хочу и ожидаю для реализации разрешений в моем Multitenant Saas (Core + Angualr SPA) ... Будут различные функции (скажем, модули), включая Event (CRUD
), Библиотека (CRUD
), Экзамен (CRUD
), Результат (CRUD
), Посещаемость (CRUD
), и я хотел бы иметь разрешение на полный доступ (CRUD
) для superadmin арендатора (по умолчанию назначается приарендатор), а затем superadmin может создать роль (назначенный модуль и разрешение (CRUD
) для конкретного пользователя).МОДУЛЬ).
Для простоты, если в системе имеется модуль / функция Attendance, по умолчанию у Superadmin
арендатора будет полный доступ CRUD
, тогда как если роль Staff
создана и ограничена CR
, но не разрешенадо UD
.
Я прошел это руководство, но не смог разобраться.
Спасибо.