/** * Display a confirmation form to remove a resource */ public function removeresourceAction() { $this->assertPermission('config/application/resources'); $this->getTabs()->add('resources/remove', array('label' => $this->translate('Remove Resource'), 'url' => Url::fromRequest()))->activate('resources/remove'); $form = new ConfirmRemovalForm(array('onSuccess' => function ($form) { $configForm = new ResourceConfigForm(); $configForm->setIniConfig(Config::app('resources')); $resource = $form->getRequest()->getQuery('resource'); try { $configForm->remove($resource); } catch (InvalidArgumentException $e) { Notification::error($e->getMessage()); return false; } if ($configForm->save()) { Notification::success(sprintf(t('Resource "%s" has been successfully removed'), $resource)); } else { return false; } })); $form->setRedirectUrl('config/resource'); $form->handleRequest(); // Check if selected resource is currently used for authentication $resource = $this->getRequest()->getQuery('resource'); $authConfig = Config::app('authentication'); foreach ($authConfig as $backendName => $config) { if ($config->get('resource') === $resource) { $form->warning(sprintf($this->translate('The resource "%s" is currently utilized for authentication by user backend "%s".' . ' Removing the resource can result in noone being able to log in any longer.'), $resource, $backendName)); } } // Check if selected resource is currently used as user preferences backend if (Config::app()->get('global', 'config_resource') === $resource) { $form->warning(sprintf($this->translate('The resource "%s" is currently utilized to store user preferences. Removing the' . ' resource causes all current user preferences not being available any longer.'), $resource)); } $this->view->form = $form; $this->render('resource/remove'); }