65 lines
2.3 KiB
Plaintext
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();
|
|
%>
|