check(); return $authenticate->user(); } } if (! function_exists('set_interact_as_actor')) { /** * Sets the actor id of which the user is acting as */ function set_interact_as_actor(int $actorId): void { $authenticate = service('authentication'); $authenticate->check(); $session = session(); $session->set('interact_as_actor_id', $actorId); } } if (! function_exists('remove_interact_as_actor')) { /** * Removes the actor id of which the user is acting as */ function remove_interact_as_actor(): void { $session = session(); $session->remove('interact_as_actor_id'); } } if (! function_exists('interact_as_actor_id')) { /** * Sets the podcast id of which the user is acting as */ function interact_as_actor_id(): int { $authenticate = service('authentication'); $authenticate->check(); $session = session(); return $session->get('interact_as_actor_id'); } } if (! function_exists('interact_as_actor')) { /** * Get the actor the user is currently interacting as */ function interact_as_actor(): Actor | false { $authenticate = service('authentication'); $authenticate->check(); $session = session(); if ($session->has('interact_as_actor_id')) { return model(ActorModel::class, false)->getActorById($session->get('interact_as_actor_id')); } return false; } } if (! function_exists('can_user_interact')) { /** * @throws DataException */ function can_user_interact(): bool { return (bool) interact_as_actor(); } }