Extension:Email Authorization

The Email Authorization extension implements the   hook to provide authorization using a list of authorized email addresses. It provides a special page,, for an administrator to use to add and remove email addresses and email domains from the authorization list.

Configuration
Users who should be able to add and revoke email addresses and email domains on the page must be given the emailauthorizationconfig right. For example:

Hooks
This extension supplies the following hooks to other extensions:


 * and take a single parameter: an email address or email domain (i.e. @ followed by the domain).
 * takes the following parameters: an email address and a JSON-encoded array of form fields.
 * and take the following parameters: an email address, a JSON-encoded array of form fields, and the User object of the bureaucrat approving/rejecting the account request.

Version history

 * Version 2.0 :
 * Added
 * Added support for postgres and sqlite in addition to existing mysql/mariadb support
 * Use datatables jQuery plug-in on email authorization dashboard
 * Convert UI to use OOUI
 * Modernize code (type hints, dependency injection, global config, new hook system, linting, tests)
 * Fix IDatabase::upsert calls with bad unique key parameters


 * Version 1.5 :
 * Trim and lowercase emails before adding them


 * Version 1.4 :
 * Added PHPCS and autofix some found sniffs with PHPCBF


 * Version 1.3 :
 * Added optional account request capability controlled by


 * Version 1.2 :
 * Change message prefix to prevent collisions with other extensions
 * Table formatting
 * Renamed to


 * Version 1.1 :
 * Bug fix: adding email address that already existed threw exception
 * Email addresses and domains entered in now are validated
 * Added missing rights messages


 * Version 1.0 :
 * Initial version

Known issues
This extension does not currently work with PostgreSQL. See T293933.