]> jfr.im git - irc/quakenet/newserv.git/blame - chanserv/authcmds/requestpassword.c
Added help for most remaining user commands.
[irc/quakenet/newserv.git] / chanserv / authcmds / requestpassword.c
CommitLineData
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
22int 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
34 if (ircd_strcmp(cargv[1],rup->email->content)) {
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}