<%@ language = "JavaScript" %>
<% /*
    $Revision$
    $Id$

    File:           api_attachments.asp

    Description:    Bijlagen downloader
    Parameters:
    Context:        Geschikt voor een api2 url zoals aangemaakt in FlexFiles.inc/flexProps

    Notes:          De URL is maar beperkt geldig (720 minuten) en is gekoppeld aan
                    de user_key waaronder hij is aangemaakt.
                    Deze API2 is een beetje een vreemde eend in de bijt: er is geen
                    achterliggend model
*/
    DOCTYPE_Disable = true;
    ANONYMOUS_Allowed = 1; // Eigenlijk niet waar. We regelen echter alles zelf
    THIS_FILE = "appl/api/api_attachments.asp";

%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./api2_rest.inc" -->
<!-- #include file="../shared/FlexFiles.inc" -->
<%
    //__DoLog(String(Request.ServerVariables("HTTP_X_ORIGINAL_URL")));
    //__DoLog(String(Request.ServerVariables("UNENCODED_URL")));
    //__SafeDoLog(__DumpCollection(Request.ServerVariables, "Request.ServerVariables"));

    api2_rest.authenticate({});
    var orgurl = String(Request.ServerVariables("HTTP_X_ORIGINAL_URL"));
    //var orgurl = String(Request.ServerVariables("UNENCODED_URL"));

    // FlexFiles.inc/flexProps maakt api2url met een URLencoded filenaam
    var orgqs = orgurl.substr(orgurl.indexOf("?")+1);
    protectQS.verify( { checkqs: orgqs,
                        checkpath: Server.URLEncode(getQParam("filename")).replace(/\%2E/g, ".") }); // tamper check

    var pKey         = getQParamInt("key");
    var pNiveau      = getQParamSafe("niveau", "");
    var pModule      = getQParamSafe("module");
    var pKenmerk_key = getQParamInt("kenmerk_key", -1);
    var pFileName    = getQParam("filename");

    params = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau);

    StreamFile(params.AttachPath, pFileName, { mime: "application/octet-stream"});
%><% ASPPAGE_END(); %>
