%@language = "javascript" %> <% /* $Revision$ $Id$ File: shorturl.asp Description: Redirect naar een bookmark url Parameters: u Bookmark die in de bookmark tabel moet zitten. Dit moet de eerste parameter zijn als er nog meer komen k Een integer keywaarde die plat achter de bookmark_query wordt geplakt -- Optionele parameter(s): die worden allemaal blind doorgegeven naar het volgende scherm Context: Vanuit root Note: Welbeschouwd is dit gewoon een url-shortener http://sgf12/Facilitor5iWork/?u=J448UIrR43 Het is verleidelijk de u= parameter ook door te geven maar dat is in tegenspraak met het betekenisloos zijn van de u-param Als je dat wilt moet je maar BOOKMARK's gebruiken */ ANONYMOUS_Allowed = 1; %> <% var u = getQParam("u"); var known_bookmarks = { 'afspraak': { gui: 'appl/bez/bez_afspraak.asp?afspr_key=', mob: 'appl/pda/afspraak.asp?afs_key=' }, 'bestelling': { gui: 'appl/bes/bes_bestelling.asp?bes_key=', mob: 'appl/pda/bestelling.asp?bes_key=' }, 'bestelopdr': { gui: 'appl/bes/bes_opdr.asp?ordernr=' }, 'contract': { gui: 'appl/cnt/cnt_contract.asp?cnt_key=', mob: 'appl/pda/contract.asp?cnt_key=' }, 'deel': { gui: 'appl/ins/ins_deel.asp?ins_key=', mob: 'appl/pda/ins_deel.asp?ins_key=' }, 'factuur': { gui: 'appl/fin/fin_factuur.asp?fin_key=', mob: 'appl/pda/factuur.asp?fin_key=' }, 'gebouw': { gui: 'appl/alg/alg_gebouw.asp?key=' }, '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=' }, '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=' }, 'verdieping': { gui: 'appl/alg/alg_verdieping.asp?key='}, 'xreservering': { gui: 'appl/res/res_reservering.asp?rsv_ruimte_key='} } var keyparam = getQParamInt("k", -1); // For flexiblity reasons: Literal or runtime parameter(s), just pass through... var rest = String(Request.ServerVariables("QUERY_STRING")); // Request.ServerVariables("QUERY_STRING") is url-encoded, // dat is hier safer dan Request.QueryString // Strip eventuele leading &fac_id=XXXX er ook af. rest = rest.substring(rest.indexOf("u=")).substring(("u="+u).length+1); var isKnownBookmark = false; var isMobile = false; if (u in known_bookmarks) { isKnownBookmark = true; checkUserAgent(); // devicebits waren anders mogelijk nog niet gezet if (device.test(device.isDesktop) || device.test(device.isTouch)) { url = known_bookmarks[u].gui; } else { url = known_bookmarks[u].mob || known_bookmarks[u].gui; isMobile = true; } url = url + keyparam; if (keyparam > -1) { rest = rest.substring(("k="+keyparam).length+1); } if (rest) url += "&" + rest; } else { var sql = "SELECT fac_bookmark_path," + " fac_bookmark_query," + " prs_perslid_key_auth," + " fac_bookmark_unauth_url," + " fac_bookmark_expire," + " fac_bookmark_refreshtime," + " fac_bookmark_naam" + " FROM fac_bookmark" + " WHERE fac_bookmark_id = " + safe.quoted_sql(u); var oRs = Oracle.Execute(sql); if (oRs.Eof) { shared.simpel_page(L("lcl_fac_bookmark_unknown")); } if (oRs("fac_bookmark_expire").Value != null) { var expire = new Date(oRs("fac_bookmark_expire").Value); if (expire <= new Date) { shared.simpel_page(L("lcl_fac_bookmark_expired")); } } var url = oRs("fac_bookmark_path").Value; var refresher = oRs("fac_bookmark_refreshtime").Value; var bookmark_naam = oRs("fac_bookmark_naam").Value; if (user_key < 0) { if (oRs("prs_perslid_key_auth").Value) { var falluser_key = oRs("prs_perslid_key_auth").Value; if (bookmark_naam != 'faclikedeeplink' && new Perslid(falluser_key).checkAutorisation("WEB_PRSSYS", true)) { INTERNAL_ERROR_FALLBACK_CANNOT_HAVE_PRSSYS; // fac_like_deep.asp staan we wel toe, die heeft een Session.Abandon(); } Session("fallback_user_key") = falluser_key; // wordt opgepikt door loginTry.asp } else Session("unauth_url") = oRs("fac_bookmark_unauth_url").Value; // wordt opgepikt door common.asp } var params = oRs("fac_bookmark_query").Value; if (params) { if (keyparam > -1) { rest = rest.substring(("k="+keyparam).length+1); params += keyparam; } if (rest) params += "&" + rest; } else { if (rest) params = rest; } oRs.Close(); if (params) url = url + "?" + params; } // Als de bookmark een refreshrate heeft ingesteld wordt automatisch gerefreshed // We doen een refresh van de complete bookmark, niet alleen van de pagina waar de // bookmark naar wijst. Daarmee wordt de fallback_user voor elke refresh opnieuw // gebruikt en 'overleeft' de refresh een 'session expired' // Voorkom recursie met norefresh if (refresher > 0 && getQParamInt("norefresh",0) == 0) { theURL = "appl/shared/refresher.asp?url=" + Server.URLencode("/?norefresh=1" + transitQS()) + "&refreshrate=" + refresher; } else var theURL = protectQS.create(url); if (isKnownBookmark && !isMobile && getQParamInt("internal", 0) == 0) { Session("FirstPage") = theURL; theURL = rooturl + "/"; } var no302 = getQParamInt("no302", 0) == 1; if (no302) { %>