From bd307e4780112a83245d3ebb6688f751e722a14c Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov Date: Wed, 2 Dec 2020 17:29:39 -0500 Subject: [PATCH] Only show nickname edit options if nickname driver is enabled --- extensions/nicknames/extend.php | 13 ++++++++++--- extensions/nicknames/js/src/forum/index.js | 8 ++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/extensions/nicknames/extend.php b/extensions/nicknames/extend.php index a2b39b107..7a50ea577 100644 --- a/extensions/nicknames/extend.php +++ b/extensions/nicknames/extend.php @@ -11,19 +11,21 @@ namespace Flarum\Nicknames; +use Flarum\Api\Serializer\ForumSerializer; use Flarum\Api\Serializer\UserSerializer; use Flarum\Event\ConfigureUserGambits; use Flarum\Extend; +use Flarum\Settings\SettingsRepositoryInterface; use Flarum\User\Event\Saving; use Flarum\User\User; use Flarum\User\UserValidator; return [ (new Extend\Frontend('forum')) - ->js(__DIR__.'/js/dist/forum.js'), + ->js(__DIR__ . '/js/dist/forum.js'), (new Extend\Frontend('admin')) - ->js(__DIR__.'/js/dist/admin.js'), + ->js(__DIR__ . '/js/dist/admin.js'), (new Extend\User()) ->displayNameDriver('nickname', NicknameDriver::class), @@ -36,11 +38,16 @@ return [ ->listen(ConfigureUserGambits::class, SetUserNicknameGambit::class), (new Extend\ApiSerializer(UserSerializer::class)) - ->attribute('canEditOwnNickname', function($serializer, $user) { + ->attribute('canEditOwnNickname', function ($serializer, $user) { $actor = $serializer->getActor(); return $actor->id === $user->id && $serializer->getActor()->can('editOwnNickname', $user); }), + (new Extend\ApiSerializer(ForumSerializer::class)) + ->attribute('displayNameDriver', function ($serializer, $user) { + return app(SettingsRepositoryInterface::class)->get('display_name_driver', 'username'); + }), + (new Extend\Validator(UserValidator::class)) ->configure(AddNicknameValidation::class), diff --git a/extensions/nicknames/js/src/forum/index.js b/extensions/nicknames/js/src/forum/index.js index d4a83fd5a..77ff422dd 100644 --- a/extensions/nicknames/js/src/forum/index.js +++ b/extensions/nicknames/js/src/forum/index.js @@ -12,6 +12,8 @@ app.initializers.add('flarum/nicknames', () => { User.prototype.canEditOwnNickname = Model.attribute('canEditOwnNickname'); extend(SettingsPage.prototype, 'accountItems', function (items) { + if (app.forum.attribute('displayNameDriver') !== 'nickname') return; + if (this.user.canEditOwnNickname()) { items.add('changeNickname',