2declare( strict_types = 1 );
4namespace MediaWiki\Extension\Translate\TranslatorSandbox;
8use MediaWiki\Api\Hook\ApiCheckCanExecuteHook;
9use MediaWiki\Permissions\Hook\UserGetRightsHook;
10use MediaWiki\Preferences\Hook\GetPreferencesHook;
20 ApiCheckCanExecuteHook,
23 private bool $isTranslateSandboxEnabled;
25 public function __construct( Config $config ) {
26 $this->isTranslateSandboxEnabled = $config->get(
'TranslateUseSandbox' );
31 if ( !$this->isTranslateSandboxEnabled ) {
44 'translate-sandboxaction',
55 if ( !$this->isTranslateSandboxEnabled ) {
59 $preferences[
'translate-sandbox'] = $preferences[
'translate-sandbox-reminders'] =
68 if ( !$this->isTranslateSandboxEnabled ) {
74 TranslationStashActionApi::class,
79 if ( TranslateSandbox::isSandboxed( $user ) ) {
80 $class = get_class( $module );
81 if ( $module->isWriteMode() && !in_array( $class, $inclusionList,
true ) ) {
82 $message = ApiMessage::create(
'apierror-writeapidenied' );