/**
  * {@inheritdoc}
  */
 public function equals(SecurityIdentityInterface $sid)
 {
     if (!$sid instanceof self) {
         return false;
     }
     return $this->id === $sid->getId() && $this->class === $sid->getClass();
 }
Ejemplo n.º 2
0
 /**
  * @param SecurityIdentityInterface $sid
  *
  * @return string
  */
 protected function getFormattedName(SecurityIdentityInterface $sid)
 {
     if ($sid instanceof UserSecurityIdentity && $sid->getUsername()) {
         $user = $this->manager->getRepository('OroUserBundle:User')->findOneBy(['username' => $sid->getUsername()]);
         if ($user) {
             return $this->nameFormatter->format($user);
         }
     } elseif ($sid instanceof BusinessUnitSecurityIdentity) {
         $businessUnit = $this->manager->getRepository('OroOrganizationBundle:BusinessUnit')->find($sid->getId());
         if ($businessUnit) {
             return $businessUnit->getName();
         }
     }
     return '';
 }
 /**
  * @param SecurityIdentityInterface $sid
  *
  * @return mixed
  */
 protected function getSecurityIdentityId(SecurityIdentityInterface $sid)
 {
     if ($sid instanceof UserSecurityIdentity) {
         $identifier = $sid->getClass() . '-' . $sid->getUsername();
         $username = true;
     } elseif ($sid instanceof RoleSecurityIdentity) {
         //skip Role SID because we didn't share records for Role
         return null;
     } elseif ($sid instanceof BusinessUnitSecurityIdentity) {
         $identifier = $sid->getClass() . '-' . $sid->getId();
         $username = false;
     } else {
         throw new \InvalidArgumentException('$sid must either be an instance of UserSecurityIdentity or RoleSecurityIdentity ' . 'or BusinessUnitSecurityIdentity.');
     }
     return $this->getObjectManager()->getRepository('OroSecurityBundle:AclSecurityIdentity')->findOneBy(['identifier' => $identifier, 'username' => $username]);
 }
Ejemplo n.º 4
0
 /**
  * Get Security Identifier and Username flag to create SQL queries
  *
  * @param SecurityIdentityInterface $sid
  *
  * @throws \InvalidArgumentException
  *
  * @return array
  */
 protected function getSecurityIdentifier(SecurityIdentityInterface $sid)
 {
     if ($sid instanceof UserSecurityIdentity) {
         return [$sid->getClass() . '-' . $sid->getUsername(), true];
     } elseif ($sid instanceof RoleSecurityIdentity) {
         return [$sid->getRole(), false];
     } elseif ($sid instanceof BusinessUnitSecurityIdentity) {
         return [$sid->getClass() . '-' . $sid->getId(), false];
     } else {
         throw new \InvalidArgumentException('$sid must either be an instance of UserSecurityIdentity or RoleSecurityIdentity' . ' or BusinessUnitSecurityIdentity.');
     }
 }