/** * {@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; }
/** * {@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))); }
/** * 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; }