mirror of
https://github.com/flarum/core.git
synced 2025-07-15 13:56:23 +02:00
Make frontend use gate output instead of hard-coded logic
Hide nickname from edit modal if user cannot edit
This commit is contained in:
committed by
Daniël Klabbers
parent
4cce5fbbda
commit
05e936bbe4
@ -35,9 +35,8 @@ return [
|
||||
->listen(Saving::class, SaveNicknameToDatabase::class),
|
||||
|
||||
(new Extend\ApiSerializer(UserSerializer::class))
|
||||
->attribute('canEditOwnNickname', function ($serializer, $user) {
|
||||
$actor = $serializer->getActor();
|
||||
return $actor->id === $user->id && $serializer->getActor()->can('editOwnNickname', $user);
|
||||
->attribute('canEditNickname', function (UserSerializer $serializer, User $user) {
|
||||
return $serializer->getActor()->can('editNickname', $user);
|
||||
}),
|
||||
|
||||
(new Extend\Settings())
|
||||
|
@ -11,12 +11,12 @@ import Stream from 'flarum/common/utils/Stream';
|
||||
import NickNameModal from './components/NicknameModal';
|
||||
|
||||
app.initializers.add('flarum/nicknames', () => {
|
||||
User.prototype.canEditOwnNickname = Model.attribute('canEditOwnNickname');
|
||||
User.prototype.canEditNickname = Model.attribute('canEditNickname');
|
||||
|
||||
extend(SettingsPage.prototype, 'accountItems', function (items) {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
if (this.user.canEditOwnNickname()) {
|
||||
if (this.user.canEditNickname()) {
|
||||
items.add(
|
||||
'changeNickname',
|
||||
<Button className="Button" onclick={() => app.modal.show(NickNameModal)}>
|
||||
@ -27,14 +27,14 @@ app.initializers.add('flarum/nicknames', () => {
|
||||
});
|
||||
|
||||
extend(EditUserModal.prototype, 'oninit', function () {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
this.nickname = Stream(this.attrs.user.displayName());
|
||||
});
|
||||
|
||||
extend(EditUserModal.prototype, 'fields', function (items) {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
if (!this.attrs.user.canEditNickname()) return;
|
||||
|
||||
items.add(
|
||||
'nickname',
|
||||
<div className="Form-group">
|
||||
@ -52,7 +52,8 @@ app.initializers.add('flarum/nicknames', () => {
|
||||
extend(EditUserModal.prototype, 'data', function (data) {
|
||||
if (app.forum.attribute('displayNameDriver') !== 'nickname') return;
|
||||
|
||||
const user = this.attrs.user;
|
||||
if (!this.attrs.user.canEditNickname()) return;
|
||||
|
||||
if (this.nickname() !== this.attrs.user.displayName()) {
|
||||
data.nickname = this.nickname();
|
||||
}
|
||||
|
Reference in New Issue
Block a user