* * This is being shown in case you have the role. * * * This is being displayed in case you do not have the role. * * * ``` * * @see https://docs.typo3.org/permalink/t3viewhelper:typo3-fluid-be-security-ifhasrole */ final class IfHasRoleViewHelper extends AbstractConditionViewHelper { /** * Initializes the "role" argument. * Renders child if the current logged in BE user belongs to the specified role (aka usergroup) * otherwise renders child. */ public function initializeArguments(): void { parent::initializeArguments(); $this->registerArgument('role', 'string', 'The usergroup (either the usergroup uid or its title).'); } public static function verdict(array $arguments, RenderingContextInterface $renderingContext): bool { $role = $arguments['role']; if (!is_array($GLOBALS['BE_USER']->userGroups) || $arguments['role'] === null) { return false; } if (is_numeric($role)) { foreach ($GLOBALS['BE_USER']->userGroups as $userGroup) { if ((int)$userGroup['uid'] === (int)$role) { return true; } } } else { foreach ($GLOBALS['BE_USER']->userGroups as $userGroup) { if ($userGroup['title'] === $role) { return true; } } } return false; } }