Class UserPermissionSet

Assembly: redb.Core.dll

User permissions set for caching
Contains all user permissions for quick access

public class UserPermissionSet

Inheritance

ObjectUserPermissionSet

Properties

CreatedAt

Permission set creation time

public DateTimeOffset CreatedAt { get; set; }

ExpiresAt

Cache expiration time

public DateTimeOffset ExpiresAt { get; set; }

GlobalPermissions

Global permissions (for all objects)

public PermissionFlags GlobalPermissions { get; set; }

IsExpired

Check if cache is expired

public bool IsExpired { get; }

ObjectPermissions

Permissions on specific objects

public Dictionary<long, PermissionFlags> ObjectPermissions { get; set; }

SchemePermissions

Permissions on schemes

public Dictionary<long, PermissionFlags> SchemePermissions { get; set; }

UserId

User ID

public long UserId { get; set; }

Version

Cache version (for invalidation)

public long Version { get; set; }

Methods

AddObjectPermission(long, PermissionFlags)

Add permission on object

public void AddObjectPermission(long objectId, PermissionFlags permissions)

AddSchemePermission(long, PermissionFlags)

Add permission on scheme

public void AddSchemePermission(long schemeId, PermissionFlags permissions)

CanPerformOperation(long, long, PermissionFlags)

Check if user can perform operation on object

public bool CanPerformOperation(long objectId, long schemeId, PermissionFlags requiredPermission)

ExtendExpiration(TimeSpan)

Extend cache lifetime

public void ExtendExpiration(TimeSpan extension)

GetPermissionsForObject(long, long)

Get permissions for object considering hierarchy

public PermissionFlags GetPermissionsForObject(long objectId, long schemeId)

GetStatistics()

Get cache statistics

public CacheStatistics GetStatistics()

Invalidate()

Invalidate cache (set as expired)

public void Invalidate()

SetGlobalPermissions(PermissionFlags)

Set global permissions

public void SetGlobalPermissions(PermissionFlags permissions)