]> git.mxchange.org Git - friendica.git/commitdiff
Move ProfileField from Model to Entity
authorPhilipp <admin@philipp.info>
Fri, 8 Oct 2021 17:17:27 +0000 (19:17 +0200)
committerPhilipp <admin@philipp.info>
Mon, 18 Oct 2021 21:32:38 +0000 (23:32 +0200)
src/Factory/Api/Mastodon/Field.php
src/Model/ProfileField.php [deleted file]
src/Module/Settings/Profile/Index.php
src/Profile/ProfileField/Entity/ProfileField.php [new file with mode: 0644]
src/Repository/ProfileField.php

index 6ff63fb1bf52bd90bd387773038705909ba4cabf..2e330224250e1b3feee49f63a24ef4e0304dd6ee 100644 (file)
@@ -25,13 +25,14 @@ use Friendica\BaseFactory;
 use Friendica\Collection\Api\Mastodon\Fields;
 use Friendica\Collection\ProfileFields;
 use Friendica\Content\Text\BBCode;
-use Friendica\Model\ProfileField;
+use Friendica\Profile\ProfileField\Entity\ProfileField;
 use Friendica\Network\HTTPException;
 
 class Field extends BaseFactory
 {
        /**
-        * @param ProfileField $profileField
+        * @param \Friendica\Profile\ProfileField\Entity\ProfileField $profileField
+        *
         * @return \Friendica\Object\Api\Mastodon\Field
         * @throws HTTPException\InternalServerErrorException
         */
diff --git a/src/Model/ProfileField.php b/src/Model/ProfileField.php
deleted file mode 100644 (file)
index c5905f9..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- *
- */
-
-namespace Friendica\Model;
-
-use Friendica\BaseModel;
-use Friendica\Database\Database;
-use Friendica\Network\HTTPException\NotFoundException;
-use Friendica\Security\PermissionSet\Depository\PermissionSet as PermissionSetDepository;
-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 PermissionSetDepository */
-       private $permissionSetDepository;
-
-       public function __construct(Database $dba, LoggerInterface $logger, PermissionSetDepository $permissionSetDepository, array $data = [])
-       {
-               parent::__construct($dba, $logger, $data);
-
-               $this->permissionSetDepository = $permissionSetDepository;
-       }
-
-       public function __get($name)
-       {
-               $this->checkValid();
-
-               switch ($name) {
-                       case 'permissionSet':
-                               if (empty($this->permissionSet)) {
-                                       $permissionSet = $this->permissionSetDepository->selectOneById($this->psid, $this->uid);
-                                       if ($permissionSet->uid !== $this->uid) {
-                                               throw new NotFoundException(sprintf('PermissionSet %d (user-id: %d) for ProfileField %d (user-id: %d) is invalid.', $permissionSet->id, $permissionSet->uid, $this->id, $this->uid));
-                                       }
-
-                                       $this->permissionSet = $permissionSet;
-                               }
-
-                               $return = $this->permissionSet;
-                               break;
-                       default:
-                               $return = parent::__get($name);
-                               break;
-               }
-
-               return $return;
-       }
-}
index c51393c984b6d6bfac723ea581c557025330283e..a7b71851df85317ef72f4b25b658ceac7c8cd076 100644 (file)
@@ -30,7 +30,7 @@ use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Model\Profile;
-use Friendica\Model\ProfileField;
+use Friendica\Profile\ProfileField\Entity\ProfileField;
 use Friendica\Model\User;
 use Friendica\Module\BaseSettings;
 use Friendica\Module\Security\Login;
