1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-08 08:03:13 +02:00

Refactor auth ACL to remove superfluous param

This commit is contained in:
Travis McArthur
2015-06-14 17:59:23 -04:00
parent 67d80d84ba
commit 221bc2a92b
13 changed files with 28 additions and 27 deletions
+1 -1
View File
@@ -118,7 +118,7 @@ ConfigItem_deny_channel *Find_channel_allowed(aClient *cptr, char *name);
ConfigItem_alias *Find_alias(char *name);
ConfigItem_help *Find_Help(char *command);
OperPermission OperClass_evaluateACLPath(char* operClass, char* path, aClient *sptr, aClient *victim, aChannel *channel, void* extra);
OperPermission OperClass_evaluateACLPath(char* path, aClient *sptr, aClient *victim, aChannel *channel, void* extra);
int AllowClient(aClient *cptr, struct hostent *hp, char *sockhost, char *username);
int parse_netmask(const char *text, struct irc_netmask *netmask);
+1 -1
View File
@@ -86,7 +86,7 @@ DLLFUNC CMD_FUNC(m_addmotd)
if (!MyConnect(sptr))
return 0;
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"add:motd",sptr,NULL,NULL,NULL))
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath("add:motd",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
+1 -1
View File
@@ -86,7 +86,7 @@ DLLFUNC CMD_FUNC(m_addomotd)
if (!MyConnect(sptr))
return 0;
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"add:omotd",sptr,NULL,NULL,NULL))
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath("add:omotd",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
+1 -1
View File
@@ -96,7 +96,7 @@ DLLFUNC int m_admins(aClient *cptr, aClient *sptr, int parc, char *parv[])
return 0;
}
#ifdef ADMINCHAT
if (MyClient(sptr) && !IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"chat:admin",sptr,NULL,NULL,NULL))
if (MyClient(sptr) && !IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath("chat:admin",sptr,NULL,NULL,NULL))
#else
if (MyClient(sptr))
#endif
+2 -2
View File
@@ -98,7 +98,7 @@ DLLFUNC CMD_FUNC(m_sajoin)
}
/* Is this user disallowed from operating on this victim at all? */
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"sajoin",sptr,acptr,NULL,NULL))
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath("sajoin",sptr,acptr,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
@@ -139,7 +139,7 @@ DLLFUNC CMD_FUNC(m_sajoin)
chptr = get_channel(acptr, name, 0);
/* If this _specific_ channel is not permitted, skip it */
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"sajoin",sptr,acptr,chptr,NULL))
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath("sajoin",sptr,acptr,chptr,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
continue;
+1 -1
View File
@@ -95,7 +95,7 @@ DLLFUNC CMD_FUNC(m_samode)
return 0;
}
if ((!IsPrivileged(cptr) || !IsSAdmin(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"samode",sptr,NULL,chptr,NULL))
if ((!IsPrivileged(cptr) || !IsSAdmin(sptr)) && !OperClass_evaluateACLPath("samode",sptr,NULL,chptr,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
+2 -2
View File
@@ -105,7 +105,7 @@ DLLFUNC CMD_FUNC(m_sapart)
}
/* See if we can operate on this vicim/this command */
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"sapart",sptr,acptr,NULL,NULL))
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath("sapart",sptr,acptr,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
@@ -127,7 +127,7 @@ DLLFUNC CMD_FUNC(m_sapart)
}
/* Validate oper can do this on chan/victim */
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"sapart",sptr,acptr,chptr,NULL))
if (!IsSAdmin(sptr) && !IsULine(sptr) && !OperClass_evaluateACLPath("sapart",sptr,acptr,chptr,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
continue;
+1 -1
View File
@@ -81,7 +81,7 @@ DLLFUNC int MOD_UNLOAD(m_sdesc)(int module_unload)
int m_sdesc(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"add:description",sptr,NULL,NULL,NULL))
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath("add:description",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, sptr->name);
return 0;
+7 -7
View File
@@ -193,7 +193,7 @@ DLLFUNC int m_gline(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
if (IsServer(sptr))
return 0;
if ((!OPCanTKL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"gline",sptr,NULL,NULL,NULL))
if ((!OPCanTKL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath("gline",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
@@ -220,7 +220,7 @@ DLLFUNC int m_gzline(aClient *cptr, aClient *sptr, int parc, char *parv[])
if (IsServer(sptr))
return 0;
if ((!OPCanGZL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"zline:global",sptr,NULL,NULL,NULL))
if ((!OPCanGZL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath("zline:global",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
sptr->name);
@@ -246,7 +246,7 @@ DLLFUNC int m_shun(aClient *cptr, aClient *sptr, int parc, char *parv[])
if (IsServer(sptr))
return 0;
if ((!OPCanTKL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"shun",sptr,NULL,NULL,NULL))
if ((!OPCanTKL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath("shun",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
sptr->name);
@@ -273,7 +273,7 @@ char *comment = ((parc > 2) && !BadPtr(parv[2])) ? parv[2] : "no reason";
char *name;
int remove = 0;
if (MyClient(sptr) && ((!OPCanTKL(sptr) || !IsOper(sptr))) && !OperClass_evaluateACLPath(sptr->user->operlogin,"shun:temporary",sptr,NULL,NULL,NULL))
if (MyClient(sptr) && ((!OPCanTKL(sptr) || !IsOper(sptr))) && !OperClass_evaluateACLPath("shun:temporary",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
sptr->name);
@@ -344,7 +344,7 @@ DLLFUNC int m_tkline(aClient *cptr, aClient *sptr, int parc, char *parv[])
if (IsServer(sptr))
return 0;
if ((!OPCanKline(sptr) || !IsAnOper(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"kline:local",sptr,NULL,NULL,NULL))
if ((!OPCanKline(sptr) || !IsAnOper(sptr)) && !OperClass_evaluateACLPath("kline:local",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
sptr->name);
@@ -407,7 +407,7 @@ DLLFUNC int m_tzline(aClient *cptr, aClient *sptr, int parc, char *parv[])
if (IsServer(sptr))
return 0;
if ((!OPCanZline(sptr) || !IsAnOper(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"zline:local",sptr,NULL,NULL,NULL))
if ((!OPCanZline(sptr) || !IsAnOper(sptr)) && !OperClass_evaluateACLPath("zline:local",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
sptr->name);
@@ -764,7 +764,7 @@ char *err = NULL;
if (IsServer(sptr))
return 0;
if ((!OPCanTKL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath(sptr->user->operlogin,"spamfilter",sptr,NULL,NULL,NULL))
if ((!OPCanTKL(sptr) || !IsOper(sptr)) && !OperClass_evaluateACLPath("spamfilter",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, sptr->name);
return 0;
+1 -1
View File
@@ -91,7 +91,7 @@ DLLFUNC int m_tsctl(aClient *cptr, aClient *sptr, int parc, char *parv[])
if (!MyClient(sptr))
goto doit;
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"tsctl",sptr,NULL,NULL,NULL))
if (!IsAdmin(sptr) && !IsCoAdmin(sptr) && !OperClass_evaluateACLPath("tsctl",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
+1 -1
View File
@@ -87,7 +87,7 @@ DLLFUNC CMD_FUNC(m_wallops)
me.name, parv[0], "WALLOPS");
return 0;
}
if (MyClient(sptr) && !OPCanWallOps(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"chat:wallops",sptr,NULL,NULL,NULL))
if (MyClient(sptr) && !OPCanWallOps(sptr) && !OperClass_evaluateACLPath("chat:wallops",sptr,NULL,NULL,NULL))
{
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
return 0;
+4 -4
View File
@@ -195,11 +195,11 @@ DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[])
showchannel = 0;
if (ShowChannel(sptr, chptr))
showchannel = 1;
if (OPCanSeeSecret(sptr) || OperClass_evaluateACLPath(sptr->user->operlogin,"override:whois",sptr,NULL,chptr,NULL))
if (OPCanSeeSecret(sptr) || OperClass_evaluateACLPath("override:whois",sptr,NULL,chptr,NULL))
showchannel = 1;
if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"override:whois:",sptr,NULL,chptr,NULL))
if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr) && !OperClass_evaluateACLPath("override:whois:",sptr,NULL,chptr,NULL))
showchannel = 0;
if (IsServices(acptr) && !IsNetAdmin(sptr) && !IsSAdmin(sptr) && !OperClass_evaluateACLPath(sptr->user->operlogin,"override:whois",sptr,NULL,chptr,NULL))
if (IsServices(acptr) && !IsNetAdmin(sptr) && !IsSAdmin(sptr) && !OperClass_evaluateACLPath("override:whois",sptr,NULL,chptr,NULL))
showchannel = 0;
if (acptr == sptr)
showchannel = 1;
@@ -222,7 +222,7 @@ DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[])
#else
if ((IsNetAdmin(sptr) ||
#endif
OperClass_evaluateACLPath(sptr->user->operlogin,"override:whois",sptr,NULL,chptr,NULL)) && SecretChannel(chptr) && !IsMember(sptr, chptr))
OperClass_evaluateACLPath("override:whois",sptr,NULL,chptr,NULL)) && SecretChannel(chptr) && !IsMember(sptr, chptr))
*(buf + len++) = '?';
if (acptr->umodes & UMODE_HIDEWHOIS && !IsMember(sptr, chptr)
&& IsAnOper(sptr))
+5 -4
View File
@@ -294,7 +294,7 @@ OperPermission OperClass_evaluateACLPathEx(OperClassACL* acl, OperClassACLPath*
return OPER_DENY;
}
OperPermission OperClass_evaluateACLPath(char* opername, char* path, aClient *sptr, aClient *victim, aChannel *channel, void* extra)
OperPermission OperClass_evaluateACLPath(char* path, aClient *sptr, aClient *victim, aChannel *channel, void* extra)
{
ConfigItem_oper *ce_oper;
ConfigItem_operclass *ce_operClass;
@@ -302,18 +302,19 @@ OperPermission OperClass_evaluateACLPath(char* opername, char* path, aClient *sp
OperClassACLPath* operPath;
OperClassACL* acl;
ce_oper = Find_oper(opername);
ce_oper = Find_oper(sptr->user->operlogin);
if (!ce_oper)
{
return OPER_DENY;
}
ce_operClass = Find_operclass(ce_oper->operclass);
if (ce_operClass)
if (!ce_operClass)
{
oc = ce_operClass->classStruct;
return OPER_DENY;
}
oc = ce_operClass->classStruct;
operPath = OperClass_parsePath(path);
while (oc && operPath)
{