. * */ namespace Friendica\Model; use Friendica\BaseModel; use Friendica\Database\Database; use Friendica\Security\PermissionSet\Entity\PermissionSet; use Psr\Log\LoggerInterface; /** * Custom profile field model class. * * Custom profile fields are user-created arbitrary profile fields that can be assigned a permission set to restrict its * display to specific Friendica contacts as it requires magic authentication to work. * * @property int uid * @property int order * @property int psid * @property string label * @property string value * @property string created * @property string edited * @property PermissionSet permissionset */ class ProfileField extends BaseModel { /** @var PermissionSet */ private $permissionset; /** @var \Friendica\Security\PermissionSet\Depository\PermissionSet */ private $permissionSetDepository; public function __construct(Database $dba, LoggerInterface $logger,\Friendica\Security\PermissionSet\Depository\PermissionSet $permissionSetDepository, array $data = []) { parent::__construct($dba, $logger, $data); $this->permissionSetDepository = $permissionSetDepository; } public function __get($name) { $this->checkValid(); switch ($name) { case 'permissionset': $this->permissionset = $this->permissionset ?? $this->permissionSetDepository->selectOneById($this->psid); $return = $this->permissionset; break; default: $return = parent::__get($name); break; } return $return; } }