* * 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-security-ifhasrole */ final class IfHasRoleViewHelper extends AbstractConditionViewHelper { /** * Initializes the "role" argument. * Renders child if the current logged in FE 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']; /** @var UserAspect $userAspect */ $userAspect = GeneralUtility::makeInstance(Context::class)->getAspect('frontend.user'); if (!$userAspect->isLoggedIn()) { return false; } if (is_numeric($role)) { $groupIds = $userAspect->getGroupIds(); return in_array((int)$role, $groupIds, true); } return in_array($role, $userAspect->getGroupNames(), true); } }