File: AuthManagerFilterProvidersHook.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (41 lines) | stat: -rw-r--r-- 1,651 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

namespace MediaWiki\Auth\Hook;

use MediaWiki\MainConfigSchema;

/**
 * This is a hook handler interface, see docs/Hooks.md.
 * Use the hook name "AuthManagerFilterProviders" to register handlers implementing this interface.
 *
 * @stable to implement
 * @ingroup Hooks
 */
interface AuthManagerFilterProvidersHook {

	/**
	 * Filter the list of authentication available providers. Providers removed from the
	 * list will be disabled for the current request, and any authentication process started
	 * from the current request.
	 *
	 * Hook handlers don't have to always return the same result for the given configuration
	 * (can depend on the request, e.g. feature flags) but they do have to be consistent
	 * within an authentication process that spans multiple requests.
	 *
	 * @since 1.43
	 *
	 * @param bool[][] &$providers An array with three sub-arrays: 'preauth', 'primaryauth',
	 *   'secondaryauth'. Each field in the subarrays is a map of <provider key> => true.
	 *   (The provider key is the same array key that's used in $wgAuthManagerAutoConfig or
	 *   $wgAuthManagerConfig). Unsetting a field or setting its value to falsy disables the
	 *   corresponding provider.
	 * @phpcs:ignore Generic.Files.LineLength.TooLong
	 * @phan-param array{preauth:array<string,true>,primaryauth:array<string,true>,secondaryauth:array<string,true>} $providers
	 * @return void This hook must not abort, it must return no value
	 *
	 * @see https://www.mediawiki.org/wiki/Manual:Hooks/AuthManagerFilterProviders
	 * @see MainConfigSchema::AuthManagerAutoConfig
	 */
	public function onAuthManagerFilterProviders( array &$providers ): void;

}