Add oper:testline

This commit is contained in:
Ed Kellett 2019-07-07 23:15:43 +01:00
parent 6d5be11fb1
commit 58a490f9a4
No known key found for this signature in database
GPG key ID: CB9986DEF342FABC
3 changed files with 17 additions and 2 deletions

View file

@ -236,7 +236,7 @@ auth {
* means they must be defined before operator {}. * means they must be defined before operator {}.
*/ */
privset "local_op" { privset "local_op" {
privs = oper:general, auspex:oper, oper:privs, oper:local_kill, oper:operwall; privs = oper:general, auspex:oper, oper:privs, oper:testline, oper:local_kill, oper:operwall;
}; };
privset "server_bot" { privset "server_bot" {

View file

@ -434,6 +434,7 @@ privset "local_op" {
* with +o in older releases * with +o in older releases
* auspex:oper: allows the oper to see through oper hiding * auspex:oper: allows the oper to see through oper hiding
* oper:privs: allows /stats o/O and seeing privset in /whois * oper:privs: allows /stats o/O and seeing privset in /whois
* oper:testline: allows /testline and /testgecos
* oper:local_kill: allows local users to be /KILL'd * oper:local_kill: allows local users to be /KILL'd
* oper:global_kill: allows local and remote users to be /KILL'd * oper:global_kill: allows local and remote users to be /KILL'd
* oper:routing: allows remote SQUIT and CONNECT * oper:routing: allows remote SQUIT and CONNECT
@ -459,7 +460,7 @@ privset "local_op" {
* oper:mass_notice: allows sending wallops and mass notices * oper:mass_notice: allows sending wallops and mass notices
* oper:grant: allows using the GRANT command * oper:grant: allows using the GRANT command
*/ */
privs = oper:general, auspex:oper, oper:privs, oper:local_kill, oper:operwall; privs = oper:general, auspex:oper, oper:privs, oper:testline, oper:local_kill, oper:operwall;
}; };
privset "server_bot" { privset "server_bot" {

View file

@ -75,6 +75,13 @@ mo_testline(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sou
char *puser, *phost, *reason, *operreason; char *puser, *phost, *reason, *operreason;
char reasonbuf[BUFSIZE]; char reasonbuf[BUFSIZE];
if (!HasPrivilege(source_p, "oper:testline"))
{
sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "testline");
return;
}
mask = LOCAL_COPY(parv[1]); mask = LOCAL_COPY(parv[1]);
if (IsChannelName(mask)) if (IsChannelName(mask))
@ -231,6 +238,13 @@ mo_testgecos(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *so
{ {
struct ConfItem *aconf; struct ConfItem *aconf;
if (!HasPrivilege(source_p, "oper:testline"))
{
sendto_one(source_p, form_str(ERR_NOPRIVS),
me.name, source_p->name, "testline");
return;
}
if(!(aconf = find_xline(parv[1], 0))) if(!(aconf = find_xline(parv[1], 0)))
{ {
sendto_one(source_p, form_str(RPL_NOTESTLINE), sendto_one(source_p, form_str(RPL_NOTESTLINE),