X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/92d41a48646368424048f242af44148ad1d901f4..28aa186de14dc4fa7488866e70beb6ae933dde79:/chanserv/authcmds/setemail.c diff --git a/chanserv/authcmds/setemail.c b/chanserv/authcmds/setemail.c index b102fd8d..35dde83a 100644 --- a/chanserv/authcmds/setemail.c +++ b/chanserv/authcmds/setemail.c @@ -3,11 +3,11 @@ * * CMDNAME: setemail * CMDLEVEL: QCMD_OPER - * CMDARGS: 2 + * CMDARGS: 3 * CMDDESC: Set the email address. * CMDFUNC: csa_dosetmail * CMDPROTO: int csa_dosetmail(void *source, int cargc, char **cargv); - * CMDHELP: Usage: setemail + * CMDHELP: Usage: setemail * CMDHELP: Sets the email address for the specified username. */ @@ -22,8 +22,9 @@ int csa_dosetmail(void *source, int cargc, char **cargv) { reguser *rup, *vrup = getreguserfromnick(sender); char *dupemail; char *local; + char *reason; - if (cargc<2) { + if (cargc<3) { chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "setemail"); return CMD_ERROR; } @@ -39,14 +40,18 @@ int csa_dosetmail(void *source, int cargc, char **cargv) { if (csa_checkeboy(sender, cargv[1])) return CMD_ERROR; - if(UHasHelperPriv(rup)) { - cs_log(sender,"SETEMAIL FAILED username %s",rup->username); - chanservwallmessage("%s (%s) just FAILED using SETEMAIL on %s: %s", sender->nick, vrup->username, rup->username, cargv[1]); + reason = cargv[2]; + if(!checkreason(sender, reason)) + return CMD_ERROR; + + if(UHasStaffPriv(rup)) { + cs_log(sender,"SETEMAIL FAILED username %s (reason: %s)",rup->username, reason); + chanservwallmessage("%s (%s) just FAILED using SETEMAIL on %s: %s (reason: %s)", sender->nick, vrup->username, rup->username, cargv[1], reason); chanservsendmessage(sender, "Sorry, that user is privileged."); return CMD_ERROR; } - csdb_accounthistory_insert(sender, NULL, NULL, rup->email, getsstring(cargv[1], EMAILLEN)); + csdb_accounthistory_insert(sender, NULL, NULL, rup->email?rup->email->content:NULL, cargv[1]); delreguserfrommaildomain(rup,rup->domain); freesstring(rup->email); rup->email=getsstring(cargv[1],EMAILLEN); @@ -68,8 +73,8 @@ int csa_dosetmail(void *source, int cargc, char **cargv) { free(dupemail); chanservstdmessage(sender, QM_EMAILCHANGED, cargv[1]); - cs_log(sender,"SETEMAIL OK username %s <%s>",rup->username,rup->email->content); - chanservwallmessage("%s (%s) just used SETEMAIL on %s: %s", sender->nick, vrup->username, rup->username, rup->email->content); + cs_log(sender,"SETEMAIL OK username %s <%s> (reason: %s)",rup->username,rup->email->content, reason); + chanservwallmessage("%s (%s) just used SETEMAIL on %s: %s (reason: %s)", sender->nick, vrup->username, rup->username, rup->email->content, reason); csdb_updateuser(rup);