summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-04-01 19:56:40 +0000
committerrburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>2009-04-01 19:56:40 +0000
commit3cdca9e47a75f576e5ce5ba731cb65c5e68ac647 (patch)
tree0879f2048a661ad8bfc4bd1293481f87833cf767 /src
parente57feb4ef66eb167624b0f1df56d744771662452 (diff)
Replace nick_is_* checking of static userlevels with NickCore::IsServicesOper, which just confirms they have *an* opertype.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2231 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/chanserv.c2
-rw-r--r--src/core/ms_staff.c2
-rw-r--r--src/core/ns_drop.c2
-rw-r--r--src/core/ns_forbid.c2
-rw-r--r--src/core/ns_getpass.c2
-rw-r--r--src/core/ns_group.c2
-rw-r--r--src/core/ns_info.c23
-rw-r--r--src/core/ns_saset.c4
-rw-r--r--src/core/ns_suspend.c4
-rw-r--r--src/nickcore.cpp8
-rw-r--r--src/operserv.c42
11 files changed, 25 insertions, 68 deletions
diff --git a/src/chanserv.c b/src/chanserv.c
index d821e6a0a..235421072 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -1420,7 +1420,7 @@ void cs_remove_nick(const NickCore * nc)
if (ci->founder == nc) {
if (ci->successor) {
NickCore *nc2 = ci->successor;
- if (!nick_is_services_admin(nc2) && CSMaxReg && nc2->channelcount >= CSMaxReg) {
+ if (!nc2->IsServicesIoer() && CSMaxReg && nc2->channelcount >= CSMaxReg) {
alog("%s: Successor (%s) of %s owns too many channels, " "deleting channel", s_ChanServ, nc2->display, ci->name);
delchan(ci);
continue;
diff --git a/src/core/ms_staff.c b/src/core/ms_staff.c
index bf336f18a..4f3590e7b 100644
--- a/src/core/ms_staff.c
+++ b/src/core/ms_staff.c
@@ -51,7 +51,7 @@ class CommandMSStaff : public Command
{
for (nc = nclists[i]; nc; nc = nc->next)
{
- if (nick_is_services_oper(nc))
+ if (nc->IsServicesOper())
memo_send(u, nc->display, text, z);
}
}
diff --git a/src/core/ns_drop.c b/src/core/ns_drop.c
index 2d2ffc8d9..4e24e5d0a 100644
--- a/src/core/ns_drop.c
+++ b/src/core/ns_drop.c
@@ -69,7 +69,7 @@ class CommandNSDrop : public Command
notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ);
else if (!is_mine && !is_servadmin)
notice_lang(s_NickServ, u, ACCESS_DENIED);
- else if (NSSecureAdmins && !is_mine && nick_is_services_admin(na->nc) && !is_services_root(u))
+ else if (NSSecureAdmins && !is_mine && na->nc->IsServicesOper())
notice_lang(s_NickServ, u, PERMISSION_DENIED);
else
{
diff --git a/src/core/ns_forbid.c b/src/core/ns_forbid.c
index aff9aec48..7ad0f8917 100644
--- a/src/core/ns_forbid.c
+++ b/src/core/ns_forbid.c
@@ -46,7 +46,7 @@ class CommandNSForbid : public Command
}
if ((na = findnick(nick)))
{
- if (NSSecureAdmins && nick_is_services_admin(na->nc) && !is_services_root(u))
+ if (NSSecureAdmins && na->nc->IsServicesOper())
{
notice_lang(s_NickServ, u, PERMISSION_DENIED);
return MOD_CONT;
diff --git a/src/core/ns_getpass.c b/src/core/ns_getpass.c
index 34bbd3137..8632b6675 100644
--- a/src/core/ns_getpass.c
+++ b/src/core/ns_getpass.c
@@ -45,7 +45,7 @@ class CommandNSGetPass : public Command
}
else if (na->status & NS_FORBIDDEN)
notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick);
- else if (NSSecureAdmins && nick_is_services_admin(na->nc) && !is_services_root(u))
+ else if (NSSecureAdmins && na->nc->IsServicesOper())
notice_lang(s_NickServ, u, PERMISSION_DENIED);
else if (NSRestrictGetPass && !is_services_root(u))
notice_lang(s_NickServ, u, PERMISSION_DENIED);
diff --git a/src/core/ns_group.c b/src/core/ns_group.c
index 60ca25e3f..8d99cbfeb 100644
--- a/src/core/ns_group.c
+++ b/src/core/ns_group.c
@@ -107,7 +107,7 @@ class CommandNSGroup : public Command
notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, nick);
else if (u->nc && (target->nc == u->nc))
notice_lang(s_NickServ, u, NICK_GROUP_SAME, target->nick);
- else if (NSMaxAliases && (target->nc->aliases.count >= NSMaxAliases) && !nick_is_services_admin(target->nc))
+ else if (NSMaxAliases && (target->nc->aliases.count >= NSMaxAliases) && !target->nc->IsServicesOper())
notice_lang(s_NickServ, u, NICK_GROUP_TOO_MANY, target->nick, s_NickServ, s_NickServ);
else if (enc_check_password(pass, target->nc->pass) != 1)
{
diff --git a/src/core/ns_info.c b/src/core/ns_info.c
index 3485cde6e..ed010c71e 100644
--- a/src/core/ns_info.c
+++ b/src/core/ns_info.c
@@ -98,23 +98,14 @@ class CommandNSInfo : public Command
notice_lang(s_NickServ, u, NICK_INFO_REALNAME, na->nick, na->last_realname);
- if (show_hidden)
- {
- if (nick_is_services_root(na->nc))
- notice_lang(s_NickServ, u, NICK_INFO_SERVICES_ROOT, na->nick);
- else if (nick_is_services_admin(na->nc))
- notice_lang(s_NickServ, u, NICK_INFO_SERVICES_ADMIN, na->nick);
- else if (nick_is_services_oper(na->nc))
- notice_lang(s_NickServ, u, NICK_INFO_SERVICES_OPER, na->nick);
- }
- else
+ // XXX: we should perhaps show their opertype here.
+ if (na->nc->IsServicesOper())
{
- if (nick_is_services_root(na->nc) && !(na->nc->flags & NI_HIDE_STATUS))
- notice_lang(s_NickServ, u, NICK_INFO_SERVICES_ROOT, na->nick);
- else if (nick_is_services_admin(na->nc) && !(na->nc->flags & NI_HIDE_STATUS))
- notice_lang(s_NickServ, u, NICK_INFO_SERVICES_ADMIN, na->nick);
- else if (nick_is_services_oper(na->nc) && !(na->nc->flags & NI_HIDE_STATUS))
- notice_lang(s_NickServ, u, NICK_INFO_SERVICES_OPER, na->nick);
+ if (show_hidden || (!na->nc->flags & NI_HIDE_STATUS))
+ {
+ notice_lang(s_NickServ, u, NICK_INFO_SERVICES_OPERTYPE, na->nick, na->nc->ot->GetName().c_str());
+
+ }
}
if (nick_online)
diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c
index f4cae7c07..3f642d0e5 100644
--- a/src/core/ns_saset.c
+++ b/src/core/ns_saset.c
@@ -68,7 +68,7 @@ private:
int len = strlen(param);
char tmp_pass[PASSMAX];
- if (NSSecureAdmins && u->nc != nc && nick_is_services_admin(nc) && !is_services_root(u))
+ if (NSSecureAdmins && u->nc != nc && nc->IsServicesOper())
{
notice_lang(s_NickServ, u, PERMISSION_DENIED);
return MOD_CONT;
@@ -133,7 +133,7 @@ private:
notice_lang(s_NickServ, u, NICK_SASET_EMAIL_UNSET_IMPOSSIBLE);
return MOD_CONT;
}
- else if (NSSecureAdmins && u->nc != nc && nick_is_services_admin(nc) && !is_services_root(u))
+ else if (NSSecureAdmins && u->nc != nc && nc->IsServicesOper())
{
notice_lang(s_NickServ, u, PERMISSION_DENIED);
return MOD_CONT;
diff --git a/src/core/ns_suspend.c b/src/core/ns_suspend.c
index 71e678eee..be34889df 100644
--- a/src/core/ns_suspend.c
+++ b/src/core/ns_suspend.c
@@ -50,7 +50,7 @@ class CommandNSSuspend : public Command
return MOD_CONT;
}
- if (NSSecureAdmins && nick_is_services_admin(na->nc) && !is_services_root(u))
+ if (NSSecureAdmins && na->nc->IsServicesOper())
{
notice_lang(s_NickServ, u, PERMISSION_DENIED);
return MOD_CONT;
@@ -137,7 +137,7 @@ class CommandNSUnSuspend : public Command
return MOD_CONT;
}
- if (NSSecureAdmins && nick_is_services_admin(na->nc) && !is_services_root(u))
+ if (NSSecureAdmins && na->nc->IsServicesOper())
{
notice_lang(s_NickServ, u, PERMISSION_DENIED);
return MOD_CONT;
diff --git a/src/nickcore.cpp b/src/nickcore.cpp
index 6dadc9217..804d0c1c7 100644
--- a/src/nickcore.cpp
+++ b/src/nickcore.cpp
@@ -22,6 +22,14 @@ bool NickCore::HasCommand(const std::string &cmdstr) const
return this->ot->HasCommand(cmdstr);
}
+bool NickCore::IsServicesOper() const
+{
+ if (this->ot)
+ return true;
+
+ return false;
+}
+
bool NickCore::HasPriv(const std::string &privstr) const
{
if (!this->ot)
diff --git a/src/operserv.c b/src/operserv.c
index 1ba950933..012a800da 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -388,48 +388,6 @@ int is_services_oper(User * u)
}
/*************************************************************************/
-
-/* Is the given nick a Services root nick? */
-
-int nick_is_services_root(NickCore * nc)
-{
- if (nc) {
- if (nc->flags & (NI_SERVICES_ROOT))
- return 1;
- }
- return 0;
-}
-
-/*************************************************************************/
-
-/* Is the given nick a Services admin/root nick? */
-
-int nick_is_services_admin(NickCore * nc)
-{
- if (nc) {
- if (nc->flags & (NI_SERVICES_ADMIN | NI_SERVICES_ROOT))
- return 1;
- }
- return 0;
-}
-
-/*************************************************************************/
-
-/* Is the given nick a Services oper/admin/root nick? */
-
-int nick_is_services_oper(NickCore * nc)
-{
- if (nc) {
- if (nc->
- flags & (NI_SERVICES_OPER | NI_SERVICES_ADMIN |
- NI_SERVICES_ROOT))
- return 1;
- }
- return 0;
-}
-
-
-/*************************************************************************/
/*********************** OperServ command functions **********************/
/*************************************************************************/