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