2021-06-26 23:23:15 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace BookStack\Theming;
|
2021-03-17 01:14:03 +08:00
|
|
|
|
2022-09-05 23:40:42 +08:00
|
|
|
use BookStack\Entities\Models\Page;
|
|
|
|
|
2021-03-17 01:14:03 +08:00
|
|
|
/**
|
|
|
|
* The ThemeEvents used within BookStack.
|
|
|
|
*
|
|
|
|
* This file details the events that BookStack may fire via the custom
|
|
|
|
* theme system, including event names, parameters and expected return types.
|
|
|
|
*
|
|
|
|
* This system is regarded as semi-stable.
|
|
|
|
* We'll look to fix issues with it or migrate old event types but
|
|
|
|
* events and their signatures may change in new versions of BookStack.
|
|
|
|
* We'd advise testing any usage of these events upon upgrade.
|
|
|
|
*/
|
|
|
|
class ThemeEvents
|
|
|
|
{
|
2022-07-17 20:28:56 +08:00
|
|
|
/**
|
|
|
|
* Activity logged event.
|
|
|
|
* Runs right after an activity is logged by bookstack.
|
|
|
|
* These are the activities that can be seen in the audit log area of BookStack.
|
|
|
|
* Activity types can be seen listed in the \BookStack\Actions\ActivityType class.
|
|
|
|
* The provided $detail can be a string or a loggable type of model. You should check
|
|
|
|
* the type before making use of this parameter.
|
|
|
|
*
|
|
|
|
* @param string $type
|
|
|
|
* @param string|\BookStack\Interfaces\Loggable $detail
|
|
|
|
*/
|
|
|
|
const ACTIVITY_LOGGED = 'activity_logged';
|
|
|
|
|
2021-03-17 01:14:03 +08:00
|
|
|
/**
|
|
|
|
* Application boot-up.
|
|
|
|
* After main services are registered.
|
2021-06-26 23:23:15 +08:00
|
|
|
*
|
2021-03-17 01:14:03 +08:00
|
|
|
* @param \BookStack\Application $app
|
|
|
|
*/
|
|
|
|
const APP_BOOT = 'app_boot';
|
|
|
|
|
2021-03-20 05:54:50 +08:00
|
|
|
/**
|
|
|
|
* Auth login event.
|
|
|
|
* Runs right after a user is logged-in to the application by any authentication
|
|
|
|
* system as a standard app user. This includes a user becoming logged in
|
|
|
|
* after registration. This is not emitted upon API usage.
|
2021-06-26 23:23:15 +08:00
|
|
|
*
|
|
|
|
* @param string $authSystem
|
2021-03-20 05:54:50 +08:00
|
|
|
* @param \BookStack\Auth\User $user
|
|
|
|
*/
|
|
|
|
const AUTH_LOGIN = 'auth_login';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Auth register event.
|
|
|
|
* Runs right after a user is newly registered to the application by any authentication
|
|
|
|
* system as a standard app user. This includes auto-registration systems used
|
|
|
|
* by LDAP, SAML and social systems. It only includes self-registrations.
|
2021-06-26 23:23:15 +08:00
|
|
|
*
|
|
|
|
* @param string $authSystem
|
2021-03-20 05:54:50 +08:00
|
|
|
* @param \BookStack\Auth\User $user
|
|
|
|
*/
|
|
|
|
const AUTH_REGISTER = 'auth_register';
|
|
|
|
|
2021-03-17 01:14:03 +08:00
|
|
|
/**
|
|
|
|
* Commonmark environment configure.
|
2022-09-05 23:40:42 +08:00
|
|
|
* Provides the commonmark library environment for customization before it's used to render markdown content.
|
2021-03-17 01:14:03 +08:00
|
|
|
* If the listener returns a non-null value, that will be used as an environment instead.
|
2021-06-26 23:23:15 +08:00
|
|
|
*
|
2023-02-07 04:00:44 +08:00
|
|
|
* @param \League\CommonMark\Environment\Environment $environment
|
|
|
|
* @returns \League\CommonMark\Environment\Environment|null
|
2021-03-17 01:14:03 +08:00
|
|
|
*/
|
|
|
|
const COMMONMARK_ENVIRONMENT_CONFIGURE = 'commonmark_environment_configure';
|
2022-01-04 02:22:03 +08:00
|
|
|
|
2023-04-28 06:40:14 +08:00
|
|
|
/**
|
|
|
|
* OIDC ID token pre-validate event.
|
|
|
|
* Runs just before BookStack validates the user ID token data upon login.
|
|
|
|
* Provides the existing found set of claims for the user as a key-value array,
|
|
|
|
* along with an array of the proceeding access token data provided by the identity platform.
|
|
|
|
* If the listener returns a non-null value, that will replace the existing ID token claim data.
|
|
|
|
*
|
|
|
|
* @param array $idTokenData
|
|
|
|
* @param array $accessTokenData
|
|
|
|
* @returns array|null
|
|
|
|
*/
|
|
|
|
const OIDC_ID_TOKEN_PRE_VALIDATE = 'oidc_id_token_pre_validate';
|
|
|
|
|
2022-09-05 23:40:42 +08:00
|
|
|
/**
|
|
|
|
* Page include parse event.
|
|
|
|
* Runs when a page include tag is being parsed, typically when page content is being processed for viewing.
|
|
|
|
* Provides the "include tag" reference string, the default BookStack replacement content for the tag,
|
|
|
|
* the current page being processed, and the page that's being referenced by the include tag.
|
|
|
|
* The referenced page may be null where the page does not exist or where permissions prevent visibility.
|
|
|
|
* If the listener returns a non-null value, that will be used as the replacement HTML content instead.
|
|
|
|
*
|
|
|
|
* @param string $tagReference
|
|
|
|
* @param string $replacementHTML
|
|
|
|
* @param Page $currentPage
|
|
|
|
* @param ?Page $referencedPage
|
|
|
|
*/
|
|
|
|
const PAGE_INCLUDE_PARSE = 'page_include_parse';
|
|
|
|
|
2022-07-17 20:08:44 +08:00
|
|
|
/**
|
|
|
|
* Web before middleware action.
|
|
|
|
* Runs before the request is handled but after all other middleware apart from those
|
|
|
|
* that depend on the current session user (Localization for example).
|
|
|
|
* Provides the original request to use.
|
|
|
|
* Return values, if provided, will be used as a new response to use.
|
|
|
|
*
|
|
|
|
* @param \Illuminate\Http\Request $request
|
|
|
|
* @returns \Illuminate\Http\Response|null
|
|
|
|
*/
|
|
|
|
const WEB_MIDDLEWARE_BEFORE = 'web_middleware_before';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Web after middleware action.
|
|
|
|
* Runs after the request is handled but before the response is sent.
|
|
|
|
* Provides both the original request and the currently resolved response.
|
|
|
|
* Return values, if provided, will be used as a new response to use.
|
|
|
|
*
|
|
|
|
* @param \Illuminate\Http\Request $request
|
|
|
|
* @param \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\BinaryFileResponse $response
|
|
|
|
* @returns \Illuminate\Http\Response|null
|
|
|
|
*/
|
|
|
|
const WEB_MIDDLEWARE_AFTER = 'web_middleware_after';
|
|
|
|
|
2022-01-04 02:22:03 +08:00
|
|
|
/**
|
|
|
|
* Webhook call before event.
|
|
|
|
* Runs before a webhook endpoint is called. Allows for customization
|
|
|
|
* of the data format & content within the webhook POST request.
|
|
|
|
* Provides the original event name as a string (see \BookStack\Actions\ActivityType)
|
|
|
|
* along with the webhook instance along with the event detail which may be a
|
|
|
|
* "Loggable" model type or a string.
|
|
|
|
* If the listener returns a non-null value, that will be used as the POST data instead
|
|
|
|
* of the system default.
|
|
|
|
*
|
2022-01-06 20:18:11 +08:00
|
|
|
* @param string $event
|
|
|
|
* @param \BookStack\Actions\Webhook $webhook
|
2022-01-04 02:22:03 +08:00
|
|
|
* @param string|\BookStack\Interfaces\Loggable $detail
|
2022-03-27 00:44:34 +08:00
|
|
|
* @param \BookStack\Auth\User $initiator
|
|
|
|
* @param int $initiatedTime
|
2022-01-04 02:22:03 +08:00
|
|
|
*/
|
|
|
|
const WEBHOOK_CALL_BEFORE = 'webhook_call_before';
|
2021-06-26 23:23:15 +08:00
|
|
|
}
|