mirror of
https://github.com/openvk/openvk
synced 2024-12-24 17:41:07 +03:00
68 lines
No EOL
1.5 KiB
PHP
68 lines
No EOL
1.5 KiB
PHP
<?php declare(strict_types=1);
|
|
namespace openvk\Web\Models\Entities;
|
|
use openvk\Web\Util\DateTime;
|
|
use Chandler\Database\DatabaseConnection as DB;
|
|
use openvk\Web\Models\{RowModel};
|
|
use openvk\Web\Models\Entities\{User};
|
|
use openvk\Web\Models\Repositories\{Users};
|
|
|
|
class BugtrackerProduct extends RowModel
|
|
{
|
|
protected $tableName = "bt_products";
|
|
|
|
function getId(): int
|
|
{
|
|
return $this->getRecord()->id;
|
|
}
|
|
|
|
function getCreator(): ?User
|
|
{
|
|
return (new Users)->get($this->getRecord()->creator_id);
|
|
}
|
|
|
|
function getName(): string
|
|
{
|
|
return $this->getRecord()->title;
|
|
}
|
|
|
|
function getCanonicalName(): string
|
|
{
|
|
return $this->getName();
|
|
}
|
|
|
|
function getDescription(): ?string
|
|
{
|
|
return $this->getRecord()->description;
|
|
}
|
|
|
|
function isClosed(): ?bool
|
|
{
|
|
return (bool) $this->getRecord()->closed;
|
|
}
|
|
|
|
function getCreationTime(): DateTime
|
|
{
|
|
return new DateTime($this->getRecord()->created);
|
|
}
|
|
|
|
function isPrivate(): ?bool
|
|
{
|
|
return (bool) $this->getRecord()->private;
|
|
}
|
|
|
|
function hasAccess(User $user): bool
|
|
{
|
|
if ($user->isBtModerator() || !$this->isPrivate())
|
|
return true;
|
|
|
|
$check = DB::i()->getContext()->table("bt_products_access")->where([
|
|
"tester" => $user->getId(),
|
|
"product" => $this->getId()
|
|
]);
|
|
|
|
if (sizeof($check) > 0)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
} |