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:
@@ -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.
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 **********************/
|
||||
/*************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user