该值一般默认为false。 MultiTenancySides:对于多租户应用,租户或者租主可以使用同一个权限。这是一个Flags枚举,因此一个权限可以用于租户和租主。 featureDependency:可以用于声明一个功能的依赖。因此,只有功能依赖满足了,该权限才会被授予。 2、定义任务分配和任务删除权限 ABP模板项目默认已经在.Core/Authorization/目...
namespaceAbp.Runtime.Session { publicinterfaceIAbpSession { long?UserId{get;} int?TenantId{get;} MultiTenancySidesMultiTenancySide{get;} long?ImpersonatorUserId{get;} int?ImpersonatorTenantId{get;} } } NullAbpSession:实现了空对象模式 usingAbp.MultiTenancy; namespaceAbp.Runtime.Session { /// ...
通常设置为False(默认值)。 5.MultiTenancySides:对租户应用程序,一个权限可以基于租户或者主机(原文:host)。这是个枚举标识,因此权限可以应用于不同方面(原文:Both Sides)。 一个权限可以有父权限和子权限。当然,这不会影响权限检查,它只是在UI层对权限归类有好处。创建authorizationprovider之后,我们应该在模块的Pre...
该值一般默认为false。 MultiTenancySides:对于多租户应用,租户或者租主可以使用同一个权限。这是一个Flags枚举,因此一个权限可以用于租户和租主。 featureDependency:可以用于声明一个功能的依赖。因此,只有功能依赖满足了,该权限才会被授予。 2、定义任务分配和任务删除权限 ABP模板项目默认已经在.Core/Authorization/目...
using Abp.MultiTenancy; namespace Abp.Runtime.Session { public interface IAbpSession { long? UserId { get; } int? TenantId { get; } MultiTenancySides MultiTenancySide { get; } long? ImpersonatorUserId { get; } int? ImpersonatorTenantId { get; } ...
MultiTenancySides:对于多租户应用,租户或者租主可以使用同一个权限。这是一个Flags枚举,因此一个权限可以用于租户和租主。 dependedFeature:可以用于声明一个功能的依赖。因此,只有功能依赖满足了,该权限才会被授予。 一个权限可以有父权限和子权限。虽然这不会影响权限检查,但是在UI上组合权限有所帮助,下面是我自己...
using Abp.MultiTenancy; namespace Abp.Runtime.Session { public interface IAbpSession { long? UserId { get; } int? TenantId { get; } MultiTenancySides MultiTenancySide { get; } long? ImpersonatorUserId { get; } int? ImpersonatorTenantId { get; } ...
MultiTenancySides:对于多租户应用,一个权限可以被租户或租主使用。这是一个Flags枚举,从而权限可以在两端使用。 FeatureDependency:可以用来声明特征的一个依赖。从而,权限只有在特征依赖满足的情况下赋予。它需要一个实现了IFeatureDependency接口的对象。默认的实现类是SimpleFeatureDependency。示例用法: ...
关于这点,可以参考租户管理模块在权限定义时,传递的MultiTenancySides.Host参数。 public class AbpTenantManagementPermissionDefinitionProvider : PermissionDefinitionProvider { public override void Define(IPermissionDefinitionContext context) { var tenantManagementGroup = context.AddGroup(TenantManagementPermissions.Group...
(o => new Permission(o.PageName, L(o.MenuName), L(o.LName), MultiTenancySides.Tenant)); } public IEnumerableConvertHostPermissions(IReadOnlyList systemMenus) { return systemMenus.Select(o => new Permission(o.PageName, L(o.MenuName), L(o.LName), MultiTenancySides.Host)); } #end...