]> git.mxchange.org Git - friendica.git/blob - src/Model/ProfileField.php
Merge pull request #8227 from annando/daemon-checks
[friendica.git] / src / Model / ProfileField.php
1 <?php
2
3 namespace Friendica\Model;
4
5 use Friendica\BaseModel;
6 use Friendica\Database\Database;
7 use Friendica\Network\HTTPException;
8 use Psr\Log\LoggerInterface;
9
10 /**
11  * Custom profile field model class.
12  *
13  * Custom profile fields are user-created arbitrary profile fields that can be assigned a permission set to restrict its
14  * display to specific Friendica contacts as it requires magic authentication to work.
15  *
16  * @property int    uid
17  * @property int    order
18  * @property int    psid
19  * @property string label
20  * @property string value
21  * @property string created
22  * @property string edited
23  * @property PermissionSet permissionset
24  */
25 class ProfileField extends BaseModel
26 {
27         /** @var PermissionSet */
28         private $permissionset;
29
30         /** @var \Friendica\Repository\PermissionSet */
31         private $permissionSetRepository;
32
33         public function __construct(Database $dba, LoggerInterface $logger, \Friendica\Repository\PermissionSet $permissionSetRepository, array $data = [])
34         {
35                 parent::__construct($dba, $logger, $data);
36
37                 $this->permissionSetRepository = $permissionSetRepository;
38         }
39
40         public function __get($name)
41         {
42                 $this->checkValid();
43
44                 switch ($name) {
45                         case 'permissionset':
46                                 $this->permissionset =
47                                         $this->permissionset ??
48                                                 $this->permissionSetRepository->selectFirst(['id' => $this->psid, 'uid' => $this->uid]);
49
50                                 $return = $this->permissionset;
51                                 break;
52                         default:
53                                 $return = parent::__get($name);
54                                 break;
55                 }
56
57                 return $return;
58         }
59 }