diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-05-17 18:12:40 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-05-17 18:12:40 +0000 |
commit | 79c3a70ed75d29987b35d087ef739e17169ee57c (patch) | |
tree | c2dc067a79612a776773bdb02738666e1b526e47 | |
parent | f9c4baf8fc5b61f9dfce5d78d9d86c70ecd6beb8 (diff) |
Made is possible to change levels back to founder only and made founder only levels only apply to the real founder. Changed the defaults for things such as autoowner to ACCESS_QOP
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2965 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | docs/Changes.lang | 2 | ||||
-rw-r--r-- | lang/cat.l | 4 | ||||
-rw-r--r-- | lang/de.l | 4 | ||||
-rw-r--r-- | lang/en_us.l | 2 | ||||
-rw-r--r-- | lang/es.l | 4 | ||||
-rw-r--r-- | lang/fr.l | 4 | ||||
-rw-r--r-- | lang/gr.l | 10 | ||||
-rw-r--r-- | lang/hun.l | 4 | ||||
-rw-r--r-- | lang/it.l | 4 | ||||
-rw-r--r-- | lang/nl.l | 4 | ||||
-rw-r--r-- | lang/pl.l | 5 | ||||
-rw-r--r-- | lang/pt.l | 4 | ||||
-rw-r--r-- | lang/ru.l | 4 | ||||
-rw-r--r-- | lang/tr.l | 4 | ||||
-rw-r--r-- | src/chanserv.c | 18 | ||||
-rw-r--r-- | src/core/cs_access.c | 15 |
16 files changed, 65 insertions, 27 deletions
diff --git a/docs/Changes.lang b/docs/Changes.lang index 88b5811f9..65240fa6a 100644 --- a/docs/Changes.lang +++ b/docs/Changes.lang @@ -43,6 +43,7 @@ Anope Version 1.9.2 OPER_HELP_CMD_SQLSYNC OPER_SYNC_UPDATING OPER_SYNC_UPDATED + CHAN_LEVELS_CHANGED_FOUNDER *** Mod Strings: CHAN_HELP_SET @@ -56,6 +57,7 @@ Anope Version 1.9.2 CHAN_HELP_UNBAN CHAN_HELP_REGISTER CHAN_HELP_DROP + CHAN_HELP_LEVELS *** Del Strings: CHAN_PASSWORD_IS diff --git a/lang/cat.l b/lang/cat.l index 62eb7e4de..6f2c72183 100644 --- a/lang/cat.l +++ b/lang/cat.l @@ -1553,6 +1553,8 @@ CHAN_LEVELS_RANGE El nivell ha d'estar entre %d i %d inclosos. CHAN_LEVELS_CHANGED Nivell per a %s en el canal %s cambiat a %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Opció %s no coneguda. Escriu %R%s HELP LEVELS DESC per a una llista de opcións valides. CHAN_LEVELS_DISABLED @@ -4909,7 +4911,7 @@ CHAN_HELP_AKICK de la llista de akicks. CHAN_HELP_LEVELS - Sintàxi: LEVELS canal SET tipo nivell + Sintàxi: LEVELS canal SET tipo [nivell|FOUNDER] LEVELS canal {DIS | DISABLE} tipo LEVELS canal LIST LEVELS canal RESET @@ -1560,6 +1560,8 @@ CHAN_LEVELS_RANGE Der Level kann nur zwischen %d und einschliesslich %d liegen. CHAN_LEVELS_CHANGED Der Level für %s für den Channel %s wurde geändert auf %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Einstellung %s ist unbekannt. Tippe %R%s HELP LEVELS DESC für eine ausführliche Einstellungsliste. CHAN_LEVELS_DISABLED @@ -4939,7 +4941,7 @@ CHAN_HELP_AKICK Der AutoKick-Liste. CHAN_HELP_LEVELS - Syntax: LEVELS channel SET Typ Level + Syntax: LEVELS channel SET Typ [Level|FOUNDER] LEVELS channel {DIS | DISABLE} Typ LEVELS channel LIST LEVELS channel RESET diff --git a/lang/en_us.l b/lang/en_us.l index 926a597d3..56fbb8d08 100644 --- a/lang/en_us.l +++ b/lang/en_us.l @@ -1522,6 +1522,8 @@ CHAN_LEVELS_RANGE Level must be between %d and %d inclusive. CHAN_LEVELS_CHANGED Level for %s on channel %s changed to %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Setting %s not known. Type %R%s HELP LEVELS DESC for a list of valid settings. CHAN_LEVELS_DISABLED @@ -1551,6 +1551,8 @@ CHAN_LEVELS_RANGE El nivel debe ser entre %d a %d inclusive. CHAN_LEVELS_CHANGED Nivel para %s en el canal %s cambiado a %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Opcion %s no conocida. Tipea %R%s HELP LEVELS DESC para una lista de opciones validas. CHAN_LEVELS_DISABLED @@ -4881,7 +4883,7 @@ CHAN_HELP_AKICK de ka lista de akicks. CHAN_HELP_LEVELS - Sintaxis: LEVELS canal SET tipo nivel + Sintaxis: LEVELS canal SET tipo [nivel|FOUNDER] LEVELS canal {DIS | DISABLE} tipo LEVELS canal LIST LEVELS canal RESET @@ -1560,6 +1560,8 @@ CHAN_LEVELS_RANGE Le niveau doit être compris entre %d et %d inclus. CHAN_LEVELS_CHANGED Le niveau pour %s du channel %s est maintenant de %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN L'option %s est inconnue. Tapez %R%s HELP LEVELS DESC pour une liste d'options valides. @@ -4941,7 +4943,7 @@ CHAN_HELP_AKICK de la liste de kicks automatiques. CHAN_HELP_LEVELS - Syntaxe: LEVELS canal SET type level + Syntaxe: LEVELS canal SET type [level|FOUNDER] LEVELS canal {DIS | DISABLE} type LEVELS canal LIST LEVELS canal RESET @@ -1555,6 +1555,8 @@ CHAN_LEVELS_RANGE Ï âáèìüò ðñÝðåé íá åßíáé ìåôáîý %d êáé %d. CHAN_LEVELS_CHANGED Ï âáèìüò ãéá ôïí %s óôï êáíÜëé %s Üëëîå óå %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Ç åðéëïãÞ %s äåí åßíáé ãíùóôÞ. ÃñÜøå %R%s HELP LEVELS DESC ãéá ôç ëßóôá ìå ôéó áíáëõôéêÝò åðéëïãÝò. CHAN_LEVELS_DISABLED @@ -4860,10 +4862,10 @@ CHAN_HELP_AKICK ëßóôá akick. CHAN_HELP_LEVELS - Óýíôáîç: LEVELS êáíÜëé SET ôýðïò âáèìüò - LEVELS êáíÜëé {DIS | DISABLE} ôýðïò - LEVELS êáíÜëé LIST - LEVELS êáíÜëé RESET + Óýíôáîç: LEVELS êáíÜëé SET ôýðïò [âáèìüò|FOUNDER] + LEVELS êáíÜëé {DIS | DISABLE} ôýðïò + LEVELS êáíÜëé LIST + LEVELS êáíÜëé RESET The LEVELS command allows fine control over the meaning of the numeric access levels used for channels. With this diff --git a/lang/hun.l b/lang/hun.l index b212c09f7..2a2bf0ea8 100644 --- a/lang/hun.l +++ b/lang/hun.l @@ -1548,6 +1548,8 @@ CHAN_LEVELS_RANGE A szintnek kizárólag %d és %d között kell lennie. CHAN_LEVELS_CHANGED %s szintjének új értéke a (%s) csatornán: %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN %s beállítás nem ismert. Írd be %R%s HELP LEVELS DESC az érvényes beállítások listájának megtekintéséhez. @@ -4790,7 +4792,7 @@ CHAN_HELP_AKICK törölhetõ. CHAN_HELP_LEVELS - Syntax: LEVELS #szoba SET típus szint + Syntax: LEVELS #szoba SET típus [szint|FOUNDER] LEVELS #szoba {DIS | DISABLE} típus LEVELS #szoba LIST LEVELS #szoba RESET @@ -1525,6 +1525,8 @@ CHAN_LEVELS_RANGE Il livello deve essere compreso tra %d e %d (inclusi). CHAN_LEVELS_CHANGED Il livello di %s sul canale %s è stato modificato a %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Impostazione %s sconosciuta. Digita %R%s HELP LEVELS DESC per una lista delle impostazioni valide. CHAN_LEVELS_DISABLED @@ -4773,7 +4775,7 @@ CHAN_HELP_AKICK Il comando AKICK CLEAR svuota la lista AutoKick. CHAN_HELP_LEVELS - Sintassi: LEVELS canale SET tipo livello + Sintassi: LEVELS canale SET tipo [livello|FOUNDER] LEVELS canale {DIS | DISABLE} tipo LEVELS canale LIST LEVELS canale RESET @@ -1542,6 +1542,8 @@ CHAN_LEVELS_RANGE Niveau moet tussen de %d en %d inclusief zijn. CHAN_LEVELS_CHANGED Niveau voor %s op kanaal %s veranderd in %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Instelling %s onbekend. Type %R%s HELP LEVELS DESC voor een lijst van geldige instellingen. CHAN_LEVELS_DISABLED @@ -4844,7 +4846,7 @@ CHAN_HELP_AKICK The AKICK CLEAR commando maakt de AutoKick lijst leeg. CHAN_HELP_LEVELS - Gebruik: LEVELS kanaal SET type niveau + Gebruik: LEVELS kanaal SET type [niveau|FOUNDER] LEVELS kanaal {DIS | DISABLE} type LEVELS kanaal LIST LEVELS kanaal RESET @@ -1996,6 +1996,9 @@ CHAN_LEVELS_CHANGED Wymagany poziom dla %s na kanale %s zmieniono teraz na %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. + CHAN_LEVELS_UNKNOWN Nieznane ustawienie %s. Napisz %R%s HELP LEVELS DESC, aby uzyskaæ listê dostêpnych mo¿liwo¶ci. @@ -5852,7 +5855,7 @@ CHAN_HELP_AKICK Polecenie AKICK CLEAR usuwa wszystkie wpisy z listy. CHAN_HELP_LEVELS - Sk³adnia: LEVELS kana³ SET typ poziom + Sk³adnia: LEVELS kana³ SET typ [poziom|FOUNDER] LEVELS kana³ {DIS | DISABLE} typ LEVELS kana³ LIST LEVELS kana³ RESET @@ -1543,6 +1543,8 @@ CHAN_LEVELS_RANGE O nível deve ser entre %d e %d inclusive. CHAN_LEVELS_CHANGED Nível para %s no canal %s alterado para %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Level %s desconhecido. Digite %R%s HELP LEVELS DESC para uma lista de Levels válidos. CHAN_LEVELS_DISABLED @@ -4744,7 +4746,7 @@ CHAN_HELP_AKICK de AutoKick. CHAN_HELP_LEVELS - Sintaxe: LEVELS canal SET tipo nível + Sintaxe: LEVELS canal SET tipo [nível|FOUNDER] LEVELS canal {DIS | DISABLE} tipo LEVELS canal LIST LEVELS canal RESET @@ -1522,6 +1522,8 @@ CHAN_LEVELS_RANGE Óðîâåíü äîëæåí áûòü ÷èñëîì ìåæäó %d è %d âêëþ÷èòåëüíî. CHAN_LEVELS_CHANGED Óðîâåíü äîñòóïà ê %s íà êàíàëå %s èçìåíåí íà %d. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Íåèçâåñòíûé ïóíêò %s. Äëÿ ïîëó÷åíèÿ ñïèñêà âñåõ äîñòóïíûõ çíà÷åíèé ñì. %R%s HELP LEVELS DESC CHAN_LEVELS_DISABLED @@ -4839,7 +4841,7 @@ CHAN_HELP_AKICK Êîìàíäà AKICK CLEAR ïîëíîñòüþ î÷èùàåò ñïèñîê àâòîêèêîâ êàíàëà. CHAN_HELP_LEVELS - Ñèíòàêñèñ: LEVELS #êàíàë SET òèï óðîâåíü + Ñèíòàêñèñ: LEVELS #êàíàë SET òèï [óðîâåíü|FOUNDER] LEVELS #êàíàë {DIS | DISABLE} òèï LEVELS #êàíàë LIST LEVELS #êàíàë RESET @@ -1549,6 +1549,8 @@ CHAN_LEVELS_RANGE Level %d ile %d arasýnda olmalýdýr. CHAN_LEVELS_CHANGED %s için level %s kanalýnda %d olarak deðiþtirildi. +CHAN_LEVELS_CHANGED_FOUNDER + Level for %s on channel %s changed to founder only. CHAN_LEVELS_UNKNOWN Varolmayan ayar: %s. Geçerli ayar listesi için %R%s HELP LEVELS DESC yazýnýz. CHAN_LEVELS_DISABLED @@ -4831,7 +4833,7 @@ CHAN_HELP_AKICK siler. CHAN_HELP_LEVELS - Kullanýmý: LEVELS kanaladý SET tip seviye + Kullanýmý: LEVELS kanaladý SET tip [seviye|FOUNDER] LEVELS kanaladý {DIS | DISABLE} tip LEVELS kanaladý LIST LEVELS kanaladý RESET diff --git a/src/chanserv.c b/src/chanserv.c index 4df46d1ef..2c60ec004 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -29,7 +29,7 @@ static int def_levels[][2] = { { CA_NOJOIN, -2 }, { CA_INVITE, 5 }, { CA_AKICK, 10 }, - { CA_SET, ACCESS_FOUNDER }, + { CA_SET, ACCESS_QOP }, { CA_CLEAR, ACCESS_FOUNDER }, { CA_UNBAN, 5 }, { CA_OPDEOP, 5 }, @@ -51,17 +51,17 @@ static int def_levels[][2] = { { CA_HALFOPME, 4 }, { CA_HALFOP, 5 }, { CA_PROTECTME, 10 }, - { CA_PROTECT, ACCESS_FOUNDER }, + { CA_PROTECT, ACCESS_QOP }, { CA_KICKME, 5 }, { CA_KICK, 5 }, { CA_SIGNKICK, ACCESS_FOUNDER }, { CA_BANME, 5 }, { CA_BAN, 5 }, { CA_TOPIC, ACCESS_FOUNDER }, - { CA_INFO, ACCESS_FOUNDER }, - { CA_AUTOOWNER, ACCESS_FOUNDER }, + { CA_INFO, ACCESS_QOP }, + { CA_AUTOOWNER, ACCESS_QOP }, { CA_OWNER, ACCESS_FOUNDER }, - { CA_OWNERME, ACCESS_FOUNDER }, + { CA_OWNERME, ACCESS_QOP }, { -1 } }; @@ -856,10 +856,10 @@ int check_access(User * user, ChannelInfo * ci, int what) if (limit == ACCESS_INVALID) return 0; - if (what == ACCESS_FOUNDER) - return IsFounder(user, ci); - if (level >= ACCESS_FOUNDER) - return (what == CA_AUTODEOP || what == CA_NOJOIN) ? 0 : 1; + if (limit > ACCESS_FOUNDER) + return 1; + if (limit == ACCESS_FOUNDER) + return (what == CA_AUTODEOP || what == CA_NOJOIN ? !IsRealFounder(user, ci) : IsRealFounder(user, ci)); /* Hacks to make flags work */ if (what == CA_AUTODEOP && (ci->HasFlag(CI_SECUREOPS)) && level == 0) return 1; diff --git a/src/core/cs_access.c b/src/core/cs_access.c index bc05695a2..3da39cf0d 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -456,12 +456,18 @@ class CommandCSLevels : public Command else if (cmd == "SET") { level = strtol(s, &error, 10); + if (!stricmp(s, "FOUNDER")) + { + level = ACCESS_FOUNDER; + *error = '\0'; + } + if (*error != '\0') { this->OnSyntaxError(u, "SET"); return MOD_CONT; } - if (level <= ACCESS_INVALID || level >= ACCESS_FOUNDER) { + if (level <= ACCESS_INVALID || level > ACCESS_FOUNDER) { notice_lang(Config.s_ChanServ, u, CHAN_LEVELS_RANGE, ACCESS_INVALID + 1, ACCESS_FOUNDER - 1); return MOD_CONT; @@ -473,8 +479,11 @@ class CommandCSLevels : public Command Alog() << Config.s_ChanServ << ": " << u->GetMask() << " set level " << levelinfo[i].name << " on channel " << ci->name << " to " << level; - notice_lang(Config.s_ChanServ, u, CHAN_LEVELS_CHANGED, - levelinfo[i].name, chan, level); + if (level == ACCESS_FOUNDER) + notice_lang(Config.s_ChanServ, u, CHAN_LEVELS_CHANGED_FOUNDER, levelinfo[i].name, ci->name.c_str()); + else + notice_lang(Config.s_ChanServ, u, CHAN_LEVELS_CHANGED, + levelinfo[i].name, ci->name.c_str(), level); return MOD_CONT; } } |