Skip to content
0

katanakit-js / AccessService

Class: AccessService ​

Defined in: src/core/services/access.service.ts:272

AccessService - Singleton facade con Strategy Pattern.

Centraliza el control de acceso (roles y capacidades) delegando el algoritmo concreto en una IAccessStrategy intercambiable. Por defecto usa HierarchicalAccessStrategy.

Example ​

ts
// Uso con la estrategia por defecto (jerárquica)
AccessService.getInstance().useCan({ id: 1, roles: ["admin"] }, "members:manage");

// Cambiar a estrategia plana en runtime
AccessService.getInstance().useSetStrategy(new FlatAccessStrategy());

Methods ​

useCan() ​

ts
useCan(subject, capability): boolean;

Defined in: src/core/services/access.service.ts:358

Whether the subject may perform a capability (delegado a la estrategia activa).

Parameters ​

ParameterType
subject{ [key: string]: unknown; id: string | number; roles: string[]; }
subject.idstring | number
subject.rolesstring[]
capabilitystring

Returns ​

boolean


useCapabilitiesFor() ​

ts
useCapabilitiesFor(role): string[];

Defined in: src/core/services/access.service.ts:329

Effective capabilities of a role (delegado a la estrategia activa).

Parameters ​

ParameterType
rolestring

Returns ​

string[]


useGetStrategy() ​

ts
useGetStrategy(): IAccessStrategy;

Defined in: src/core/services/access.service.ts:322

Returns the currently active strategy.

Returns ​

IAccessStrategy


useHasRole() ​

ts
useHasRole(subject, role): boolean;

Defined in: src/core/services/access.service.ts:351

Exact role membership - no hierarchy involved.

Parameters ​

ParameterType
subject{ [key: string]: unknown; id: string | number; roles: string[]; }
subject.idstring | number
subject.rolesstring[]
rolestring

Returns ​

boolean


useRegisterRole() ​

ts
useRegisterRole(definition): void;

Defined in: src/core/services/access.service.ts:336

Registers (or replaces) a role definition (delegado a la estrategia activa).

Parameters ​

ParameterType
definition{ capabilities: string[]; label: string; rank: number; slug: string; }
definition.capabilitiesstring[]
definition.labelstring
definition.ranknumber
definition.slugstring

Returns ​

void


useResetRoles() ​

ts
useResetRoles(): void;

Defined in: src/core/services/access.service.ts:341

Restores the built-in role registry (delegado a la estrategia activa).

Returns ​

void


useRoles() ​

ts
useRoles(): {
  capabilities: string[];
  label: string;
  rank: number;
  slug: string;
}[];

Defined in: src/core/services/access.service.ts:346

Lists every registered role definition (delegado a la estrategia activa).

Returns ​

{ capabilities: string[]; label: string; rank: number; slug: string; }[]


useSetStrategy() ​

ts
useSetStrategy(strategy): void;

Defined in: src/core/services/access.service.ts:317

Intercambia la estrategia de acceso en runtime (Strategy Pattern).

Parameters ​

ParameterTypeDescription
strategyIAccessStrategyLa nueva estrategia a utilizar.

Returns ​

void


create() ​

ts
static create(strategy?): AccessService;

Defined in: src/core/services/access.service.ts:308

Crea una instancia NO-singleton con una estrategia específica. Útil para tests o para aislar varios contextos de acceso.

Parameters ​

ParameterTypeDescription
strategy?IAccessStrategyEstrategia a inyectar.

Returns ​

AccessService

Una nueva instancia de AccessService.

Example ​

ts
const flatAccess = AccessService.create(new FlatAccessStrategy());

getInstance() ​

ts
static getInstance(): AccessService;

Defined in: src/core/services/access.service.ts:289

Obtiene la instancia única del AccessService (Singleton).

Returns ​

AccessService

La instancia única de AccessService.

Released under the MIT License.