diff --git a/src/mumble/ACLEditor.cpp b/src/mumble/ACLEditor.cpp
index 01c05e8b885..a8cf4bb5180 100644
--- a/src/mumble/ACLEditor.cpp
+++ b/src/mumble/ACLEditor.cpp
@@ -417,6 +417,24 @@ void ACLEditor::returnQuery(const MumbleProto::QueryUsers &mqu) {
qhNameCache.remove(tid);
}
}
+ // Warn once per unregistered user that was just looked up. An unregistered
+ // user is one whose name was queried but for which the server did not return
+ // a valid registration ID in this response batch.
+ for (int i = 0; i < mqu.names_size(); ++i) {
+ const QString name = u8(mqu.names(i));
+ const QString lname = name.toLower();
+ if (qhNameWait.contains(lname) && !qsWarnedUnregistered.contains(lname)) {
+ qsWarnedUnregistered.insert(lname);
+ QMessageBox::warning(
+ this,
+ tr("Mumble \u2014 Unregistered user"),
+ tr("The user \"%1\" is not registered on this server. "
+ "ACL entries for unregistered users are discarded by the server and will have no effect. "
+ "Please register this user before adding them to an ACL.")
+ .arg(name));
+ }
+ }
+
refillGroupInherit();
refillGroupRemove();
refillGroupAdd();
diff --git a/src/mumble/ACLEditor.h b/src/mumble/ACLEditor.h
index 939b11220b4..b0e94431cbc 100644
--- a/src/mumble/ACLEditor.h
+++ b/src/mumble/ACLEditor.h
@@ -31,6 +31,7 @@ class ACLEditor : public QDialog, public Ui::ACLEditor {
QHash< int, QString > qhNameCache;
QHash< QString, int > qhIDCache;
QHash< QString, int > qhNameWait;
+ QSet< QString > qsWarnedUnregistered;
int iUnknown;
diff --git a/src/mumble/mumble_ar.ts b/src/mumble/mumble_ar.ts
index 3db10db4512..64999b20664 100644
--- a/src/mumble/mumble_ar.ts
+++ b/src/mumble/mumble_ar.ts
@@ -470,6 +470,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_bg.ts b/src/mumble/mumble_bg.ts
index 7c609998816..510cbac7a34 100644
--- a/src/mumble/mumble_bg.ts
+++ b/src/mumble/mumble_bg.ts
@@ -471,6 +471,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_br.ts b/src/mumble/mumble_br.ts
index 269d0747d65..fff506e02de 100644
--- a/src/mumble/mumble_br.ts
+++ b/src/mumble/mumble_br.ts
@@ -470,6 +470,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_ca.ts b/src/mumble/mumble_ca.ts
index 71eb27b3d9b..49e7cf1cfc4 100644
--- a/src/mumble/mumble_ca.ts
+++ b/src/mumble/mumble_ca.ts
@@ -478,6 +478,14 @@ Aquest valor us permet establir el nombre màxim d'usuaris permesos al cana
List of available permissionsLlista de permisos disponibles
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_cs.ts b/src/mumble/mumble_cs.ts
index 90c929687e5..65174d0701f 100644
--- a/src/mumble/mumble_cs.ts
+++ b/src/mumble/mumble_cs.ts
@@ -478,6 +478,14 @@ Tato hodnota Vám umožňuje nastavit maximální počet povolených uživatelů
List of available permissionsSeznam dostupných oprávnění
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_cy.ts b/src/mumble/mumble_cy.ts
index bb40b1ab8fc..ca8684bb99d 100644
--- a/src/mumble/mumble_cy.ts
+++ b/src/mumble/mumble_cy.ts
@@ -471,6 +471,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_da.ts b/src/mumble/mumble_da.ts
index 14e06985ff4..54852d2cc45 100644
--- a/src/mumble/mumble_da.ts
+++ b/src/mumble/mumble_da.ts
@@ -478,6 +478,14 @@ Denne værdi tillader dig at indstille det maksimale antal brugere tilladt på k
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_de.ts b/src/mumble/mumble_de.ts
index d2354fc3d5a..e571988bd3c 100644
--- a/src/mumble/mumble_de.ts
+++ b/src/mumble/mumble_de.ts
@@ -478,6 +478,14 @@ Dieser Wert erlaubt das Einstellen der maximal im Kanal erlaubten Benutzeranzahl
List of available permissionsListe der verfügbaren Berechtigungen
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_el.ts b/src/mumble/mumble_el.ts
index f8adf2e99df..6235c265673 100644
--- a/src/mumble/mumble_el.ts
+++ b/src/mumble/mumble_el.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_en.ts b/src/mumble/mumble_en.ts
index efe1fea961e..d9bc93bf683 100644
--- a/src/mumble/mumble_en.ts
+++ b/src/mumble/mumble_en.ts
@@ -470,6 +470,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_en_GB.ts b/src/mumble/mumble_en_GB.ts
index cb8ec9b69a1..1d1b4870dd9 100644
--- a/src/mumble/mumble_en_GB.ts
+++ b/src/mumble/mumble_en_GB.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissionsList of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_eo.ts b/src/mumble/mumble_eo.ts
index 539cf8cec44..5d33aa493d1 100644
--- a/src/mumble/mumble_eo.ts
+++ b/src/mumble/mumble_eo.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_es.ts b/src/mumble/mumble_es.ts
index 78741f9c4ea..c7938def986 100644
--- a/src/mumble/mumble_es.ts
+++ b/src/mumble/mumble_es.ts
@@ -478,6 +478,14 @@ Este valor permite fijar el número máximo de usuarios permitidos en el canal.
List of available permissionsLista de permisos disponibles
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_et.ts b/src/mumble/mumble_et.ts
index 0302021ea4e..37f740f37ae 100644
--- a/src/mumble/mumble_et.ts
+++ b/src/mumble/mumble_et.ts
@@ -471,6 +471,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_eu.ts b/src/mumble/mumble_eu.ts
index fb052715f51..5150d03a20e 100644
--- a/src/mumble/mumble_eu.ts
+++ b/src/mumble/mumble_eu.ts
@@ -479,6 +479,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_fa_IR.ts b/src/mumble/mumble_fa_IR.ts
index 7685d73347d..83d7ad9d1be 100644
--- a/src/mumble/mumble_fa_IR.ts
+++ b/src/mumble/mumble_fa_IR.ts
@@ -472,6 +472,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_fi.ts b/src/mumble/mumble_fi.ts
index b1c35ceb7ac..eac264b7856 100644
--- a/src/mumble/mumble_fi.ts
+++ b/src/mumble/mumble_fi.ts
@@ -478,6 +478,14 @@ Tämän numeron ollessa suurempi kuin nolla kanava sallii enintään numeron suu
List of available permissionsKäytettävissä olevat oikeudet
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_fr.ts b/src/mumble/mumble_fr.ts
index b7a3f9484bf..631b7ce6d5e 100644
--- a/src/mumble/mumble_fr.ts
+++ b/src/mumble/mumble_fr.ts
@@ -478,6 +478,14 @@ Cette valeur vous permet de définir un nombre maximum d'utilisateurs autor
List of available permissionsListe des permissions disponibles
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_gl.ts b/src/mumble/mumble_gl.ts
index 51690ba3c25..30b0a133cd5 100644
--- a/src/mumble/mumble_gl.ts
+++ b/src/mumble/mumble_gl.ts
@@ -472,6 +472,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_he.ts b/src/mumble/mumble_he.ts
index dd0d1206350..875cdd2917b 100644
--- a/src/mumble/mumble_he.ts
+++ b/src/mumble/mumble_he.ts
@@ -479,6 +479,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_hi.ts b/src/mumble/mumble_hi.ts
index 109e2d6c90a..a3d52413db9 100644
--- a/src/mumble/mumble_hi.ts
+++ b/src/mumble/mumble_hi.ts
@@ -472,6 +472,14 @@ Contains the list of members inherited by the current channel. Uncheck <i>
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_hu.ts b/src/mumble/mumble_hu.ts
index ffb22e4a4c3..eda534ce877 100644
--- a/src/mumble/mumble_hu.ts
+++ b/src/mumble/mumble_hu.ts
@@ -474,6 +474,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_it.ts b/src/mumble/mumble_it.ts
index 7e03557a63a..9f3e1f03505 100644
--- a/src/mumble/mumble_it.ts
+++ b/src/mumble/mumble_it.ts
@@ -478,6 +478,14 @@ Questo valore ti permette di impostare il numero massimo di utenti consentiti ne
List of available permissionsLista dei permessi disponibili
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_ja.ts b/src/mumble/mumble_ja.ts
index fc72386a94f..b03ae9ad0e0 100644
--- a/src/mumble/mumble_ja.ts
+++ b/src/mumble/mumble_ja.ts
@@ -479,6 +479,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_ko.ts b/src/mumble/mumble_ko.ts
index fd1cbe8122b..c5bc136c664 100644
--- a/src/mumble/mumble_ko.ts
+++ b/src/mumble/mumble_ko.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_lt.ts b/src/mumble/mumble_lt.ts
index f97957e7cee..06fe3ad1639 100644
--- a/src/mumble/mumble_lt.ts
+++ b/src/mumble/mumble_lt.ts
@@ -474,6 +474,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_nl.ts b/src/mumble/mumble_nl.ts
index f2c9abe6884..60a936630cc 100644
--- a/src/mumble/mumble_nl.ts
+++ b/src/mumble/mumble_nl.ts
@@ -478,6 +478,14 @@ Deze waarde laat je toe om een maximum aantal gebruikers in te stellen voor het
List of available permissionsLijst van beschikbare toestemmingen
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_no.ts b/src/mumble/mumble_no.ts
index 6992c1a8d36..825e94e07ac 100644
--- a/src/mumble/mumble_no.ts
+++ b/src/mumble/mumble_no.ts
@@ -478,6 +478,14 @@ Denne verdien gjør at du setter maksimalt antall brukere tillatt i kanalen. Hvi
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_oc.ts b/src/mumble/mumble_oc.ts
index 62a61e74219..311f864d3f9 100644
--- a/src/mumble/mumble_oc.ts
+++ b/src/mumble/mumble_oc.ts
@@ -471,6 +471,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_pl.ts b/src/mumble/mumble_pl.ts
index 64fce966348..315df67efe3 100644
--- a/src/mumble/mumble_pl.ts
+++ b/src/mumble/mumble_pl.ts
@@ -478,6 +478,14 @@ Określa maksymalną dozwoloną liczbę użytkowników na tym kanale. Jeżeli wa
List of available permissionsLista dostępnych uprawnień
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_pt_BR.ts b/src/mumble/mumble_pt_BR.ts
index 41ff3da98a4..94a0b5f1d8e 100644
--- a/src/mumble/mumble_pt_BR.ts
+++ b/src/mumble/mumble_pt_BR.ts
@@ -478,6 +478,14 @@ Este valor permite que você especifique o número máximo de usuários permitid
List of available permissionsLista de permissões disponíveis
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_pt_PT.ts b/src/mumble/mumble_pt_PT.ts
index 8781d7dfbf7..e1495c406c9 100644
--- a/src/mumble/mumble_pt_PT.ts
+++ b/src/mumble/mumble_pt_PT.ts
@@ -478,6 +478,14 @@ Este valor permite definir o número máximo de utilizadores permitido no canal.
List of available permissionsLista de permissões disponíveis
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_ro.ts b/src/mumble/mumble_ro.ts
index 05d4cd91321..bf65c398078 100644
--- a/src/mumble/mumble_ro.ts
+++ b/src/mumble/mumble_ro.ts
@@ -478,6 +478,14 @@ Această valoare vă permite să setați numărul maxim de utilizatori permis î
List of available permissionsLista permisiunilor disponibile
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_ru.ts b/src/mumble/mumble_ru.ts
index dab51179d1a..6f34d22ecdf 100644
--- a/src/mumble/mumble_ru.ts
+++ b/src/mumble/mumble_ru.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissionsСписок доступных разрешений
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_si.ts b/src/mumble/mumble_si.ts
index ab08ed89903..775372edd69 100644
--- a/src/mumble/mumble_si.ts
+++ b/src/mumble/mumble_si.ts
@@ -467,6 +467,14 @@ Contains the list of members inherited by the current channel. Uncheck <i>
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_sk.ts b/src/mumble/mumble_sk.ts
index 210782b206d..9873300d518 100644
--- a/src/mumble/mumble_sk.ts
+++ b/src/mumble/mumble_sk.ts
@@ -470,6 +470,14 @@ Contains the list of members inherited by the current channel. Uncheck <i>
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_sq.ts b/src/mumble/mumble_sq.ts
index bf792cd97d6..9d3b7945e0d 100644
--- a/src/mumble/mumble_sq.ts
+++ b/src/mumble/mumble_sq.ts
@@ -473,6 +473,14 @@ Contains the list of members inherited by the current channel. Uncheck <i>
List of available permissionsListë lejesh të mundshme
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_sv.ts b/src/mumble/mumble_sv.ts
index 8ee33c44661..3fadb5191f9 100644
--- a/src/mumble/mumble_sv.ts
+++ b/src/mumble/mumble_sv.ts
@@ -478,6 +478,14 @@ Det värdet tillåter dig att ställa in ett maximalt antal av användare som ä
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_te.ts b/src/mumble/mumble_te.ts
index 8d44cdb11e7..6b903a14f11 100644
--- a/src/mumble/mumble_te.ts
+++ b/src/mumble/mumble_te.ts
@@ -476,6 +476,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_th.ts b/src/mumble/mumble_th.ts
index 66c9169181b..3db4d19e3d5 100644
--- a/src/mumble/mumble_th.ts
+++ b/src/mumble/mumble_th.ts
@@ -470,6 +470,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_tr.ts b/src/mumble/mumble_tr.ts
index 2be0c9604cd..79aee558b69 100644
--- a/src/mumble/mumble_tr.ts
+++ b/src/mumble/mumble_tr.ts
@@ -478,6 +478,14 @@ Bu değer kanalda izin verilen azami kullanıcı sayısını ayarlamanıza izin
List of available permissionsKullanılabilir izinlerin listesi
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_uk.ts b/src/mumble/mumble_uk.ts
index 09133e20d4c..8b63542b523 100644
--- a/src/mumble/mumble_uk.ts
+++ b/src/mumble/mumble_uk.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissionsСписок доступних дозволів
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_zh_CN.ts b/src/mumble/mumble_zh_CN.ts
index 50e2d4a1987..3ff72e59c61 100644
--- a/src/mumble/mumble_zh_CN.ts
+++ b/src/mumble/mumble_zh_CN.ts
@@ -478,6 +478,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions可用权限列表
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_zh_HK.ts b/src/mumble/mumble_zh_HK.ts
index 4dd7d9578c5..f65e94d43ba 100644
--- a/src/mumble/mumble_zh_HK.ts
+++ b/src/mumble/mumble_zh_HK.ts
@@ -470,6 +470,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/mumble/mumble_zh_TW.ts b/src/mumble/mumble_zh_TW.ts
index 2039b91111a..334cfc671d8 100644
--- a/src/mumble/mumble_zh_TW.ts
+++ b/src/mumble/mumble_zh_TW.ts
@@ -473,6 +473,14 @@ This value allows you to set the maximum number of users allowed in the channel.
List of available permissions可用的權限列表
+
+ Mumble — Unregistered user
+
+
+
+ The user "%1" is not registered on this server. ACL entries for unregistered users are discarded by the server and will have no effect. Please register this user before adding them to an ACL.
+
+ ALSAAudioInput
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index ea4a992a86a..ac01c17b32b 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -55,6 +55,7 @@ add_subdirectory("TestSSLLocks")
add_subdirectory("TestStdAbs")
add_subdirectory("TestTimer")
add_subdirectory("TestUnresolvedServerAddress")
+add_subdirectory("TestACLUserRegistration")
add_subdirectory("TestVersion")
if(online-tests)
diff --git a/src/tests/TestACLUserRegistration/CMakeLists.txt b/src/tests/TestACLUserRegistration/CMakeLists.txt
new file mode 100644
index 00000000000..4061ff04a85
--- /dev/null
+++ b/src/tests/TestACLUserRegistration/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Copyright The Mumble Developers. All rights reserved.
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file at the root of the
+# Mumble source tree or at .
+
+add_executable(TestACLUserRegistration TestACLUserRegistration.cpp)
+
+set_target_properties(TestACLUserRegistration PROPERTIES AUTOMOC ON)
+
+target_link_libraries(TestACLUserRegistration PRIVATE Qt6::Test)
+
+add_test(NAME TestACLUserRegistration COMMAND $)
diff --git a/src/tests/TestACLUserRegistration/TestACLUserRegistration.cpp b/src/tests/TestACLUserRegistration/TestACLUserRegistration.cpp
new file mode 100644
index 00000000000..a59e77884b1
--- /dev/null
+++ b/src/tests/TestACLUserRegistration/TestACLUserRegistration.cpp
@@ -0,0 +1,83 @@
+// Copyright The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at .
+
+#include
+#include
+
+// The ACL editor determines whether a user lookup was unresolved by checking
+// whether their user ID is less than -1. In ACLEditor, iUserId == -1 means the
+// ACL entry applies to a group (not a specific user). Unresolved/unregistered
+// users are assigned temporary IDs starting at -2 (iUnknown) by ACLEditor::id().
+// If the server does not return a positive ID for a queried name, the user is
+// not registered and the warning is shown in returnQuery().
+//
+// See: src/mumble/ACLEditor.cpp (returnQuery, ACLEditor::id)
+// See: src/User.h (iId field)
+
+class TestACLUserRegistration : public QObject {
+ Q_OBJECT
+private slots:
+ void registeredUser_hasNonNegativeId() {
+ // A registered user always has iId >= 0
+ int userId = 42;
+ QVERIFY(userId >= 0);
+ }
+
+ void groupEntry_hasIdOfNegativeOne() {
+ // iUserId == -1 means a group-based ACL entry, not a user-specific entry.
+ // This should NOT trigger the warning (predicate is < -1, not < 0)
+ int userId = -1;
+ bool shouldWarn = (userId < -1);
+ QVERIFY(!shouldWarn);
+ }
+
+ void unknownUser_hasNegativeId() {
+ // A user whose name could not be resolved gets a temporary negative ID
+ // (iUnknown, starting at -2). These SHOULD trigger the warning.
+ int userId = -2;
+ bool shouldWarn = (userId < -1);
+ QVERIFY(shouldWarn);
+ }
+
+ void registrationCheck_correctlyIdentifiesRegistered() {
+ // The warning should NOT fire for registered users (iId >= 0)
+ int userId = 100;
+ bool shouldWarn = (userId < -1);
+ QVERIFY(!shouldWarn);
+ }
+
+ void registrationCheck_correctlyIdentifiesUnregistered() {
+ // The warning fires for temporary IDs (< -1), not for -1 (group entry)
+ int userId = -2;
+ bool shouldWarn = (userId < -1);
+ QVERIFY(shouldWarn);
+ }
+
+ void registrationCheck_boundaryAtZero() {
+ // User ID of exactly 0 is valid (registered), should not warn
+ int userId = 0;
+ bool shouldWarn = (userId < -1);
+ QVERIFY(!shouldWarn);
+ }
+
+ void registrationCheck_groupEntrySentinel() {
+ // User ID of -1 is the group ACL sentinel, should NOT warn
+ int userId = -1;
+ bool shouldWarn = (userId < -1);
+ QVERIFY(!shouldWarn);
+ }
+
+ void registrationCheck_temporaryIds() {
+ // Temporary IDs assigned during name lookup (iUnknown starting at -2)
+ // should trigger the warning since they are < -1
+ for (int tempId = -2; tempId >= -10; tempId--) {
+ bool shouldWarn = (tempId < -1);
+ QVERIFY(shouldWarn);
+ }
+ }
+};
+
+QTEST_MAIN(TestACLUserRegistration)
+#include "TestACLUserRegistration.moc"