summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-09-24 02:15:25 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-09-24 02:15:25 -0400
commit83417819186394e8d840167841103211ebe5fe33 (patch)
tree5dce1e411716d5be161d2e9795a99460b80e6c8c /components
parentdbe9dc3c64555f1aaaed1755d37e6f8b450a54f6 (diff)
downloadabaddon-portaudio-83417819186394e8d840167841103211ebe5fe33.tar.gz
abaddon-portaudio-83417819186394e8d840167841103211ebe5fe33.zip
basic permission handling + use for edit/delete
Diffstat (limited to 'components')
-rw-r--r--components/chatmessage.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp
index c846e20..6d1fb91 100644
--- a/components/chatmessage.cpp
+++ b/components/chatmessage.cpp
@@ -163,11 +163,12 @@ void ChatMessageItem::AttachMenuHandler(Gtk::Widget *widget) {
// clang-format on
void ChatMessageItem::ShowMenu(const GdkEvent *event) {
- auto &client = Abaddon::Get().GetDiscordClient();
- auto *data = client.GetMessage(ID);
- bool can_manage = client.GetUserData().ID == data->Author.ID;
- m_menu_delete_message->set_sensitive(can_manage);
- m_menu_edit_message->set_sensitive(can_manage);
+ const auto &client = Abaddon::Get().GetDiscordClient();
+ const auto *data = client.GetMessage(ID);
+ const bool can_edit = client.GetUserData().ID == data->Author.ID;
+ const bool can_delete = can_edit || client.HasChannelPermission(client.GetUserData().ID, ChannelID, Permission::MANAGE_MESSAGES);
+ m_menu_delete_message->set_sensitive(can_delete);
+ m_menu_edit_message->set_sensitive(can_edit);
m_menu.popup_at_pointer(event);
}