]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authcmds/setpassword.c
move some more data/log paths missed before
[irc/quakenet/newserv.git] / chanserv / authcmds / setpassword.c
1 /* Automatically generated by refactor.pl.
2 *
3 *
4 * CMDNAME: setpassword
5 * CMDLEVEL: QCMD_OPER
6 * CMDARGS: 2
7 * CMDDESC: Set a new password.
8 * CMDFUNC: csa_dosetpw
9 * CMDPROTO: int csa_dosetpw(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: setpassword <username> <password>
11 * CMDHELP: Sets the password for the specified username.
12 */
13
14 #include "../chanserv.h"
15 #include "../authlib.h"
16 #include "../../lib/irc_string.h"
17 #include <stdio.h>
18 #include <string.h>
19
20 int csa_dosetpw(void *source, int cargc, char **cargv) {
21 nick *sender=source;
22 reguser *rup, *vrup=getreguserfromnick(sender);
23
24 if (cargc<2) {
25 chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "setpassword");
26 return CMD_ERROR;
27 }
28
29 if (!(rup=findreguser(sender, cargv[0])))
30 return CMD_ERROR;
31
32 if(UHasHelperPriv(rup)) {
33 cs_log(sender,"GETPASSWORD FAILED username %s",rup->username);
34 chanservwallmessage("%s (%s) just FAILED using SETPASSWORD on %s", sender->nick, vrup->username, rup->username);
35 chanservsendmessage(sender, "Sorry, that user is privileged.");
36 return CMD_ERROR;
37 }
38
39 cs_log(sender,"SETPASSWORD OK username %s",rup->username);
40 chanservwallmessage("%s (%s) just used SETPASSWORD on %s", sender->nick, vrup->username, rup->username);
41
42 if(rup->lastemail) {
43 freesstring(rup->lastemail);
44 rup->lastemail=NULL;
45 }
46 rup->lockuntil=0;
47
48 csdb_accounthistory_insert(sender, rup->password, cargv[1], NULL, NULL);
49 setpassword(rup, cargv[1]);
50 csdb_updateuser(rup);
51
52 chanservstdmessage(sender, QM_PWCHANGED);
53
54 return CMD_OK;
55 }