*
*
* CMDNAME: newpass
+ * CMDALIASES: newpassword
* CMDLEVEL: QCMD_SECURE | QCMD_AUTHED
* CMDARGS: 3
* CMDDESC: Change your password.
* CMDFUNC: csa_donewpw
* CMDPROTO: int csa_donewpw(void *source, int cargc, char **cargv);
- * CMDHELP: Usage: NEWPASS <oldpassword> <newpassword> <newpassword>
+ * CMDHELP: Usage: @UCOMMAND@ <oldpassword> <newpassword> <newpassword>
* CMDHELP: Changes your account password. Your new password must be at least 6 characters
* CMDHELP: long, contain at least one number and one letter, and may not contain sequences
* CMDHELP: of letters or numbers. Your new password will be sent to your registered email
reguser *rup;
nick *sender=source;
int i, cntweak = 0, cntdigits = 0, cntletters = 0;
+ time_t t;
if (cargc<3) {
chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "newpass");
if (strlen(cargv[1]) < 6) {
chanservstdmessage(sender, QM_PWTOSHORT); /* new password to short */
- cs_log(sender,"NEWPASS FAIL username %s password to short %s (%d characters)",rup->username,cargv[1],strlen(cargv[1]));
+ cs_log(sender,"NEWPASS FAIL username %s password to short %s (%zu characters)",rup->username,cargv[1],strlen(cargv[1]));
return CMD_ERROR;
}
return CMD_ERROR;
}
+ t=time(NULL);
+ if(!UHasHelperPriv(rup)) {
+ if(rup->lockuntil && rup->lockuntil > t) {
+ chanservstdmessage(sender, QM_ACCOUNTLOCKED, rup->lockuntil);
+ return CMD_ERROR;
+ }
+ rup->lockuntil=t+7*24*3600;
+ } else {
+ rup->lockuntil=0;
+ }
+
+ if(rup->lastemail) {
+ freesstring(rup->lastemail);
+ rup->lastemail=NULL;
+ }
+
+ rup->lastpasschange=t;
+ csdb_accounthistory_insert(sender, rup->password, cargv[1], NULL, NULL);
setpassword(rup, cargv[1]);
+
rup->lastauth=time(NULL);
chanservstdmessage(sender, QM_PWCHANGED);
cs_log(sender,"NEWPASS OK username %s", rup->username);
+
+#ifdef AUTHGATE_WARNINGS
+ if(UHasOperPriv(rup))
+ chanservsendmessage(sender, "WARNING FOR PRIVILEGED USERS: you MUST go to https://auth.quakenet.org and login successfully to update the cache, if you do not your old password will still be usable in certain circumstances.");
+#endif
+
csdb_updateuser(rup);
csdb_createmail(rup, QMAIL_NEWPW);