summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-05-17 18:12:40 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-05-17 18:12:40 +0000
commit79c3a70ed75d29987b35d087ef739e17169ee57c (patch)
treec2dc067a79612a776773bdb02738666e1b526e47
parentf9c4baf8fc5b61f9dfce5d78d9d86c70ecd6beb8 (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.lang2
-rw-r--r--lang/cat.l4
-rw-r--r--lang/de.l4
-rw-r--r--lang/en_us.l2
-rw-r--r--lang/es.l4
-rw-r--r--lang/fr.l4
-rw-r--r--lang/gr.l10
-rw-r--r--lang/hun.l4
-rw-r--r--lang/it.l4
-rw-r--r--lang/nl.l4
-rw-r--r--lang/pl.l5
-rw-r--r--lang/pt.l4
-rw-r--r--lang/ru.l4
-rw-r--r--lang/tr.l4
-rw-r--r--src/chanserv.c18
-rw-r--r--src/core/cs_access.c15
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
diff --git a/lang/de.l b/lang/de.l
index e7103c910..4062e0069 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -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
diff --git a/lang/es.l b/lang/es.l
index de2096b2a..f5e0d874f 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -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
diff --git a/lang/fr.l b/lang/fr.l
index 74c9f16e8..2fe9bbf4f 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -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
diff --git a/lang/gr.l b/lang/gr.l
index d3530dd4d..f262b7618 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -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
diff --git a/lang/it.l b/lang/it.l
index b2b9bbe49..f2d7335d1 100644
--- a/lang/it.l
+++ b/lang/it.l
@@ -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
diff --git a/lang/nl.l b/lang/nl.l
index 60d3f329d..38b42ffaa 100644
--- a/lang/nl.l
+++ b/lang/nl.l
@@ -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
diff --git a/lang/pl.l b/lang/pl.l
index 3c3e764ea..341f57a63 100644
--- a/lang/pl.l
+++ b/lang/pl.l
@@ -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
diff --git a/lang/pt.l b/lang/pt.l
index 9e74d01a8..2142db2f6 100644
--- a/lang/pt.l
+++ b/lang/pt.l
@@ -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
diff --git a/lang/ru.l b/lang/ru.l
index d80fdd2b8..d469b112b 100644
--- a/lang/ru.l
+++ b/lang/ru.l
@@ -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
diff --git a/lang/tr.l b/lang/tr.l
index 421b9158e..d73525d08 100644
--- a/lang/tr.l
+++ b/lang/tr.l
@@ -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;
}
}