openvk/Web/Models/Entities/Traits/TOwnable.php
2023-07-06 13:01:04 +03:00

27 lines
679 B
PHP

<?php declare(strict_types=1);
namespace openvk\Web\Models\Entities\Traits;
use openvk\Web\Models\Entities\User;
trait TOwnable
{
function canBeViewedBy(?User $user = NULL): bool
{
if($this->isDeleted()) {
return false;
}
return true;
}
function canBeModifiedBy(User $user): bool
{
if(method_exists($this, "isCreatedBySystem"))
if($this->isCreatedBySystem())
return false;
if($this->getRecord()->owner > 0)
return $this->getRecord()->owner === $user->getId();
else
return $this->getOwner()->canBeModifiedBy($user);
}
}