Don't offer banning users that are already banned
This commit is contained in:
@@ -104,7 +104,7 @@ Kirigami.OverlaySheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser && room.canSendState("kick") && room.containsUser(user)
|
visible: user !== room.localUser && room.canSendState("kick") && room.containsUser(user.id)
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Kick this user")
|
text: i18n("Kick this user")
|
||||||
@@ -116,7 +116,7 @@ Kirigami.OverlaySheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Kirigami.BasicListItem {
|
Kirigami.BasicListItem {
|
||||||
visible: user !== room.localUser && room.canSendState("ban")
|
visible: user !== room.localUser && room.canSendState("ban") && !room.isUserBanned(user.id)
|
||||||
|
|
||||||
action: Kirigami.Action {
|
action: Kirigami.Action {
|
||||||
text: i18n("Ban this user")
|
text: i18n("Ban this user")
|
||||||
|
|||||||
@@ -685,3 +685,8 @@ bool NeoChatRoom::isInvite() const
|
|||||||
{
|
{
|
||||||
return joinState() == JoinState::Invite;
|
return joinState() == JoinState::Invite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NeoChatRoom::isUserBanned(const QString &user) const
|
||||||
|
{
|
||||||
|
return getCurrentState<RoomMemberEvent>(user)->membership() == MembershipType::Ban;
|
||||||
|
}
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ public:
|
|||||||
[[nodiscard]] QString eventToString(const RoomEvent &evt, Qt::TextFormat format = Qt::PlainText, bool removeReply = true) const;
|
[[nodiscard]] QString eventToString(const RoomEvent &evt, Qt::TextFormat format = Qt::PlainText, bool removeReply = true) const;
|
||||||
|
|
||||||
Q_INVOKABLE [[nodiscard]] bool containsUser(const QString &userID) const;
|
Q_INVOKABLE [[nodiscard]] bool containsUser(const QString &userID) const;
|
||||||
|
Q_INVOKABLE [[nodiscard]] bool isUserBanned(const QString &user) const;
|
||||||
|
|
||||||
Q_INVOKABLE [[nodiscard]] bool canSendEvent(const QString &eventType) const;
|
Q_INVOKABLE [[nodiscard]] bool canSendEvent(const QString &eventType) const;
|
||||||
Q_INVOKABLE [[nodiscard]] bool canSendState(const QString &eventType) const;
|
Q_INVOKABLE [[nodiscard]] bool canSendState(const QString &eventType) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user