diff --git a/src/Profile/ProfileField/Entity/ProfileField.php b/src/Profile/ProfileField/Entity/ProfileField.php
new file mode 100644 (file)
index 0000000..6703615
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/**
+ * @copyright Copyright (C) 2010-2021, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Friendica\Profile\ProfileField\Entity;
+
+use Friendica\BaseModel;
+use Friendica\Database\Database;
+use Friendica\Network\HTTPException\NotFoundException;
+use Friendica\Security\PermissionSet\Depository\PermissionSet as PermissionSetDepository;
+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 PermissionSetDepository */
+       private $permissionSetDepository;
+
+       public function __construct(Database $dba, LoggerInterface $logger, PermissionSetDepository $permissionSetDepository, array $data = [])
+       {
+               parent::__construct($dba, $logger, $data);
+
+               $this->permissionSetDepository = $permissionSetDepository;
+       }
+
+       public function __get($name)
+       {
+               $this->checkValid();
+
+               switch ($name) {
+                       case 'permissionSet':
+                               if (empty($this->permissionSet)) {
+                                       $permissionSet = $this->permissionSetDepository->selectOneById($this->psid, $this->uid);
+                                       if ($permissionSet->uid !== $this->uid) {
+                                               throw new NotFoundException(sprintf('PermissionSet %d (user-id: %d) for ProfileField %d (user-id: %d) is invalid.', $permissionSet->id, $permissionSet->uid, $this->id, $this->uid));
+                                       }
+
+                                       $this->permissionSet = $permissionSet;
+                               }
+
+                               $return = $this->permissionSet;
+                               break;
+                       default:
+                               $return = parent::__get($name);
+                               break;
+               }
+
+               return $return;
+       }
+}
index 40417be486ca25b463fddced4040a3fc08322c83..75221933b3605bfb349a71a70f21ba3b6c30f8d5 100644 (file)
@@ -36,7 +36,7 @@ class ProfileField extends BaseRepository
 {
        protected static $table_name = 'profile_field';
 
-       protected static $model_class = Model\ProfileField::class;
+       protected static $model_class = \Friendica\Profile\ProfileField\Entity\ProfileField::class;
 
        protected static $collection_class = Collection\ProfileFields::class;
 
@@ -58,7 +58,8 @@ class ProfileField extends BaseRepository
 
        /**
         * @param array $data
-        * @return Model\ProfileField
+        *
+        * @return \Friendica\Profile\ProfileField\Entity\ProfileField
         */
        protected function create(array $data)
        {
@@ -67,7 +68,8 @@ class ProfileField extends BaseRepository
 
        /**
         * @param array $condition
-        * @return Model\ProfileField
+        *
+        * @return \Friendica\Profile\ProfileField\Entity\ProfileField
         * @throws \Friendica\Network\HTTPException\NotFoundException
         */
        public function selectFirst(array $condition)
@@ -138,7 +140,8 @@ class ProfileField extends BaseRepository
 
        /**
         * @param array $fields
-        * @return Model\ProfileField|bool
+        *
+        * @return \Friendica\Profile\ProfileField\Entity\ProfileField|bool
         * @throws \Exception
         */
        public function insert(array $fields)
@@ -150,7 +153,8 @@ class ProfileField extends BaseRepository
        }
 
        /**
-        * @param Model\ProfileField $model
+        * @param \Friendica\Profile\ProfileField\Entity\ProfileField $model
+        *
         * @return bool
         * @throws \Exception
         */
@@ -202,7 +206,7 @@ class ProfileField extends BaseRepository
                unset($profileFieldOrder['new']);
 
                // Prunes profile field whose label has been emptied
-               $profileFields = $profileFields->filter(function (Model\ProfileField $profileField) use (&$profileFieldInputs, &$profileFieldOrder) {
+               $profileFields = $profileFields->filter(function (\Friendica\Profile\ProfileField\Entity\ProfileField $profileField) use (&$profileFieldInputs, &$profileFieldOrder) {
                        $keepModel = !isset($profileFieldInputs[$profileField->id]) || !empty($profileFieldInputs[$profileField->id]['label']);
 
                        if (!$keepModel) {
@@ -218,7 +222,7 @@ class ProfileField extends BaseRepository
                $profileFieldOrder = array_flip(array_keys($profileFieldOrder));
 
                // Update existing profile fields from form values
-               $profileFields = $profileFields->map(function (Model\ProfileField $profileField) use ($uid, &$profileFieldInputs, &$profileFieldOrder) {
+               $profileFields = $profileFields->map(function (\Friendica\Profile\ProfileField\Entity\ProfileField $profileField) use ($uid, &$profileFieldInputs, &$profileFieldOrder) {
                        if (isset($profileFieldInputs[$profileField->id]) && isset($profileFieldOrder[$profileField->id])) {
                                $psid = $this->permissionSet->selectOrCreate($this->permissionSetFactory->createFromString(
                                        $uid,