X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/b90b52aed59ca92b957c0c27b16f223f11671ec3..78fdeaf6a300fd4b0a7a06987f712a3ecdd104d3:/chanserv/usercmds/deluser.c diff --git a/chanserv/usercmds/deluser.c b/chanserv/usercmds/deluser.c index d95de452..d6f6595e 100644 --- a/chanserv/usercmds/deluser.c +++ b/chanserv/usercmds/deluser.c @@ -20,6 +20,7 @@ int csu_dodeluser(void *source, int cargc, char **cargv) { nick *sender=source; reguser *rup=getreguserfromnick(sender), *target; + char *reason; if (!rup) return CMD_ERROR; @@ -29,18 +30,27 @@ int csu_dodeluser(void *source, int cargc, char **cargv) { return CMD_ERROR; } + reason = cargv[1]; + if(!checkreason(sender, reason)) + return CMD_ERROR; + if (!(target=findreguser(sender, cargv[0]))) return CMD_ERROR; - - if(UHasHelperPriv(target)) { - cs_log(sender,"DELUSER FAILED username %s (%s)",target->username,cargc>1?cargv[1]:""); - chanservwallmessage("%s (%s) just FAILED using DELUSER on %s (%s)", sender->nick, rup->username, target->username, cargv[1]); + + if(target->ID == lastuserID) { + chanservsendmessage(sender, "Sorry, can't delete last user -- wait a while and try again."); + return CMD_ERROR; + } + + if(UHasStaffPriv(target)) { + cs_log(sender,"DELUSER FAILED username %s (reason: %s)",target->username,reason); + chanservwallmessage("%s (%s) just FAILED using DELUSER on %s (reason: %s)", sender->nick, rup->username, target->username, reason); chanservsendmessage(sender, "Sorry, that user is privileged."); return CMD_ERROR; } - cs_log(sender,"DELUSER OK username %s (%s)",target->username,cargv[1]); - chanservwallmessage("%s (%s) just used DELUSER on %s (%s)", sender->nick, rup->username, target->username, cargv[1]); + cs_log(sender,"DELUSER OK username %s (reason: %s)",target->username,reason); + chanservwallmessage("%s (%s) just used DELUSER on %s (reason: %s)", sender->nick, rup->username, target->username, reason); cs_removeuser(target);