Table of Contents

Class UserPermissionStore

Namespace
Uncreated.Warfare.Players.Permissions
Assembly
Uncreated.Warfare.dll
[GenerateRpcSource]
[RpcGeneratedProxyType(TypeSetupMethodName = "__ModularRpcsGeneratedSetupStaticGeneratedProxy")]
public class UserPermissionStore : IAsyncDisposable, IHostedService, IEventListener<PlayerLeft>
Inheritance
UserPermissionStore
Implements
Inherited Members

Constructors

UserPermissionStore(IUserDataDbContext, WarfareModule, ILogger<UserPermissionStore>, IPlayerService, Func<DutyService>)

public UserPermissionStore(IUserDataDbContext dbContext, WarfareModule module, ILogger<UserPermissionStore> logger, IPlayerService playerService, Func<DutyService> dutyService)

Parameters

dbContext IUserDataDbContext
module WarfareModule
logger ILogger<UserPermissionStore>
playerService IPlayerService
dutyService Func<DutyService>

Properties

DefaultPermissionGroup

The group that all players implicitly are a member of. Adding them to this group manually does nothing.

public PermissionGroup? DefaultPermissionGroup { get; }

Property Value

PermissionGroup

PermissionGroups

List of all permission groups from config.

public IReadOnlyList<PermissionGroup> PermissionGroups { get; }

Property Value

IReadOnlyList<PermissionGroup>

Methods

AddPermissionAsync(CSteamID, PermissionBranch, CancellationToken)

Add an individual permission to player.

public virtual Task<bool> AddPermissionAsync(CSteamID player, PermissionBranch permission, CancellationToken token = default)

Parameters

player CSteamID
permission PermissionBranch
token CancellationToken

Returns

Task<bool>

true if the permission wasn't already there.

AddPermissionGroupAsync(CSteamID, string, CancellationToken)

Add a permission group to player.

public virtual Task<bool> AddPermissionGroupAsync(CSteamID player, string permissionGroupId, CancellationToken token = default)

Parameters

player CSteamID
permissionGroupId string
token CancellationToken

Returns

Task<bool>

true if the group wasn't already there.

AddPermissionGroupsAsync(CSteamID, IEnumerable<string>, CancellationToken)

Add multiple permission groups to player.

public virtual Task<int> AddPermissionGroupsAsync(CSteamID player, IEnumerable<string> permissionGroupIds, CancellationToken token = default)

Parameters

player CSteamID
permissionGroupIds IEnumerable<string>
token CancellationToken

Returns

Task<int>

Number of groups that weren't already present.

AddPermissionsAsync(CSteamID, IEnumerable<PermissionBranch>, CancellationToken)

Add multiple individual permissions to player.

public virtual Task<int> AddPermissionsAsync(CSteamID player, IEnumerable<PermissionBranch> permissions, CancellationToken token = default)

Parameters

player CSteamID
permissions IEnumerable<PermissionBranch>
token CancellationToken

Returns

Task<int>

Number of permissions that weren't already present.

ClearCachedPermissions(ulong)

Clear all cached permissions for a player. If steam64 is 0, all cached permissions will be cleared.

public void ClearCachedPermissions(ulong steam64)

Parameters

steam64 ulong

GetPermissionGroupsAsync(CSteamID, bool, CancellationToken)

Get a list of all permission groups assigned to a player already in order of priority.

public virtual ValueTask<IReadOnlyList<PermissionGroup>> GetPermissionGroupsAsync(CSteamID player, bool forceRedownload = false, CancellationToken token = default)

Parameters

player CSteamID
forceRedownload bool
token CancellationToken

Returns

ValueTask<IReadOnlyList<PermissionGroup>>

GetPermissionsAsync(CSteamID, bool, CancellationToken)

Get a list of all individual permissions assigned to a player.

public virtual ValueTask<IReadOnlyList<PermissionBranch>> GetPermissionsAsync(CSteamID player, bool forceRedownload = false, CancellationToken token = default)

Parameters

player CSteamID
forceRedownload bool
token CancellationToken

Returns

ValueTask<IReadOnlyList<PermissionBranch>>

HasPermissionAsync(ICommandUser, PermissionLeaf, CancellationToken)

Check if a user has permission, or the Superuser permission.

public ValueTask<bool> HasPermissionAsync(ICommandUser user, PermissionLeaf permission, CancellationToken token = default)

Parameters

user ICommandUser
permission PermissionLeaf
token CancellationToken

Returns

ValueTask<bool>

RemovePermissionAsync(CSteamID, PermissionBranch, CancellationToken)

Remove an individual permission from player.

public virtual Task<bool> RemovePermissionAsync(CSteamID player, PermissionBranch permission, CancellationToken token = default)

Parameters

player CSteamID
permission PermissionBranch
token CancellationToken

Returns

Task<bool>

true if more than zero permissions were removed.

RemovePermissionGroupAsync(CSteamID, string, CancellationToken)

Remove a permission group from player.

public virtual Task<bool> RemovePermissionGroupAsync(CSteamID player, string permissionGroupId, CancellationToken token = default)

Parameters

player CSteamID
permissionGroupId string
token CancellationToken

Returns

Task<bool>

true if more than zero groups were removed.

RemovePermissionGroupsAsync(CSteamID, IEnumerable<string>, CancellationToken)

Remove multiple permission groups from player.

public virtual Task<int> RemovePermissionGroupsAsync(CSteamID player, IEnumerable<string> permissionGroupIds, CancellationToken token = default)

Parameters

player CSteamID
permissionGroupIds IEnumerable<string>
token CancellationToken

Returns

Task<int>

Number of groups that were removed.

RemovePermissionsAsync(CSteamID, IEnumerable<PermissionBranch>, CancellationToken)

Remove multiple individual permissions from player.

public virtual Task<int> RemovePermissionsAsync(CSteamID player, IEnumerable<PermissionBranch> permissions, CancellationToken token = default)

Parameters

player CSteamID
permissions IEnumerable<PermissionBranch>
token CancellationToken

Returns

Task<int>

Number of permissions that were removed.