From aa952589dbf22d4bc3db8a4e510b8bbf1866aca0 Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Mon, 18 Sep 2006 16:53:55 +0000 Subject: [PATCH] write does not imply speak git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@361 05730e5d-ab1b-0410-a4ac-84af385074fa --- ACL.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ACL.cpp b/ACL.cpp index 93c5d707e..7a6c6fcc1 100644 --- a/ACL.cpp +++ b/ACL.cpp @@ -62,8 +62,12 @@ bool ChanACL::hasPermission(Player *p, Channel *chan, Perm perm, bool cacheonly) Permissions granted; granted=c_qhACLCache[chan][p]; - if (granted & Cached) - return ((granted & (perm | Write)) != None); + if (granted & Cached) { + if ((perm != Speak) && (perm != AltSpeak)) + return ((granted & (perm | Write)) != None); + else + return ((granted & perm) != None); + } if (cacheonly) return false; @@ -113,7 +117,10 @@ bool ChanACL::hasPermission(Player *p, Channel *chan, Perm perm, bool cacheonly) c_qhACLCache[chan][p] = granted & Cached; - return ((granted & (perm | Write)) != None); + if ((perm != Speak) && (perm != AltSpeak)) + return ((granted & (perm | Write)) != None); + else + return ((granted & perm) != None); } QString ChanACL::shortName(Perm p) {