Управление разрешениями в aspboilerplate - PullRequest
0 голосов
/ 29 декабря 2018

В настоящее время я работаю над многопользовательским веб-приложением 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.

Я прошел это руководство, но не смог разобраться.

Спасибо.

1 Ответ

0 голосов
/ 29 декабря 2018

Во-первых, в чем разница между MultiTenancySides.Host и MultitenancySides.Tenant?

MultiTenancySides.Host → можно назначать только пользователям хоста (user.TenantId == null).

MultiTenancySides.Tenant → может быть назначено только пользователям Арендатора (user.TenantId != null).

Во-вторых, чем [AbpAuthorize] отличается от [AbpAuthorize(PermissionNames.Pages_Tenants)]?

[AbpAuthorize] → пользователь вошел в систему.

[AbpAuthorize(PermissionNames.Pages_Tenants)] → пользователь вошел в систему и имеет это разрешение.

...