/** * {@inheritdoc} */ public function equals(SecurityIdentityInterface $sid) { if (!$sid instanceof self) { return false; } return $this->id === $sid->getId() && $this->class === $sid->getClass(); }
/** * @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]); }
/** * 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.'); } }