]>
Commit | Line | Data |
---|---|---|
1dd6d55d | 1 | /* Automatically generated by refactor.pl. |
2 | * | |
3 | * | |
4 | * CMDNAME: requestpassword | |
5 | * CMDLEVEL: QCMD_NOTAUTHED | |
6 | * CMDARGS: 2 | |
7 | * CMDDESC: Requests the current password by email. | |
8 | * CMDFUNC: csa_doreqpw | |
9 | * CMDPROTO: int csa_doreqpw(void *source, int cargc, char **cargv); | |
50cd26d6 | 10 | * CMDHELP: Usage: REQUESTPASSWORD <username> <email> |
11 | * CMDHELP: Sends your current password to your registered email address, where: | |
12 | * CMDHELP: username - your username | |
13 | * CMDHELP: email - your registered email address | |
1dd6d55d | 14 | */ |
15 | ||
16 | #include "../chanserv.h" | |
17 | #include "../authlib.h" | |
18 | #include "../../lib/irc_string.h" | |
19 | #include <stdio.h> | |
20 | #include <string.h> | |
21 | ||
22 | int csa_doreqpw(void *source, int cargc, char **cargv) { | |
23 | reguser *rup; | |
24 | nick *sender=source; | |
25 | ||
26 | if (cargc<2) { | |
27 | chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "requestpassword"); | |
28 | return CMD_ERROR; | |
29 | } | |
30 | ||
31 | if (!(rup=findreguser(sender, cargv[0]))) | |
32 | return CMD_ERROR; | |
33 | ||
847c4170 | 34 | if (strcasecmp(cargv[1],rup->email->content)) { |
1dd6d55d | 35 | chanservstdmessage(sender, QM_BADEMAIL, rup->username); |
36 | cs_log(sender,"REQUESTPASSWORD FAIL wrong email, username %s email %s",rup->username,cargv[1]); | |
37 | return CMD_ERROR; | |
38 | } | |
39 | ||
40 | if (csa_checkthrottled(sender, rup, "REQUESTPASSWORD")) | |
41 | return CMD_ERROR; | |
42 | ||
43 | rup->lastemailchange=time(NULL); | |
44 | csdb_updateuser(rup); | |
cf50e022 CP |
45 | |
46 | if(rup->lastauth) { | |
47 | csdb_createmail(rup, QMAIL_REQPW); | |
48 | } else { | |
49 | csdb_createmail(rup, QMAIL_NEWACCOUNT); /* user hasn't authed yet and needs to do the captcha */ | |
50 | } | |
1dd6d55d | 51 | chanservstdmessage(sender, QM_MAILQUEUED, rup->username); |
52 | cs_log(sender,"REQUESTPASSWORD OK username %s email %s", rup->username,rup->email->content); | |
53 | ||
54 | return CMD_OK; | |
55 | } |