1
0
mirror of https://github.com/anope/anope.git synced 2026-06-29 04:06:38 +02:00

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
This commit is contained in:
rburchell
2009-04-01 19:56:40 +00:00
parent e57feb4ef6
commit 3cdca9e47a
13 changed files with 30 additions and 71 deletions
+5
View File
@@ -71,6 +71,11 @@ class CoreExport NickCore : public Extensible
*/
bool HasCommand(const std::string &cmdstr) const;
/** Checks whether this account is a services oper or not.
* @return True if this account is a services oper, false otherwise.
*/
bool IsServicesOper() const;
/** Check whether this opertype has access to the given special permission.
* @param privstr The priv to check for, e.g. users/auspex.
* @return True if this opertype has the specified priv, false otherwise.
-3
View File
@@ -755,9 +755,6 @@ E void os_remove_nick(NickCore *nc);
E int is_services_root(User *u);
E int is_services_admin(User *u);
E int is_services_oper(User *u);
E int nick_is_services_root(NickCore * nc);
E int nick_is_services_admin(NickCore *nc);
E int nick_is_services_oper(NickCore *nc);
E int add_akill(User *u, const char *mask, const char *by, const time_t expires, const char *reason);
E int check_akill(const char *nick, const char *username, const char *host, const char *vhost, const char *ip);
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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);
}
}
+1 -1
View File
@@ -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
{
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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)
{
+7 -16
View File
@@ -98,23 +98,14 @@ class CommandNSInfo : public Command
notice_lang(s_NickServ, u, NICK_INFO_REALNAME, na->nick, na->last_realname);
if (show_hidden)
// XXX: we should perhaps show their opertype here.
if (na->nc->IsServicesOper())
{
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
{
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)
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
+8
View File
@@ -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)
-42
View File
@@ -387,48 +387,6 @@ int is_services_oper(User * u)
return 0;
}
/*************************************************************************/
/* 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 **********************/
/*************************************************************************/