/**
  * {@inheritdoc}
  */
 public function getSecurityIdentities(TokenInterface $token)
 {
     $sids = parent::getSecurityIdentities($token);
     // business unit security identities
     if (!$token instanceof AnonymousToken) {
         $user = $token->getUser();
         if ($user instanceof User) {
             foreach ($user->getBusinessUnits() as $businessUnit) {
                 $sids[] = BusinessUnitSecurityIdentity::fromBusinessUnit($businessUnit);
             }
         }
     }
     return $sids;
 }
Exemplo n.º 2
0
 /**
  * {@inheritdoc}
  *
  * @param string|RoleInterface|UserInterface|TokenInterface|BusinessUnitInterface $identity
  */
 public function getSid($identity)
 {
     if (is_string($identity)) {
         return new RoleSecurityIdentity($identity);
     } elseif ($identity instanceof RoleInterface) {
         return new RoleSecurityIdentity($identity->getRole());
     } elseif ($identity instanceof UserInterface) {
         return UserSecurityIdentity::fromAccount($identity);
     } elseif ($identity instanceof TokenInterface) {
         return UserSecurityIdentity::fromToken($identity);
     } elseif ($identity instanceof BusinessUnitInterface) {
         return BusinessUnitSecurityIdentity::fromBusinessUnit($identity);
     }
     throw new \InvalidArgumentException(sprintf('$identity must be a string or implement one of RoleInterface, UserInterface, TokenInterface,' . ' BusinessUnitInterface (%s given)', is_object($identity) ? get_class($identity) : gettype($identity)));
 }
 public function testEquals()
 {
     $securityIdentity = new BusinessUnitSecurityIdentity(self::IDENTITY_ID, self::IDENTITY_CLASS);
     $this->assertTrue($securityIdentity->equals(new BusinessUnitSecurityIdentity(self::IDENTITY_ID, self::IDENTITY_CLASS)));
 }
Exemplo n.º 4
0
 /**
  * Generate SIDs from entities
  *
  * @param Share $model
  *
  * @return array
  */
 protected function generateSids(Share $model)
 {
     $newSids = [];
     foreach ($model->getEntities() as $entity) {
         if ($entity instanceof User) {
             $newSids[] = UserSecurityIdentity::fromAccount($entity);
         } elseif ($entity instanceof BusinessUnit) {
             $newSids[] = BusinessUnitSecurityIdentity::fromBusinessUnit($entity);
         }
     }
     return $newSids;
 }