Returns the permissions regarding an array of role permissions and its security context for a given user.
public getUserPermissionByArray ( string $locale, string $securityContext, $objectPermissionsByRole, Sulu\Component\Security\Authentication\UserInterface $user ) : array | ||
$locale | string | |
$securityContext | string | |
$objectPermissionsByRole | ||
$user | Sulu\Component\Security\Authentication\UserInterface | The user for which the security is returned |
리턴 | array |
/** * Adds the permissions for the current user to the serialization. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $document = $event->getObject(); if (!($document instanceof SecurityBehavior && $document instanceof LocaleBehavior && $document instanceof WebspaceBehavior && $this->tokenStorage !== null && $this->tokenStorage->getToken() !== null && $this->tokenStorage->getToken()->getUser() instanceof UserInterface)) { return; } /** @var JsonSerializationVisitor $visitor */ $visitor = $event->getVisitor(); $visitor->addData('_permissions', $this->accessControlManager->getUserPermissionByArray($document->getLocale(), ContentAdmin::SECURITY_CONTEXT_PREFIX . $document->getWebspaceName(), $document->getPermissions(), $this->tokenStorage->getToken()->getUser())); }
/** * Add data for serialization of content objects. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { /** @var Content $content */ $content = $event->getObject(); /** @var JsonSerializationVisitor $visitor */ $visitor = $event->getVisitor(); if (!$content instanceof Content) { return; } foreach ($content->getData() as $key => $value) { $visitor->addData($key, $value); } $visitor->addData('publishedState', WorkflowStage::PUBLISHED === $content->getWorkflowStage()); if (RedirectType::EXTERNAL === $content->getNodeType()) { $visitor->addData('linked', 'external'); } elseif (RedirectType::INTERNAL === $content->getNodeType()) { $visitor->addData('linked', 'internal'); } if (null !== $content->getLocalizationType()) { $visitor->addData('type', $content->getLocalizationType()->toArray()); } $visitor->addData('_permissions', $this->accessControlManager->getUserPermissionByArray($content->getLocale(), ContentAdmin::SECURITY_CONTEXT_PREFIX . $content->getWebspaceKey(), $content->getPermissions(), $this->tokenStorage->getToken()->getUser())); }