UserAccessService

Source: UserAccessService.js:51

Service for managing user access relationships. Handles CRUD operations for owner-child access permissions. A child can have access to multiple owners.


Constructor

new UserAccessService(): UserAccessService

Instance Methods

isAccessSharingEnabled(): Promise.<boolean>

Check if the ACCESS_SHARING feature flag is enabled.

Returns

  • Promise.<boolean> — True if access sharing is enabled.

findByOwnerAndChild( ownerId: UUID, childId: UUID, ): Promise.<(UserAccess|null)>

Find a user access relationship by owner and child IDs.

Parameters

  • ownerId (UUID) — The owner's user ID.
  • childId (UUID) — The child's user ID.

Returns

  • Promise.<(UserAccess|null)> — The user access object or null if not found.

getChildren(ownerId: UUID): Promise.<Array>

Get all children for an owner.

Parameters

  • ownerId (UUID) — The owner's user ID.

Returns

  • Promise.<Array> — Array of user access objects.

getOwners(childId: UUID): Promise.<Array>

Get all owners for a child.

Parameters

  • childId (UUID) — The child's user ID.

Returns

  • Promise.<Array> — Array of user access objects.

create( ownerId: UUID, childId: UUID, role: AccessRole, enabled: boolean, ): Promise.<UserAccess>

Create a new user access relationship.

Parameters

  • ownerId (UUID) — The owner's user ID.
  • childId (UUID) — The child's user ID.
  • role (AccessRole) — The access role.
  • enabled (boolean, default: true) — Whether the access is enabled.

Returns

  • Promise.<UserAccess> — The created user access object.

update( id: UUID, data: object, ownerId: UUID, ): Promise.<UserAccess>

Update an existing user access relationship.

Parameters

  • id (UUID) — The user access ID.
  • data (object) — The data to update (role, enabled).
  • ownerId (UUID) — The owner's user ID (for authorization).

Returns

  • Promise.<UserAccess> — The updated user access object.

remove(id: UUID, ownerId: UUID): Promise.<void>

Remove a user access relationship.

Parameters

  • id (UUID) — The user access ID.
  • ownerId (UUID) — The owner's user ID (for authorization).

Returns

  • Promise.<void>

accept(id: UUID, childId: UUID): Promise.<UserAccess>

Accept an access invitation.

Parameters

  • id (UUID) — The user access ID.
  • childId (UUID) — The child's user ID (for authorization).

Returns

  • Promise.<UserAccess> — The updated user access object.

decline(id: UUID, childId: UUID): Promise.<UserAccess>

Decline an access invitation.

Parameters

  • id (UUID) — The user access ID.
  • childId (UUID) — The child's user ID (for authorization).

Returns

  • Promise.<UserAccess> — The deleted user access object.

findByUsername(username: string): Promise.<(User|null)>

Find a user by username.

Parameters

  • username (string) — The username to search for.

Returns

  • Promise.<(User|null)> — The user object or null if not found.

hasAccess(ownerId: UUID, childId: UUID): Promise.<boolean>

Check if a user has access to another user's data.

Parameters

  • ownerId (UUID) — The owner's user ID.
  • childId (UUID) — The child's user ID.

Returns

  • Promise.<boolean> — Whether the child has access.

getRole(ownerId, childId): Promise.<(AccessRole|null)>

Get the role for a child accessing owner's data.

Parameters

  • ownerId — The owner's user ID.
  • childId — The child's user ID.

Returns

  • Promise.<(AccessRole|null)> — The role or null if no access.