Files
Facilitor/APPL/PRS/prs_perslid_clear_sessions.asp
Jos Groot Lipman 0bd9e28c35 FCLT#88993 Einde ondersteuning database prs.setpassword en prs.testpassword
svn path=/Website/trunk/; revision=69007
2025-05-13 15:35:55 +00:00

65 lines
2.3 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: prs_perslid_clear_sessions.asp
Description: Wis alle bewaarde sessies voor de huidige gebruiker
Parameters:
Context: Iemand is zijn mobieltje verloren en wil inloggen onmogelijk maken
Note: We maken geen onderscheid naar 'Onthoud mij' in het inlogscherm
of PDA's die de QR-code hebben gescanned. Alles wissen.
Let op: als een browser nog open staat blijft die sessie wel geldig
maar die wordt wel ongeldig na een nachtelijke recycle
*/
var JSON_Result = true;
%>
<!--#include file="../Shared/common.inc"-->
<%
protectRequest.validateToken();
var theUser_key = getQParamInt("prs_key", user_key);
if (theUser_key != user_key)
{
var xfunc = user.func_enabled("FAC", null, null, theUser_key, null, true); // laatste true: isOptional
user.auth_required_or_abort(xfunc.canWrite("WEB_PRSSYS") || xfunc.canWrite("WEB_FACMGT"))
}
var sql = "DELETE FROM fac_session"
+ " WHERE prs_perslid_key = " + theUser_key
+ " AND fac_session_sessionid_hash <> " + safe.quoted_sql(shared.makehash(Session("FACSESSIONID"))); // alles behalve huidige
Oracle.Execute(sql);
// Deze ook weg
var sql = "DELETE FROM fac_bookmark"
+ " WHERE fac_bookmark_naam IN ('PRS password reset', 'PRS QR code indentificatie')"
+ " AND prs_perslid_key = " + theUser_key;
Oracle.Execute(sql);
var sql = "DELETE FROM aut_client_perslid"
+ " WHERE prs_perslid_key = " + theUser_key;
Oracle.Execute(sql);
// Zorg dat andere *lopende* sessies eindigen
var sql = "UPDATE prs_perslid"
+ " SET prs_perslid_credentials_datum = SYSDATE"
+ " WHERE prs_perslid_key = " + theUser_key;
Oracle.Execute(sql);
// if (theUser_key == user_key)
// doLogin(user_key); is dit logisch? Neen, je ASPFIX verandert dan en Logoff werkt niet meer
// Het volgende is wel belangrijk
var sql = "SELECT SYSDATE FROM DUAL";
var oRs = Oracle.Execute(sql);
Session("login_date") = new Date(oRs(0).Value).getTime();
oRs.Close();
shared.trackaction("PRSLOG", theUser_key, L("lcl_qrc_auth_cleared"));
var result = { success: true, message: L("lcl_qrc_auth_cleared") };
Response.Write(JSON.stringify(result));
ASPPAGE_END();
%>