Initial Version
This commit is contained in:
156
core/lib/Models/Identity/User.php
Normal file
156
core/lib/Models/Identity/User.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
|
||||
namespace KTXC\Models\Identity;
|
||||
|
||||
class User
|
||||
{
|
||||
private ?string $id = null;
|
||||
private ?string $identity = null;
|
||||
private ?string $label = null;
|
||||
private ?array $roles = [];
|
||||
private array $permissions = [];
|
||||
private ?bool $enabled = null;
|
||||
private ?string $provider = null;
|
||||
private ?string $externalSubject = null;
|
||||
private ?int $initialLogin = null;
|
||||
private ?int $recentLogin = null;
|
||||
|
||||
public function populate(array $data, string $source): void
|
||||
{
|
||||
if ($source === 'users') {
|
||||
$this->id = $data['uid'] ?? null; // 'uid' maps to 'id'
|
||||
$this->identity = $data['identity'] ?? null;
|
||||
$this->label = $data['label'] ?? null;
|
||||
$this->roles = (array)($data['roles'] ?? []);
|
||||
$this->enabled = $data['enabled'] ?? null;
|
||||
$this->provider = $data['provider'] ?? null;
|
||||
$this->externalSubject = $data['external_subject'] ?? null;
|
||||
$this->initialLogin = $data['initial_login'] ?? null;
|
||||
$this->recentLogin = $data['recent_login'] ?? null;
|
||||
$this->permissions = (array)($data['permissions'] ?? []);
|
||||
}
|
||||
|
||||
if ($source === 'jwt') {
|
||||
$this->id = $data['identifier'] ?? null;
|
||||
$this->identity = $data['identity'] ?? null;
|
||||
$this->label = $data['label'] ?? null;
|
||||
$this->roles = (array)($data['role'] ?? []);
|
||||
$this->permissions = (array)($data['permissions'] ?? []);
|
||||
$this->enabled = true;
|
||||
}
|
||||
|
||||
if ($source === 'external') {
|
||||
$this->identity = $data['identity'] ?? null;
|
||||
$this->label = $data['label'] ?? null;
|
||||
$this->externalSubject = $data['external_subject'] ?? null;
|
||||
$this->provider = $data['provider'] ?? null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getId(): ?string
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(string $value): void
|
||||
{
|
||||
$this->id = $value;
|
||||
}
|
||||
|
||||
public function getIdentity(): ?string
|
||||
{
|
||||
return $this->identity;
|
||||
}
|
||||
|
||||
public function setIdentity(string $value): void
|
||||
{
|
||||
$this->identity = $value;
|
||||
}
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return $this->label;
|
||||
}
|
||||
|
||||
public function setLabel(?string $value): void
|
||||
{
|
||||
$this->label = $value;
|
||||
}
|
||||
|
||||
public function getRoles(): array
|
||||
{
|
||||
return $this->roles;
|
||||
}
|
||||
|
||||
public function setRoles(array $values): void
|
||||
{
|
||||
$this->roles = $values;
|
||||
}
|
||||
|
||||
public function getEnabled(): ?bool
|
||||
{
|
||||
return $this->enabled;
|
||||
}
|
||||
|
||||
public function setEnabled(?bool $value): void
|
||||
{
|
||||
$this->enabled = $value;
|
||||
}
|
||||
|
||||
public function getProvider(): ?string
|
||||
{
|
||||
return $this->provider;
|
||||
}
|
||||
|
||||
public function setProvider(?string $value): void
|
||||
{
|
||||
$this->provider = $value;
|
||||
}
|
||||
|
||||
public function getExternalSubject(): ?string
|
||||
{
|
||||
return $this->externalSubject;
|
||||
}
|
||||
|
||||
public function setExternalSubject(?string $value): void
|
||||
{
|
||||
$this->externalSubject = $value;
|
||||
}
|
||||
|
||||
public function getInitialLogin(): ?int
|
||||
{
|
||||
return $this->initialLogin;
|
||||
}
|
||||
|
||||
public function setInitialLogin(?int $value): void
|
||||
{
|
||||
$this->initialLogin = $value;
|
||||
}
|
||||
|
||||
public function getRecentLogin(): ?int
|
||||
{
|
||||
return $this->recentLogin;
|
||||
}
|
||||
|
||||
public function setRecentLogin(?int $value): void
|
||||
{
|
||||
$this->recentLogin = $value;
|
||||
}
|
||||
|
||||
public function getPermissions(): array
|
||||
{
|
||||
return $this->permissions;
|
||||
}
|
||||
|
||||
public function setPermissions(array $permissions): void
|
||||
{
|
||||
$this->permissions = $permissions;
|
||||
}
|
||||
|
||||
public function hasPermission(string $permission): bool
|
||||
{
|
||||
return in_array($permission, $this->permissions, true);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user