FSN#38653 Bij wachtwoord direkt kunnen laten verlopen

svn path=/Website/trunk/; revision=31854
This commit is contained in:
Jos Groot Lipman
2016-12-06 15:10:17 +00:00
parent bb8fa2d7cf
commit b986792fe8
3 changed files with 17 additions and 6 deletions

View File

@@ -128,8 +128,16 @@ var EXPIRED_PASSWORD_OK = true;
}
RWFIELDTR("password1", "fldnotresponsive", L("lcl_ch_password_new"), "", { required: true, html: " type=password" });
RWFIELDTR("password2", "fldnotresponsive", L("lcl_ch_password_con"), "", { required: true, html: " type=password" });
// Een vinkje met 'Stuur bevestiging naar user_info.prs_perslid_email()' klinkt leuk maar dan staat
// het wachtwoord plain-text in een e-mail wat absoluut not done is.
if (theUser != user_key)
{
RWCHECKBOXTR("pass_expired", "fldcheck", L("lcl_ch_pass_expired"), true);
// Een vinkje met 'Stuur bevestiging naar user_info.prs_perslid_email()' klinkt leuk maar dan staat
// het wachtwoord plain-text in een e-mail wat absoluut not done is.
// Als bovenstaand vinkje aanstaat zouden we wel de volgende aan kunnen zetten? Ooit...
// if (user_info.prs_perslid_email())
// RWCHECKBOXTR("pass_mail", "fldcheck", L("lcl_ch_pass_mail"));
}
BLOCK_END();
IFACE.FORM_END();
%>

View File

@@ -34,6 +34,9 @@ if (clearpassword && !xfunc.canWrite("WEB_PRSSYS") && !xfunc.canWrite("WEB_FACMG
if (!xfunc.canWrite("WEB_PRSSYS") && new Perslid(theUser_key).checkAutorisation("WEB_PRSSYS", true))
abort_with_warning(L("lcl_no_auth"));
// pass_expired alleen voor anderen
var pass_expired = theUser_key != user_key && getFParam("pass_expired", "off") == "on";
var user_info = new Perslid(theUser_key);
if ( Session("must_reset_password") != 1
@@ -67,7 +70,7 @@ if (!clearpassword)
// alle oude fac_session opruimen gebeurt door een trigger op PRS_PERSLID
shared.trackaction("PRSLOG", theUser_key, L("lcl_pwd_success"));
setpassword(theUser_key, newPassword);
setpassword(theUser_key, newPassword, pass_expired);
if (theUser_key == user_key)
{
doLogin(user_key); // Want credentials gewijzigd

View File

@@ -432,7 +432,7 @@ function testpassword(prs_key, wachtwoord, pmobile)
}
function setpassword(prs_key, wachtwoord)
function setpassword(prs_key, wachtwoord, expired)
{
if (S("prs_password_hash_factor") == 0 || !wachtwoord) // Old style
{
@@ -444,8 +444,8 @@ function setpassword(prs_key, wachtwoord)
var passsalt = shared.random(32);
var workfactor = S("prs_password_hash_factor");
var is_hash = pbkdf2(wachtwoord, passsalt, workfactor);
var sql = "UPDATE prs_perslid"
+ " SET prs_perslid_wachtwoord_exp = NULL" // Niet meer expired. Ooit: SYSDATE + fac.getsetting ('prs_password_expiration') als die is gevuld
var sql = "UPDATE prs_perslid" // Ooit expire op SYSDATE + fac.getsetting ('prs_password_expiration') als die is gevuld
+ " SET prs_perslid_wachtwoord_exp = " + (pass_expired?"SYSDATE":"NULL")
+ " , prs_perslid_salt = " + safe.quoted_sql(passsalt)
+ " , prs_perslid_wachtwoord_hash = " + safe.quoted_sql('1${0}${1}'.format(workfactor, is_hash))
+ " WHERE prs_perslid_key = " + prs_key;