get('isActive'); } /** * @deprecated Use `isPortal`. */ public function isPortalUser(): bool { return $this->isPortal(); } public function getType(): ?string { return $this->get('type'); } /** * Is regular user. */ public function isRegular(): bool { return $this->getType() === self::TYPE_REGULAR || ($this->has('type') && !$this->getType()); } /** * Is admin, super-admin or system user. */ public function isAdmin(): bool { return $this->getType() === self::TYPE_ADMIN || $this->isSystem() || $this->isSuperAdmin(); } /** * Is portal user. */ public function isPortal(): bool { return $this->getType() === self::TYPE_PORTAL; } /** * Is API user. */ public function isApi(): bool { return $this->getType() === self::TYPE_API; } /** * Is system user. */ public function isSystem(): bool { return $this->getType() === self::TYPE_SYSTEM; } /** * Is super-admin user. */ public function isSuperAdmin(): bool { return $this->getType() === self::TYPE_SUPER_ADMIN; } public function getRoles(): LinkMultiple { /** @var LinkMultiple */ return $this->getValueObject('roles'); } public function getDefaultTeam(): ?Link { /** @var ?Link */ return $this->getValueObject('defaultTeam'); } public function getWorkingTimeCalendar(): ?Link { /** @var ?Link */ return $this->getValueObject('workingTimeCalendar'); } public function getLayoutSet(): ?Link { /** @var ?Link */ return $this->getValueObject('layoutSet'); } public function getTeams(): LinkMultiple { /** @var LinkMultiple */ return $this->getValueObject('teams'); } /** * @return string[] */ public function getTeamIdList(): array { /** @var string[] */ return $this->getLinkMultipleIdList('teams'); } public function setDefaultTeam(?Link $defaultTeam): self { $this->setValueObject('defaultTeam', $defaultTeam); return $this; } public function setTeams(LinkMultiple $teams): self { $this->setValueObject('teams', $teams); return $this; } public function getPortals(): LinkMultiple { /** @var LinkMultiple */ return $this->getValueObject('portals'); } public function setPortals(LinkMultiple $portals): self { $this->setValueObject('portals', $portals); return $this; } public function setRoles(LinkMultiple $roles): self { $this->setValueObject('roles', $roles); return $this; } public function loadAccountField(): void { if (!$this->entityManager) { throw new RuntimeException("No entity manager"); } if ($this->get('contactId')) { $contact = $this->entityManager->getEntityById(Contact::ENTITY_TYPE, $this->get('contactId')); if ($contact && $contact->get('accountId')) { $this->set('accountId', $contact->get('accountId')); $this->set('accountName', $contact->get('accountName')); } } } public function setTitle(?string $title): self { $this->set('title', $title); return $this; } public function getTitle(): ?string { return $this->get('title'); } public function getUserName(): ?string { return $this->get('userName'); } public function getAuthMethod(): ?string { return $this->get('authMethod'); } public function getContactId(): ?string { return $this->get('contactId'); } public function getContact(): ?Link { /** @var ?Link $value */ $value = $this->getValueObject('contact'); return $value; } /** * Get a portal ID of the currently logged user. */ public function getPortalId(): ?string { return $this->get('portalId'); } public function getAccounts(): LinkMultiple { /** @var LinkMultiple $value */ $value = $this->getValueObject('accounts'); return $value; } /** * @return ?string */ protected function _getName() { if (!$this->hasInContainer('name') || !$this->getFromContainer('name')) { if ($this->get('userName')) { return $this->get('userName'); } } return $this->getFromContainer('name'); } /** * @return bool */ protected function _hasName() { if ($this->hasInContainer('name')) { return true; } if ($this->has('userName')) { return true; } return false; } }