diff --git a/src/ACL.cpp b/src/ACL.cpp
index 86aeaeef7b6..15b23c269ab 100644
--- a/src/ACL.cpp
+++ b/src/ACL.cpp
@@ -314,6 +314,8 @@ QString ChanACL::whatsThis(Perm p) {
case Listen:
return tr("This represents the permission to use the listen-feature allowing to listen to a channel "
"without being in it.");
+ case PrivateMessage:
+ return tr("This represents the permission to write direct text messages to other users on the server.");
default:
break;
}
@@ -369,6 +371,8 @@ QString ChanACL::permName(Perm p) {
return tr("Register Self");
case Listen:
return tr("Listen");
+ case PrivateMessage:
+ return tr("Private message");
default:
break;
}
diff --git a/src/ACL.h b/src/ACL.h
index f9046c9ce47..a58d5fd5297 100644
--- a/src/ACL.h
+++ b/src/ACL.h
@@ -32,6 +32,7 @@ class ChanACL : public QObject {
TextMessage = 0x200,
MakeTempChannel = 0x400,
Listen = 0x800,
+ PrivateMessage = 0x1000,
// Root channel only
Kick = 0x10000,
@@ -42,7 +43,7 @@ class ChanACL : public QObject {
Cached = 0x8000000,
All = Write + Traverse + Enter + Speak + MuteDeafen + Move + MakeChannel + LinkChannel + Whisper + TextMessage
- + MakeTempChannel + Listen + Kick + Ban + Register + SelfRegister + ResetUserContent
+ + MakeTempChannel + Listen + PrivateMessage + Kick + Ban + Register + SelfRegister + ResetUserContent
};
Q_DECLARE_FLAGS(Permissions, Perm)
diff --git a/src/mumble/ACLEditor.cpp b/src/mumble/ACLEditor.cpp
index 01c05e8b885..4825a77bd20 100644
--- a/src/mumble/ACLEditor.cpp
+++ b/src/mumble/ACLEditor.cpp
@@ -120,6 +120,10 @@ ACLEditor::ACLEditor(unsigned int channelid, const MumbleProto::ACL &mea, QWidge
&& (perm == ChanACL::ResetUserContent || perm == ChanACL::Listen)) {
continue;
}
+ else if (Global::get().sh->m_version < Version::fromComponents(1, 7, 0)
+ && (perm == ChanACL::PrivateMessage)) {
+ continue;
+ }
QCheckBox *qcb;
l = new QLabel(name, qgbACLpermissions);
diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
index 057005fd85f..757558ec4db 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -2057,7 +2057,6 @@ void MainWindow::on_qaUserBan_triggered() {
void MainWindow::on_qaUserTextMessage_triggered() {
ClientUser *p = getContextMenuUser();
-
if (!p)
return;
@@ -2627,7 +2626,12 @@ void MainWindow::updateMenuPermissions() {
qaUserDeaf->setEnabled(p & (ChanACL::Write | ChanACL::MuteDeafen)
&& ((target.user != user) || target.user->bDeaf));
qaUserPrioritySpeaker->setEnabled(p & (ChanACL::Write | ChanACL::MuteDeafen));
- qaUserTextMessage->setEnabled(p & (ChanACL::Write | ChanACL::TextMessage));
+ if (Global::get().sh && (Global::get().sh->m_version >= Version::fromComponents(1, 7, 0))) {
+ qaUserTextMessage->setEnabled(p & (ChanACL::Write | ChanACL::PrivateMessage));
+ }
+ else {
+ qaUserTextMessage->setEnabled(p & (ChanACL::Write | ChanACL::TextMessage));
+ }
qaUserInformation->setEnabled((Global::get().pPermissions & (ChanACL::Write | ChanACL::Register))
|| (p & (ChanACL::Write | ChanACL::Enter)) || (target.user == user));
} else {
@@ -2653,11 +2657,20 @@ void MainWindow::updateMenuPermissions() {
qaChannelSendMessage->setEnabled(p & (ChanACL::Write | ChanACL::TextMessage));
qaChannelHide->setEnabled(target.channel);
qaChannelPin->setEnabled(target.channel);
-
bool chatBarEnabled = false;
if (Global::get().uiSession) {
if (Global::get().s.bChatBarUseSelection && (target.channel || target.user)) {
- chatBarEnabled = p & (ChanACL::Write | ChanACL::TextMessage);
+ if (Global::get().sh && (Global::get().sh->m_version >= Version::fromComponents(1, 7, 0))) {
+ if (target.user) {
+ chatBarEnabled = p & (ChanACL::Write | ChanACL::PrivateMessage);
+ }
+ else if (target.channel) {
+ chatBarEnabled = p & (ChanACL::Write | ChanACL::TextMessage);
+ }
+ }
+ else{
+ chatBarEnabled = p & (ChanACL::Write | ChanACL::TextMessage);
+ }
} else if (homec) {
chatBarEnabled = homep & (ChanACL::Write | ChanACL::TextMessage);
}
diff --git a/src/mumble/mumble_ar.ts b/src/mumble/mumble_ar.ts
index 3db10db4512..bac705ebdd4 100644
--- a/src/mumble/mumble_ar.ts
+++ b/src/mumble/mumble_ar.ts
@@ -2988,6 +2988,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_bg.ts b/src/mumble/mumble_bg.ts
index 7c609998816..a126eb14ff8 100644
--- a/src/mumble/mumble_bg.ts
+++ b/src/mumble/mumble_bg.ts
@@ -2985,6 +2985,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_br.ts b/src/mumble/mumble_br.ts
index 269d0747d65..271b4b68d1f 100644
--- a/src/mumble/mumble_br.ts
+++ b/src/mumble/mumble_br.ts
@@ -2984,6 +2984,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_ca.ts b/src/mumble/mumble_ca.ts
index 71eb27b3d9b..57c95dd9ab2 100644
--- a/src/mumble/mumble_ca.ts
+++ b/src/mumble/mumble_ca.ts
@@ -3025,6 +3025,14 @@ Esteu segur que vols substituir el vostre certificat?
Reset User ContentReinicia el Contingut de l'Usuaei
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_cs.ts b/src/mumble/mumble_cs.ts
index 90c929687e5..abe683deadb 100644
--- a/src/mumble/mumble_cs.ts
+++ b/src/mumble/mumble_cs.ts
@@ -3026,6 +3026,14 @@ Jste si jisti, že chcete certifikát nahradit?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_cy.ts b/src/mumble/mumble_cy.ts
index bb40b1ab8fc..ebc89245f1b 100644
--- a/src/mumble/mumble_cy.ts
+++ b/src/mumble/mumble_cy.ts
@@ -2988,6 +2988,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_da.ts b/src/mumble/mumble_da.ts
index 14e06985ff4..a4ea988e346 100644
--- a/src/mumble/mumble_da.ts
+++ b/src/mumble/mumble_da.ts
@@ -3025,6 +3025,14 @@ Er du sikker på du vil erstatte dit certifikat?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_de.ts b/src/mumble/mumble_de.ts
index d2354fc3d5a..9946e3488b0 100644
--- a/src/mumble/mumble_de.ts
+++ b/src/mumble/mumble_de.ts
@@ -3025,6 +3025,14 @@ Sind Sie sicher, dass Sie Ihr Zertifikat ersetzen möchten?
Reset User ContentSetze Benutzer-Inhalt zurück
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_el.ts b/src/mumble/mumble_el.ts
index f8adf2e99df..4ec1f97e78b 100644
--- a/src/mumble/mumble_el.ts
+++ b/src/mumble/mumble_el.ts
@@ -3025,6 +3025,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentΕπαναφορά περιεχομένου χρήστη
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_en.ts b/src/mumble/mumble_en.ts
index efe1fea961e..26c859cbb34 100644
--- a/src/mumble/mumble_en.ts
+++ b/src/mumble/mumble_en.ts
@@ -2983,6 +2983,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_en_GB.ts b/src/mumble/mumble_en_GB.ts
index cb8ec9b69a1..90a17043243 100644
--- a/src/mumble/mumble_en_GB.ts
+++ b/src/mumble/mumble_en_GB.ts
@@ -3025,6 +3025,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentReset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_eo.ts b/src/mumble/mumble_eo.ts
index 539cf8cec44..0756829152c 100644
--- a/src/mumble/mumble_eo.ts
+++ b/src/mumble/mumble_eo.ts
@@ -2992,6 +2992,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_es.ts b/src/mumble/mumble_es.ts
index 78741f9c4ea..c3c32f33ef9 100644
--- a/src/mumble/mumble_es.ts
+++ b/src/mumble/mumble_es.ts
@@ -3025,6 +3025,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentRestablecer contenido del usuario
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_et.ts b/src/mumble/mumble_et.ts
index 0302021ea4e..174d83a4e90 100644
--- a/src/mumble/mumble_et.ts
+++ b/src/mumble/mumble_et.ts
@@ -2985,6 +2985,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentNulli kasutaja sisu
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_eu.ts b/src/mumble/mumble_eu.ts
index fb052715f51..e3c03bf6bd8 100644
--- a/src/mumble/mumble_eu.ts
+++ b/src/mumble/mumble_eu.ts
@@ -2995,6 +2995,14 @@ adierazten du.
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_fa_IR.ts b/src/mumble/mumble_fa_IR.ts
index 7685d73347d..e4e15dd0978 100644
--- a/src/mumble/mumble_fa_IR.ts
+++ b/src/mumble/mumble_fa_IR.ts
@@ -2985,6 +2985,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_fi.ts b/src/mumble/mumble_fi.ts
index b1c35ceb7ac..0863b6f4184 100644
--- a/src/mumble/mumble_fi.ts
+++ b/src/mumble/mumble_fi.ts
@@ -3025,6 +3025,14 @@ Haluatko varmasti korvata varmenteen?
Reset User ContentPoista käyttäjän sisältö
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_fr.ts b/src/mumble/mumble_fr.ts
index b7a3f9484bf..144d8c2b040 100644
--- a/src/mumble/mumble_fr.ts
+++ b/src/mumble/mumble_fr.ts
@@ -3025,6 +3025,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentRéinitialiser le contenu utilisateur
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_gl.ts b/src/mumble/mumble_gl.ts
index 51690ba3c25..d59fc236e73 100644
--- a/src/mumble/mumble_gl.ts
+++ b/src/mumble/mumble_gl.ts
@@ -2986,6 +2986,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_he.ts b/src/mumble/mumble_he.ts
index dd0d1206350..9a8bc2874e0 100644
--- a/src/mumble/mumble_he.ts
+++ b/src/mumble/mumble_he.ts
@@ -3023,6 +3023,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_hi.ts b/src/mumble/mumble_hi.ts
index 109e2d6c90a..053dd796a91 100644
--- a/src/mumble/mumble_hi.ts
+++ b/src/mumble/mumble_hi.ts
@@ -2971,6 +2971,14 @@ Are you sure you wish to replace your certificate?
Listen
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_hu.ts b/src/mumble/mumble_hu.ts
index ffb22e4a4c3..88eba62be85 100644
--- a/src/mumble/mumble_hu.ts
+++ b/src/mumble/mumble_hu.ts
@@ -3014,6 +3014,14 @@ Biztos abban, hogy le akarja cserélni a tanúsítványát?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_it.ts b/src/mumble/mumble_it.ts
index 7e03557a63a..3e5a821274f 100644
--- a/src/mumble/mumble_it.ts
+++ b/src/mumble/mumble_it.ts
@@ -3025,6 +3025,14 @@ Sei sicuro di voler sostituire il tuo certificato?
Reset User ContentCancella Contenuto Utente
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_ja.ts b/src/mumble/mumble_ja.ts
index fc72386a94f..a5da070ba8e 100644
--- a/src/mumble/mumble_ja.ts
+++ b/src/mumble/mumble_ja.ts
@@ -3020,6 +3020,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_ko.ts b/src/mumble/mumble_ko.ts
index fd1cbe8122b..e1a3d547431 100644
--- a/src/mumble/mumble_ko.ts
+++ b/src/mumble/mumble_ko.ts
@@ -3024,6 +3024,14 @@ Are you sure you wish to replace your certificate?
Reset User Content유저 내용 초기화
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_lt.ts b/src/mumble/mumble_lt.ts
index f97957e7cee..578fa518a08 100644
--- a/src/mumble/mumble_lt.ts
+++ b/src/mumble/mumble_lt.ts
@@ -3016,6 +3016,14 @@ Ar tikrai norite pakeisti savo liudijimą?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_nl.ts b/src/mumble/mumble_nl.ts
index f2c9abe6884..d77786173be 100644
--- a/src/mumble/mumble_nl.ts
+++ b/src/mumble/mumble_nl.ts
@@ -3025,6 +3025,14 @@ Weet je zeker dat je jouw certificaat wilt vervangen?
Reset User ContentGebruikersinhoud wissen
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_no.ts b/src/mumble/mumble_no.ts
index 6992c1a8d36..a95025cad9f 100644
--- a/src/mumble/mumble_no.ts
+++ b/src/mumble/mumble_no.ts
@@ -3039,6 +3039,14 @@ Er du sikker på at du vil erstatte ditt sertifikat?
Reset User ContentTilbakestill brukerinnhold
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_oc.ts b/src/mumble/mumble_oc.ts
index 62a61e74219..d44a5039559 100644
--- a/src/mumble/mumble_oc.ts
+++ b/src/mumble/mumble_oc.ts
@@ -2985,6 +2985,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_pl.ts b/src/mumble/mumble_pl.ts
index 64fce966348..4348c04fa45 100644
--- a/src/mumble/mumble_pl.ts
+++ b/src/mumble/mumble_pl.ts
@@ -3026,6 +3026,14 @@ Czy na pewno chcesz zastąpić swój bieżący certyfikat?
Reset User ContentResetuj treści użytkownika
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_pt_BR.ts b/src/mumble/mumble_pt_BR.ts
index 41ff3da98a4..444b3336dda 100644
--- a/src/mumble/mumble_pt_BR.ts
+++ b/src/mumble/mumble_pt_BR.ts
@@ -3025,6 +3025,14 @@ Você tem certeza de que quer substituir o seu certificado?
Reset User ContentRestaurar Conteúdo de Usuários
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_pt_PT.ts b/src/mumble/mumble_pt_PT.ts
index 8781d7dfbf7..9ffaeba42ca 100644
--- a/src/mumble/mumble_pt_PT.ts
+++ b/src/mumble/mumble_pt_PT.ts
@@ -3025,6 +3025,14 @@ Tem certeza de que quer substituir o seu certificado?
Reset User ContentRedefinir conteúdo de utilizadores
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_ro.ts b/src/mumble/mumble_ro.ts
index 05d4cd91321..438d56a6f04 100644
--- a/src/mumble/mumble_ro.ts
+++ b/src/mumble/mumble_ro.ts
@@ -2993,6 +2993,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_ru.ts b/src/mumble/mumble_ru.ts
index dab51179d1a..9d4930b27c0 100644
--- a/src/mumble/mumble_ru.ts
+++ b/src/mumble/mumble_ru.ts
@@ -3026,6 +3026,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentУдалить данные пользователя
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_si.ts b/src/mumble/mumble_si.ts
index ab08ed89903..bccfdfd1c17 100644
--- a/src/mumble/mumble_si.ts
+++ b/src/mumble/mumble_si.ts
@@ -2966,6 +2966,14 @@ Are you sure you wish to replace your certificate?
Listen
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_sk.ts b/src/mumble/mumble_sk.ts
index 210782b206d..58a353ddeed 100644
--- a/src/mumble/mumble_sk.ts
+++ b/src/mumble/mumble_sk.ts
@@ -2970,6 +2970,14 @@ Are you sure you wish to replace your certificate?
Listen
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_sq.ts b/src/mumble/mumble_sq.ts
index bf792cd97d6..9369e9a8f7c 100644
--- a/src/mumble/mumble_sq.ts
+++ b/src/mumble/mumble_sq.ts
@@ -2972,6 +2972,14 @@ Are you sure you wish to replace your certificate?
ListenDëgjojeni
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_sv.ts b/src/mumble/mumble_sv.ts
index 8ee33c44661..d6679643401 100644
--- a/src/mumble/mumble_sv.ts
+++ b/src/mumble/mumble_sv.ts
@@ -3025,6 +3025,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentÅterställ användarinnehåll
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_te.ts b/src/mumble/mumble_te.ts
index 8d44cdb11e7..7bb8b0b9ebb 100644
--- a/src/mumble/mumble_te.ts
+++ b/src/mumble/mumble_te.ts
@@ -2996,6 +2996,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_th.ts b/src/mumble/mumble_th.ts
index 66c9169181b..b23d935abc2 100644
--- a/src/mumble/mumble_th.ts
+++ b/src/mumble/mumble_th.ts
@@ -2983,6 +2983,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_tr.ts b/src/mumble/mumble_tr.ts
index 2be0c9604cd..7fb4a9c5a17 100644
--- a/src/mumble/mumble_tr.ts
+++ b/src/mumble/mumble_tr.ts
@@ -3024,6 +3024,14 @@ Sertifikanızı değiştirmek istediğinize emin misiniz?
Reset User ContentKullanıcı İçeriğini Sıfırla
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_uk.ts b/src/mumble/mumble_uk.ts
index 09133e20d4c..48c303131fe 100644
--- a/src/mumble/mumble_uk.ts
+++ b/src/mumble/mumble_uk.ts
@@ -3026,6 +3026,14 @@ Are you sure you wish to replace your certificate?
Reset User ContentСкинути вміст користувача
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_zh_CN.ts b/src/mumble/mumble_zh_CN.ts
index 50e2d4a1987..97d3ce9f83f 100644
--- a/src/mumble/mumble_zh_CN.ts
+++ b/src/mumble/mumble_zh_CN.ts
@@ -3024,6 +3024,14 @@ Are you sure you wish to replace your certificate?
Reset User Content重置用户信息
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_zh_HK.ts b/src/mumble/mumble_zh_HK.ts
index 4dd7d9578c5..3f34c57aa7a 100644
--- a/src/mumble/mumble_zh_HK.ts
+++ b/src/mumble/mumble_zh_HK.ts
@@ -2983,6 +2983,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/mumble/mumble_zh_TW.ts b/src/mumble/mumble_zh_TW.ts
index 2039b91111a..62115637967 100644
--- a/src/mumble/mumble_zh_TW.ts
+++ b/src/mumble/mumble_zh_TW.ts
@@ -3004,6 +3004,14 @@ Are you sure you wish to replace your certificate?
Reset User Content
+
+ This represents the permission to write direct text messages to other users on the server.
+
+
+
+ Private message
+
+ ChatbarTextEdit
diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
index 62a6880f4f5..3a86ea4b5c9 100644
--- a/src/murmur/Messages.cpp
+++ b/src/murmur/Messages.cpp
@@ -1738,8 +1738,8 @@ void Server::msgTextMessage(ServerUser *uSource, MumbleProto::TextMessage &msg)
unsigned int session = msg.session(i);
ServerUser *u = qhUsers.value(session);
if (u) {
- if (!ChanACL::hasPermission(uSource, u->cChannel, ChanACL::TextMessage, &acCache)) {
- PERM_DENIED(uSource, u->cChannel, ChanACL::TextMessage);
+ if (!ChanACL::hasPermission(uSource, u->cChannel, ChanACL::PrivateMessage, &acCache)) {
+ PERM_DENIED(uSource, u->cChannel, ChanACL::PrivateMessage);
return;
}
users.insert(u);
diff --git a/src/murmur/database/ACLTable.cpp b/src/murmur/database/ACLTable.cpp
index 2dcc48ef6be..35b80c19ba2 100644
--- a/src/murmur/database/ACLTable.cpp
+++ b/src/murmur/database/ACLTable.cpp
@@ -503,6 +503,12 @@ namespace server {
soci::use(accessToken, accessTokenInd), soci::use(groupModifiers, groupModInd),
soci::use(applyHere), soci::use(applySub), soci::use(grantPriv), soci::use(revokePriv);
}
+ } else if (fromSchemaVersion < 12) {
+ ::mdb::TransactionHolder transaction = ensureTransaction();
+ m_sql << "UPDATE " << NAME << " SET "
+ << column::granted_flags << "= " << column::granted_flags << "| ((" << column::granted_flags << " & 0x200) << 3), "
+ << column::revoked_flags << "= " << column::revoked_flags << "| ((" << column::revoked_flags << " & 0x200) << 3);";
+ transaction.commit();
} else {
// Use default implementation to handle migration without change of format
mdb::Table::migrate(fromSchemaVersion, toSchemaVersion);
diff --git a/src/murmur/database/ServerDatabase.h b/src/murmur/database/ServerDatabase.h
index da960b467b3..15e1454bb2b 100644
--- a/src/murmur/database/ServerDatabase.h
+++ b/src/murmur/database/ServerDatabase.h
@@ -37,7 +37,7 @@ namespace server {
* has to be accompanied by increasing this number. A decrease is never allowed!
* Using a schema version like this allows us to be able to create migration paths between schema versions.
*/
- static constexpr unsigned int DB_SCHEMA_VERSION = 11;
+ static constexpr unsigned int DB_SCHEMA_VERSION = 12;
ServerDatabase(::mumble::db::Backend backend);
~ServerDatabase() = default;
diff --git a/src/tests/TestDatabase/server/table_data/acl_table_input.json b/src/tests/TestDatabase/server/table_data/acl_table_input.json
index f40fc27e8ea..8066ce2cdf2 100644
--- a/src/tests/TestDatabase/server/table_data/acl_table_input.json
+++ b/src/tests/TestDatabase/server/table_data/acl_table_input.json
@@ -127,7 +127,7 @@
1,
0,
0,
- 5
+ 512
],
[
0,
@@ -140,7 +140,96 @@
"!;,3,2",
1,
0,
+ 520,
+ 5
+ ],
+ [
+ 0,
+ 1,
+ 2,
+ null,
+ null,
+ null,
+ "letmein",
+ null,
+ 1,
+ 0,
+ 0,
+ 5
+ ]
+ ]
+ },
+ "v12": {
+ "table_name": "access_control_lists",
+ "column_names": [
+ "server_id",
+ "channel_id",
+ "priority",
+ "affected_user_id",
+ "affected_group_id",
+ "affected_meta_group_id",
+ "access_token",
+ "group_modifiers",
+ "apply_in_current_channel",
+ "apply_in_sub_channels",
+ "granted_privilege_flags",
+ "revoked_privilege_flags"
+ ],
+ "column_types": [
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "VARCHAR(255)",
+ "VARCHAR(31)",
+ "SMALLINT",
+ "SMALLINT",
+ "INTEGER",
+ "INTEGER"
+ ],
+ "rows": [
+ [
+ 0,
+ 0,
+ 3,
+ null,
+ 1,
+ null,
+ null,
+ null,
+ 1,
+ 0,
+ 1,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 4,
+ 1,
+ null,
+ null,
+ null,
+ null,
+ 1,
+ 0,
+ 0,
+ 4608
+ ],
+ [
+ 0,
+ 1,
+ 1,
+ null,
+ null,
+ 6,
+ null,
+ "!;,3,2",
+ 1,
0,
+ 4616,
5
],
[
diff --git a/src/tests/TestDatabase/server/table_data/acl_table_migrated.json b/src/tests/TestDatabase/server/table_data/acl_table_migrated.json
index 762f2e16e6c..5ad7fcee7b2 100644
--- a/src/tests/TestDatabase/server/table_data/acl_table_migrated.json
+++ b/src/tests/TestDatabase/server/table_data/acl_table_migrated.json
@@ -73,5 +73,94 @@
5
]
]
+ },
+ "v10": {
+ "table_name": "access_control_lists",
+ "column_names": [
+ "server_id",
+ "channel_id",
+ "priority",
+ "affected_user_id",
+ "affected_group_id",
+ "affected_meta_group_id",
+ "access_token",
+ "group_modifiers",
+ "apply_in_current_channel",
+ "apply_in_sub_channels",
+ "granted_privilege_flags",
+ "revoked_privilege_flags"
+ ],
+ "column_types": [
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "INTEGER",
+ "VARCHAR(255)",
+ "VARCHAR(31)",
+ "SMALLINT",
+ "SMALLINT",
+ "INTEGER",
+ "INTEGER"
+ ],
+ "rows": [
+ [
+ 0,
+ 0,
+ 3,
+ null,
+ 1,
+ null,
+ null,
+ null,
+ 1,
+ 0,
+ 1,
+ 0
+ ],
+ [
+ 0,
+ 0,
+ 4,
+ 1,
+ null,
+ null,
+ null,
+ null,
+ 1,
+ 0,
+ 0,
+ 4608
+ ],
+ [
+ 0,
+ 1,
+ 1,
+ null,
+ null,
+ 6,
+ null,
+ "!;,3,2",
+ 1,
+ 0,
+ 4616,
+ 5
+ ],
+ [
+ 0,
+ 1,
+ 2,
+ null,
+ null,
+ null,
+ "letmein",
+ null,
+ 1,
+ 0,
+ 0,
+ 5
+ ]
+ ]
}
}