diff --git a/components/Media/Controller/Avatar.php b/components/Media/Controller/Avatar.php index 1d6766b3d2..0c0e556067 100644 --- a/components/Media/Controller/Avatar.php +++ b/components/Media/Controller/Avatar.php @@ -36,9 +36,10 @@ class Avatar extends Controller { switch ($size) { case 'full': - $result = DB::createQuery('select f.file_hash, f.mimetype, f.title from ' . - 'App\\Entity\\File f join App\\Entity\\Avatar a with f.id = a.file_id ' . - 'join App\\Entity\\Profile p with p.id = a.profile_id ' . + $result = DB::createQuery('select f.file_hash, f.mimetype, f.title ' . + 'from App\\Entity\\File f ' . + 'join App\\Entity\\Avatar a with f.id = a.file_id ' . + 'join App\\Entity\\GSActor p with p.id = a.gsactor_id ' . 'where p.nickname = :nickname') ->setParameter('nickname', $nickname) ->getResult(); diff --git a/src/Controller/Security.php b/src/Controller/Security.php index 77f68f5f14..10b9d6618b 100644 --- a/src/Controller/Security.php +++ b/src/Controller/Security.php @@ -6,8 +6,8 @@ use App\Core\Controller; use App\Core\DB\DB; use App\Core\Form; use function App\Core\I18n\_m; +use App\Entity\GSActor; use App\Entity\LocalUser; -use App\Entity\Profile; use App\Security\Authenticator; use App\Security\EmailVerifier; use app\Util\Common; @@ -81,11 +81,11 @@ class Security extends Controller throw new \Exception(_m('Invalid nickname')); } - $profile = Profile::create(['nickname' => $data['nickname']]); - $user = LocalUser::create(['nickname' => $data['nickname'], 'email' => $data['email'], 'password' => $data['password']]); + $actor = GSActor::create(['nickname' => $data['nickname']]); + $user = LocalUser::create(['nickname' => $data['nickname'], 'email' => $data['email'], 'password' => $data['password']]); DB::persist($user); - DB::persist($profile); + DB::persist($actor); DB::flush(); // generate a signed url and email it to the user diff --git a/src/Controller/UserPanel.php b/src/Controller/UserPanel.php index 3447e31387..7928378e90 100644 --- a/src/Controller/UserPanel.php +++ b/src/Controller/UserPanel.php @@ -66,8 +66,8 @@ class UserPanel extends AbstractController public function personal_info(Request $request) { $user = Common::user(); - $profile = $user->getProfile(); - $extra = ['self_tags' => $profile->getSelfTags()]; + $actor = $user->getActor(); + $extra = ['self_tags' => $actor->getSelfTags()]; $form_definition = [ ['nickname', TextType::class, ['label' => _m('Nickname'), 'required' => true, 'help' => _m('1-64 lowercase letters or numbers, no punctuation or spaces.')]], ['full_name', TextType::class, ['label' => _m('Full Name'), 'required' => false, 'help' => _m('A full name is required, if empty it will be set to your nickname.')]], @@ -78,7 +78,7 @@ class UserPanel extends AbstractController ['save', SubmitType::class, ['label' => _m('Save')]], ]; $extra_step = function ($data, $extra_args) use ($user) { $user->setNickname($data['nickname']); }; - $form = Form::handle($form_definition, $request, $profile, $extra, $extra_step, [['self_tags' => $extra['self_tags']]]); + $form = Form::handle($form_definition, $request, $actor, $extra, $extra_step, [['self_tags' => $extra['self_tags']]]); return ['_template' => 'settings/profile.html.twig', 'prof' => $form->createView()]; } @@ -139,18 +139,18 @@ class UserPanel extends AbstractController } else { throw new ClientException('Invalid form'); } - $profile_id = Common::profile()->getId(); - $file = Media::validateAndStoreFile($sfile, Common::config('avatar', 'dir'), $file_title); - $avatar = null; + $actor_id = Common::actor()->getId(); + $file = Media::validateAndStoreFile($sfile, Common::config('avatar', 'dir'), $file_title); + $avatar = null; try { - $avatar = DB::find('avatar', ['profile_id' => $profile_id]); + $avatar = DB::find('avatar', ['actor_id' => $actor_id]); } catch (Exception $e) { } if ($avatar != null) { $avatar->delete(); } else { DB::persist($file); - DB::persist(Avatar::create(['profile_id' => $profile_id, 'file_id' => $file->getId()])); + DB::persist(Avatar::create(['actor_id' => $actor_id, 'file_id' => $file->getId()])); } DB::flush(); // Only delete files if the commit went through @@ -173,12 +173,12 @@ class UserPanel extends AbstractController $label = str_replace('_', ' ', ucfirst($name)); $labels = [ - 'target_profile_id' => 'Target Profiles', - 'dm' => 'DM', + 'target_actor_id' => 'Target Actors', + 'dm' => 'DM', ]; $help = [ - 'target_profile_id' => 'If specified, these settings apply only to these profiles (comma- or space-separated list)', + 'target_actor_id' => 'If specified, these settings apply only to these profiles (comma- or space-separated list)', 'activity_by_followed' => 'Notify me when someone I follow has new activity', 'mention' => 'Notify me when mentions me in a notice', 'reply' => 'Notify me when someone replies to a notice made by me', @@ -195,8 +195,8 @@ class UserPanel extends AbstractController $form_defs['placeholder'][$name] = [$name, CheckboxType::class, ['data' => $val, 'label' => _m($labels[$name] ?? $label), 'help' => _m($help[$name])]]; break; case Types::INTEGER: - if ($name == 'target_profile_id') { - $form_defs['placeholder'][$name] = ['target_profiles', TextType::class, ['data' => $val, 'label' => _m($labels[$name]), 'help' => _m($help[$name])], 'transformer' => ProfileArrayTransformer::class]; + if ($name == 'target_actor_id') { + $form_defs['placeholder'][$name] = ['target_actors', TextType::class, ['data' => $val, 'label' => _m($labels[$name]), 'help' => _m($help[$name])], 'transformer' => ActorArrayTransformer::class]; break; } // no break diff --git a/src/Core/Controller.php b/src/Core/Controller.php index 93464bef12..1da03fbd71 100644 --- a/src/Core/Controller.php +++ b/src/Core/Controller.php @@ -62,7 +62,7 @@ class Controller extends AbstractController implements EventSubscriberInterface $controller = $event->getController(); $request = $event->getRequest(); - if (($user = Common::user()) !== null && ($avatar = DB::find('avatar', ['profile_id' => $user->getProfile()->getId()])) != null) { + if (($user = Common::user()) !== null && ($avatar = DB::find('avatar', ['gsactor_id' => $user->getActor()->getId()])) != null) { $avatar_filename = $avatar->getUrl(); } else { $avatar_filename = '/public/assets/default_avatar.svg'; diff --git a/src/Core/DB/DB.php b/src/Core/DB/DB.php index 6c96d1ecc4..5fbc034cf8 100644 --- a/src/Core/DB/DB.php +++ b/src/Core/DB/DB.php @@ -100,6 +100,9 @@ abstract class DB $args[0] = '\App\Entity\\' . ucfirst(Formatting::snakeCaseToCamelCase($args[0])); } } + if (($args[0] ?? '') === '\App\Entity\Gsactor') { + $args[0] = '\App\Entity\GSActor'; + } return self::$em->{$name}(...$args); } diff --git a/src/Util/Common.php b/src/Util/Common.php index acd0fa031f..5f9b8de19a 100644 --- a/src/Util/Common.php +++ b/src/Util/Common.php @@ -35,8 +35,8 @@ namespace App\Util; use App\Core\DB\DB; use App\Core\Router; use App\Core\Security; +use App\Entity\GSActor; use App\Entity\LocalUser; -use App\Entity\Profile; use Functional as F; abstract class Common @@ -75,9 +75,9 @@ abstract class Common return Security::getUser(); } - public static function profile(): ?Profile + public static function actor(): ?GSActor { - return self::user()->getProfile(); + return self::user()->getActor(); } /** diff --git a/src/Util/Form/ProfileArrayTransformer.php b/src/Util/Form/ActorArrayTransformer.php similarity index 96% rename from src/Util/Form/ProfileArrayTransformer.php rename to src/Util/Form/ActorArrayTransformer.php index 8a53e57a54..d16d5bf2c5 100644 --- a/src/Util/Form/ProfileArrayTransformer.php +++ b/src/Util/Form/ActorArrayTransformer.php @@ -32,7 +32,7 @@ namespace App\Util\Form; -class ProfileArrayTransformer extends ArrayTransformer +class ActorArrayTransformer extends ArrayTransformer { /** * @param array $a diff --git a/src/Util/Nickname.php b/src/Util/Nickname.php index 21f1fb6e59..53ccc590a1 100644 --- a/src/Util/Nickname.php +++ b/src/Util/Nickname.php @@ -22,6 +22,9 @@ namespace App\Util; use App\Core\DB\DB; +use App\Entity\GSActor; +use App\Entity\LocalGroup; +use App\Entity\LocalUser; use Normalizer; /** @@ -146,9 +149,9 @@ class Nickname } elseif (self::isReserved($nickname) || Common::isSystemPath($nickname)) { throw new NicknameReservedException(); } elseif ($check_already_used) { - $profile = self::isTaken($nickname); - if ($profile instanceof Profile) { - throw new NicknameTakenException($profile); + $actor = self::isTaken($nickname); + if ($actor instanceof GSActor) { + throw new NicknameTakenException($actor); } } @@ -197,9 +200,9 @@ class Nickname /** * Is the nickname already in use locally? Checks the User table. * - * @return null|Profile Returns Profile if nickname found, otherwise null + * @return null|GSActor Returns GSActor if nickname found */ - public static function isTaken(string $nickname): ?Profile + public static function isTaken(string $nickname): ?GSActor { $found = DB::findBy('local_user', ['nickname' => $nickname]); if ($found instanceof LocalUser) { @@ -207,7 +210,7 @@ class Nickname } $found = DB::findBy('local_group', ['nickname' => $nickname]); - if ($found instanceof Local_group) { + if ($found instanceof LocalGroup) { return $found->getProfile(); }