]> jfr.im git - irc/quakenet/newserv.git/blame - chanserv/authcmds/setpassword.c
CHANSERV: require reasons for getpassword, setemail, setpassword, unsuspendchan,...
[irc/quakenet/newserv.git] / chanserv / authcmds / setpassword.c
CommitLineData
1dd6d55d 1/* Automatically generated by refactor.pl.
2 *
3 *
4 * CMDNAME: setpassword
d353effa 5 * CMDALIASES: setpass
1dd6d55d 6 * CMDLEVEL: QCMD_OPER
dae08100 7 * CMDARGS: 3
1dd6d55d 8 * CMDDESC: Set a new password.
9 * CMDFUNC: csa_dosetpw
10 * CMDPROTO: int csa_dosetpw(void *source, int cargc, char **cargv);
dae08100 11 * CMDHELP: Usage: @UCOMMAND@ <username> <password> <reason for use>
85174237 12 * CMDHELP: Sets the password for the specified username.
1dd6d55d 13 */
14
15#include "../chanserv.h"
16#include "../authlib.h"
17#include "../../lib/irc_string.h"
18#include <stdio.h>
19#include <string.h>
20
21int csa_dosetpw(void *source, int cargc, char **cargv) {
1dd6d55d 22 nick *sender=source;
1232a729 23 reguser *rup, *vrup=getreguserfromnick(sender);
dae08100 24 char *reason;
1dd6d55d 25
dae08100 26 if (cargc<3) {
1dd6d55d 27 chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "setpassword");
28 return CMD_ERROR;
29 }
30
31 if (!(rup=findreguser(sender, cargv[0])))
32 return CMD_ERROR;
33
dae08100
CP
34 reason = cargv[2];
35 if(!checkreason(sender, reason))
36 return CMD_ERROR;
37
372e4f1d 38 if(UHasStaffPriv(rup)) {
dae08100
CP
39 cs_log(sender,"GETPASSWORD FAILED username %s (reason: %s)",rup->username, reason);
40 chanservwallmessage("%s (%s) just FAILED using SETPASSWORD on %s (reason: %s)", sender->nick, vrup->username, rup->username, reason);
1232a729
CP
41 chanservsendmessage(sender, "Sorry, that user is privileged.");
42 return CMD_ERROR;
43 }
44
dae08100
CP
45 cs_log(sender,"SETPASSWORD OK username %s (reason: %s)",rup->username, reason);
46 chanservwallmessage("%s (%s) just used SETPASSWORD on %s (reason: %s)", sender->nick, vrup->username, rup->username, reason);
1232a729 47
30a66d6c
CP
48 if(rup->lastemail) {
49 freesstring(rup->lastemail);
50 rup->lastemail=NULL;
51 }
52 rup->lockuntil=0;
0f32b411
CP
53
54 csdb_accounthistory_insert(sender, rup->password, cargv[1], NULL, NULL);
55 setpassword(rup, cargv[1]);
1dd6d55d 56 csdb_updateuser(rup);
57
1232a729
CP
58 chanservstdmessage(sender, QM_PWCHANGED);
59
1dd6d55d 60 return CMD_OK;
61}