getUserPermissionByArray() 공개 메소드

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
예제 #1
0
 /**
  * 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()));
 }
예제 #2
0
 /**
  * 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()));
 }