Skip to content
This repository was archived by the owner on Apr 3, 2021. It is now read-only.

Commit 578ef20

Browse files
committed
Merge pull request discourse#1488 from cfstras/removeAllowedUser
Allow removing users from private conversations
2 parents 8e47072 + 15a973f commit 578ef20

File tree

5 files changed

+30
-3
lines changed

5 files changed

+30
-3
lines changed

app/assets/javascripts/discourse/controllers/topic_controller.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,8 +476,19 @@ Discourse.TopicController = Discourse.ObjectController.extend(Discourse.Selected
476476
},
477477

478478
removeAllowedUser: function(username) {
479-
this.get('details').removeAllowedUser(username);
479+
var self = this;
480+
bootbox.dialog(I18n.t("private_message_info.remove_allowed_user", {name: username}), [
481+
{label: I18n.t("no_value"),
482+
'class': 'btn-danger rightg'},
483+
{label: I18n.t("yes_value"),
484+
'class': 'btn-primary',
485+
callback: function() {
486+
self.get('details').removeAllowedUser(username);
487+
}
488+
}
489+
]);
480490
}
491+
481492
});
482493

483494

app/assets/javascripts/discourse/models/topic_details.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,15 @@ Discourse.TopicDetails = Discourse.Model.extend({
4949
type: 'POST',
5050
data: { notification_level: v }
5151
});
52-
}
52+
},
5353

54+
removeAllowedUser: function(username) {
55+
var users = this.get('allowed_users');
56+
Discourse.ajax("/t/" + this.get('topic.id') + "/remove-allowed-user", {
57+
type: 'PUT',
58+
data: { username: username }
59+
}).then(function(res) {
60+
users.removeObject(users.findProperty('username', username));
61+
});
62+
}
5463
});

app/models/topic.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,12 @@ def change_category(name)
382382
def remove_allowed_user(username)
383383
user = User.where(username: username).first
384384
if user
385-
topic_allowed_users.where(user_id: user.id).first.destroy
385+
topic_user = topic_allowed_users.where(user_id: user.id).first
386+
if topic_user
387+
topic_user.destroy
388+
else
389+
false
390+
end
386391
end
387392
end
388393

config/locales/client.de.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,7 @@ de:
373373
private_message_info:
374374
title: "Privates Gespräch"
375375
invite: "Andere einladen..."
376+
remove_allowed_user: "Willst du {{name}} wirklich aus diesem Gespräch entfernen?"
376377

377378
email: 'Mail'
378379
username: 'Benutzername'

config/locales/client.en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,7 @@ en:
372372
private_message_info:
373373
title: "Private Message"
374374
invite: "Invite Others..."
375+
remove_allowed_user: "Do you really want to remove {{name}} from this private message?"
375376

376377
email: 'Email'
377378
username: 'Username'

0 commit comments

Comments
 (0)