[!!!][TASK] Remove tce_db options "prErr" and "uPT"
[Packages/TYPO3.CMS.git] / typo3 / sysext / beuser / Classes / ViewHelpers / RemoveUserViewHelper.php
index 6a36ba2..3cbab50 100644 (file)
@@ -14,67 +14,75 @@ namespace TYPO3\CMS\Beuser\ViewHelpers;
  * The TYPO3 project - inspiring people to share!
  */
 
-use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Beuser\Domain\Model\BackendUser;
 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
-use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
 use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
-use TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface;
+use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
 
 /**
  * Displays 'Delete user' link with sprite icon to remove user
  *
  * @internal
  */
-class RemoveUserViewHelper extends AbstractViewHelper implements CompilableInterface {
+class RemoveUserViewHelper extends AbstractViewHelper
+{
+    use CompileWithRenderStatic;
 
-       /**
-        * Render link with sprite icon to remove user
-        *
-        * @param \TYPO3\CMS\Beuser\Domain\Model\BackendUser $backendUser Target backendUser to switch active session to
-        * @return string
-        */
-       public function render(BackendUser $backendUser) {
-               return self::renderStatic(
-                       array(
-                               'backendUser' => $backendUser
-                       ),
-                       $this->buildRenderChildrenClosure(),
-                       $this->renderingContext
-               );
-       }
+    /**
+     * As this ViewHelper renders HTML, the output must not be escaped.
+     *
+     * @var bool
+     */
+    protected $escapeOutput = false;
 
-       /**
-        * @param array $arguments
-        * @param callable $renderChildrenClosure
-        * @param RenderingContextInterface $renderingContext
-        *
-        * @return string
-        */
-       static public function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) {
-               /** @var \TYPO3\CMS\Beuser\Domain\Model\BackendUser $backendUser */
-               $backendUser = $arguments['backendUser'];
-               /** @var BackendUserAuthentication $beUser */
-               $beUser = $GLOBALS['BE_USER'];
-               if ($backendUser->getUid() === (int)$beUser->user['uid']) {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
-               }
+    /**
+     * Initializes the arguments
+     */
+    public function initializeArguments()
+    {
+        parent::initializeArguments();
+        $this->registerArgument('backendUser', BackendUser::class, 'Target backendUser to switch active session to', true);
+    }
 
-               $urlParameters = [
-                       'cmd[be_users][' . $backendUser->getUid() . '][delete]' => 1,
-                       'vC' => $beUser->veriCode(),
-                       'prErr' => 1,
-                       'uPT' => 1,
-                       'redirect' => GeneralUtility::getIndpEnv('REQUEST_URI')
-               ];
-               $url = BackendUtility::getModuleUrl('tce_db', $urlParameters) . BackendUtility::getUrlToken('tceAction');
+    /**
+     * Render link with sprite icon to remove user
+     *
+     * @param array $arguments
+     * @param \Closure $renderChildrenClosure
+     * @param RenderingContextInterface $renderingContext
+     *
+     * @return string
+     */
+    public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
+    {
+        /** @var \TYPO3\CMS\Beuser\Domain\Model\BackendUser $backendUser */
+        $backendUser = $arguments['backendUser'];
+        /** @var BackendUserAuthentication $beUser */
+        $beUser = $GLOBALS['BE_USER'];
+        /** @var IconFactory $iconFactory */
+        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+        if ($backendUser->getUid() === (int)$beUser->user['uid']) {
+            return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
+        }
 
-               return '<a class="btn btn-default" href="' . htmlspecialchars($url) . '"  onclick="return confirm(' .
-                       GeneralUtility::quoteJSvalue(LocalizationUtility::translate('confirm', 'beuser', array($backendUser->getUserName()))) .
-                       ')">' . IconUtility::getSpriteIcon('actions-edit-delete') . '</a>';
-       }
+        $urlParameters = [
+            'cmd[be_users][' . $backendUser->getUid() . '][delete]' => 1,
+            'redirect' => GeneralUtility::getIndpEnv('REQUEST_URI')
+        ];
+        $url = BackendUtility::getModuleUrl('tce_db', $urlParameters);
 
+        return '<a class="btn btn-default t3js-modal-trigger" href="' . htmlspecialchars($url) . '"'
+            . ' title="' . htmlspecialchars($GLOBALS['LANG']->sL('LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:delete')) . '"'
+            . ' data-severity="warning"'
+            . ' data-title="' . htmlspecialchars($GLOBALS['LANG']->sL('LLL:EXT:lang/Resources/Private/Language/locallang_alt_doc.xlf:label.confirm.delete_record.title')) . '"'
+            . ' data-content="' . htmlspecialchars(LocalizationUtility::translate('confirm', 'beuser', [$backendUser->getUserName()])) . '" '
+            . ' data-button-close-text="' . htmlspecialchars($GLOBALS['LANG']->sL('LLL:EXT:lang/Resources/Private/Language/locallang_common.xlf:cancel')) . '"'
+            . '>' . $iconFactory->getIcon('actions-edit-delete', Icon::SIZE_SMALL)->render() . '</a>';
+    }
 }