summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--src/core/os_admin.c11
-rw-r--r--src/core/os_help.c2
-rw-r--r--src/core/os_modinfo.c6
-rw-r--r--src/core/os_modlist.c6
-rw-r--r--src/core/os_oper.c9
-rw-r--r--src/core/os_staff.c6
-rw-r--r--version.log6
8 files changed, 28 insertions, 19 deletions
diff --git a/Changes b/Changes
index c0ac59058..0a622a344 100644
--- a/Changes
+++ b/Changes
@@ -5,6 +5,7 @@ Anope Version S V N
01/02 F Error reporting on LIST commands accepting ranges. [#622]
01/02 F ChanServ LIST now searches for '#chan' if only 'chan' is given. [#622]
01/06 F Missing backtick in SQL query for saving news items. [ #00]
+01/06 F Some OperServ commands not respecting OSOpersOnly when disabled. [#657]
Anope Version 1.7.18
--------------------
diff --git a/src/core/os_admin.c b/src/core/os_admin.c
index 56df4b195..9760b98bd 100644
--- a/src/core/os_admin.c
+++ b/src/core/os_admin.c
@@ -35,7 +35,7 @@ int AnopeInit(int argc, char **argv)
moduleAddVersion("$Id$");
moduleSetType(CORE);
- c = createCommand("ADMIN", do_admin, is_oper, OPER_HELP_ADMIN, -1, -1,
+ c = createCommand("ADMIN", do_admin, NULL, OPER_HELP_ADMIN, -1, -1,
-1, -1);
moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
@@ -60,7 +60,7 @@ void AnopeFini(void)
**/
void myOperServHelp(User * u)
{
- if (is_oper(u)) {
+ if (is_oper(u) || is_services_root(u)) {
notice_lang(s_OperServ, u, OPER_HELP_CMD_ADMIN);
}
}
@@ -172,7 +172,12 @@ int do_admin(User * u)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
} else if (!stricmp(cmd, "LIST")) {
int sent_header = 0;
-
+
+ if (!is_oper(u)) {
+ notice_lang(s_OperServ, u, PERMISSION_DENIED);
+ return MOD_CONT;
+ }
+
if (servadmins.count == 0) {
notice_lang(s_OperServ, u, OPER_ADMIN_LIST_EMPTY);
return MOD_CONT;
diff --git a/src/core/os_help.c b/src/core/os_help.c
index 481e3e424..e2495e814 100644
--- a/src/core/os_help.c
+++ b/src/core/os_help.c
@@ -30,7 +30,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleSetType(CORE);
- c = createCommand("HELP", do_help, is_oper, -1, -1, -1, -1, -1);
+ c = createCommand("HELP", do_help, NULL, -1, -1, -1, -1, -1);
moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
return MOD_CONT;
diff --git a/src/core/os_modinfo.c b/src/core/os_modinfo.c
index fc34102be..9d1366856 100644
--- a/src/core/os_modinfo.c
+++ b/src/core/os_modinfo.c
@@ -33,7 +33,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleSetType(CORE);
- c = createCommand("MODINFO", do_modinfo, is_oper, -1, -1, -1, -1,
+ c = createCommand("MODINFO", do_modinfo, NULL, -1, -1, -1, -1,
OPER_HELP_MODINFO);
moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
@@ -57,9 +57,7 @@ void AnopeFini(void)
**/
void myOperServHelp(User * u)
{
- if (is_oper(u)) {
- notice_lang(s_OperServ, u, OPER_HELP_CMD_MODINFO);
- }
+ notice_lang(s_OperServ, u, OPER_HELP_CMD_MODINFO);
}
/**
diff --git a/src/core/os_modlist.c b/src/core/os_modlist.c
index bdd2ddbea..ac26c4355 100644
--- a/src/core/os_modlist.c
+++ b/src/core/os_modlist.c
@@ -32,7 +32,7 @@ int AnopeInit(int argc, char **argv)
moduleAddVersion("$Id$");
moduleSetType(CORE);
- c = createCommand("MODLIST", do_modlist, is_oper, -1, -1, -1, -1,
+ c = createCommand("MODLIST", do_modlist, NULL, -1, -1, -1, -1,
OPER_HELP_MODLIST);
moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
@@ -56,9 +56,7 @@ void AnopeFini(void)
**/
void myOperServHelp(User * u)
{
- if (is_oper(u)) {
- notice_lang(s_OperServ, u, OPER_HELP_CMD_MODLIST);
- }
+ notice_lang(s_OperServ, u, OPER_HELP_CMD_MODLIST);
}
/**
diff --git a/src/core/os_oper.c b/src/core/os_oper.c
index 4df712036..419dbb7c6 100644
--- a/src/core/os_oper.c
+++ b/src/core/os_oper.c
@@ -34,7 +34,7 @@ int AnopeInit(int argc, char **argv)
moduleAddAuthor("Anope");
moduleAddVersion("$Id$");
moduleSetType(CORE);
- c = createCommand("OPER", do_oper, is_oper, OPER_HELP_OPER, -1, -1, -1,
+ c = createCommand("OPER", do_oper, NULL, OPER_HELP_OPER, -1, -1, -1,
-1);
moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
@@ -58,7 +58,7 @@ void AnopeFini(void)
**/
void myOperServHelp(User * u)
{
- if (is_oper(u)) {
+ if (is_oper(u) || is_services_admin(u)) {
notice_lang(s_OperServ, u, OPER_HELP_CMD_OPER);
}
}
@@ -165,6 +165,11 @@ int do_oper(User * u)
} else if (!stricmp(cmd, "LIST")) {
int sent_header = 0;
+ if (!is_oper(u)) {
+ notice_lang(s_OperServ, u, PERMISSION_DENIED);
+ return MOD_CONT;
+ }
+
if (servopers.count == 0) {
notice_lang(s_OperServ, u, OPER_OPER_LIST_EMPTY);
return MOD_CONT;
diff --git a/src/core/os_staff.c b/src/core/os_staff.c
index 67d07a94e..bae57920b 100644
--- a/src/core/os_staff.c
+++ b/src/core/os_staff.c
@@ -35,7 +35,7 @@ int AnopeInit(int argc, char **argv)
moduleAddVersion("$Id$");
moduleSetType(CORE);
- c = createCommand("STAFF", do_staff, is_oper, OPER_HELP_STAFF, -1, -1,
+ c = createCommand("STAFF", do_staff, NULL, OPER_HELP_STAFF, -1, -1,
-1, -1);
moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
@@ -59,9 +59,7 @@ void AnopeFini(void)
**/
void myOperServHelp(User * u)
{
- if (is_oper(u)) {
- notice_lang(s_OperServ, u, OPER_HELP_CMD_STAFF);
- }
+ notice_lang(s_OperServ, u, OPER_HELP_CMD_STAFF);
}
/**
diff --git a/version.log b/version.log
index b1d0e7692..ed4d0a326 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="18"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1219"
+VERSION_BUILD="1220"
# $Log$
#
+# BUILD : 1.7.18 (1220)
+# BUGS : 657
+# NOTES : Fixed various OperServ commands which did not respect a disabled OSOpersOnly
+#
# BUILD : 1.7.18 (1219)
# BUGS :
# NOTES : Fixed a missing backtick in the INSERT query for newsitems