AAIT#39909 'anonieme' autorisatie vanuit een link in de bon of e-mail
svn path=/Website/trunk/; revision=33787
This commit is contained in:
@@ -38,7 +38,10 @@ __Log("== Entering shorturl.asp ==");
|
||||
'locatie': { gui: 'appl/alg/alg_locatie.asp?key=' },
|
||||
'melding': { gui: 'appl/mld/mld_melding.asp?mld_key=', mob: 'appl/pda/melding.asp?mld_key=' },
|
||||
'message': { gui: 'appl/msg/msg_message.asp?message_key=' },
|
||||
'opdracht': { gui: 'appl/mld/mld_opdr.asp?opdr_key=', mob: 'appl/pda/order.asp?opdr_key=' },
|
||||
'opdracht': { gui: 'appl/mld/mld_opdr.asp?opdr_key=',
|
||||
mob: 'appl/pda/order.asp?opdr_key=',
|
||||
lckgui: 'appl/mld/mld_opdr_actions.asp?opdr_key=',
|
||||
lckmob: 'appl/mld/mld_opdr_actions.asp?opdr_key=' },
|
||||
'perslid': { gui: 'appl/prs/prs_perslid.asp?prs_key=', mob: 'appl/pda/user_info.asp?prs_key=' },
|
||||
'reservering': { gui: 'appl/res/res_reservering.asp?rsv_ruimte_key=', mob: 'appl/pda/reservering.asp?rsv_ruimte_key=' },
|
||||
'ruimte': { gui: 'appl/alg/alg_ruimte.asp?key=', mob: 'appl/pda/ruimte.asp?ruimte_key=' },
|
||||
@@ -47,16 +50,33 @@ __Log("== Entering shorturl.asp ==");
|
||||
}
|
||||
|
||||
var keyparam = getQParamInt("k", -1);
|
||||
var locked_user_key = getQParamInt("luk", -1);
|
||||
// TODO: beschermen met hmac
|
||||
// Daarom nog niet geactiveerd
|
||||
if (locked_user_key > 0)
|
||||
{
|
||||
|
||||
var locked_bdradr_key = getQParamInt("lbdr", -1);
|
||||
if (locked_bdradr_key > 0)
|
||||
{ // Eerst: hmac controleren
|
||||
var sql = "SELECT prs_bedrijfadres_locksecret,"
|
||||
+ " prs_bedrijfadres_lockuser_key,"
|
||||
+ " prs_bedrijfadres_lockexpire"
|
||||
+ " FROM prs_bedrijfadres"
|
||||
+ " WHERE prs_bedrijfadres_key = " + locked_bdradr_key
|
||||
+ " AND prs_bedrijfadres_locksecret IS NOT NULL"
|
||||
+ " AND prs_bedrijfadres_lockuser_key IS NOT NULL";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var locksecret = oRs("prs_bedrijfadres_locksecret").Value;
|
||||
var lockuser_key = oRs("prs_bedrijfadres_lockuser_key").Value;
|
||||
var lockexpire = oRs("prs_bedrijfadres_lockexpire").Value;
|
||||
oRs.Close()
|
||||
__Log("Checking locked bdradr {0} expire {1} days".format(locked_bdradr_key, lockexpire));
|
||||
protectQS.verify({ sleutel: locksecret,
|
||||
expire: lockexpire * 24 * 60,
|
||||
checkpath: "/", // altijd tegen de root zonder default.asp
|
||||
no_user_key: true }); // tamper check
|
||||
|
||||
var user_allowed = Session("locked_user_allowed") || []; // Array voor als je meerdere tabjes open hebt
|
||||
var found = false;
|
||||
for (var i = 0; i < user_allowed.length; i++)
|
||||
{
|
||||
if (user_allowed[i].locked_user_key == locked_user_key &&
|
||||
if (user_allowed[i].locked_user_key == lockuser_key &&
|
||||
user_allowed[i].xmlnode == u &&
|
||||
user_allowed[i].key == keyparam)
|
||||
{
|
||||
@@ -66,7 +86,7 @@ __Log("== Entering shorturl.asp ==");
|
||||
}
|
||||
if (!found)
|
||||
{
|
||||
user_allowed.push({ locked_user_key: locked_user_key,
|
||||
user_allowed.push({ locked_user_key: lockuser_key,
|
||||
xmlnode: u,
|
||||
key: keyparam
|
||||
})
|
||||
@@ -88,13 +108,15 @@ __Log("== Entering shorturl.asp ==");
|
||||
checkUserAgent(); // devicebits waren anders mogelijk nog niet gezet
|
||||
if (device.test(device.isDesktop) || device.test(device.isTouch))
|
||||
{
|
||||
url = known_bookmarks[u].gui;
|
||||
url = locked_bdradr_key > 0? known_bookmarks[u].lckgui : known_bookmarks[u].gui;
|
||||
}
|
||||
else
|
||||
{
|
||||
url = known_bookmarks[u].mob || known_bookmarks[u].gui;
|
||||
url = locked_bdradr_key > 0? known_bookmarks[u].lckmob || known_bookmarks[u].lckgui
|
||||
: known_bookmarks[u].mob || known_bookmarks[u].gui;
|
||||
isMobile = true;
|
||||
}
|
||||
|
||||
url = url + keyparam;
|
||||
|
||||
if (keyparam > -1)
|
||||
@@ -183,7 +205,7 @@ __Log("== Entering shorturl.asp ==");
|
||||
else
|
||||
var theURL = protectQS.create(url);
|
||||
|
||||
if (locked_user_key < 0 && isKnownBookmark && !isMobile && getQParamInt("internal", 0) == 0)
|
||||
if (locked_bdradr_key < 0 && isKnownBookmark && !isMobile && getQParamInt("internal", 0) == 0)
|
||||
{
|
||||
Session("FirstPage") = theURL;
|
||||
theURL = rooturl + "/";
|
||||
|
||||
Reference in New Issue
Block a user