Skip to content
Snippets Groups Projects
attachment.php 1.15 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jared Hancock's avatar
    Jared Hancock committed
    <?php
    /*********************************************************************
        attachment.php
    
        Handles attachment downloads & access validation.
    
        Peter Rotich <peter@osticket.com>
    
        Copyright (c)  2006-2013 osTicket
    
    Jared Hancock's avatar
    Jared Hancock committed
        http://www.osticket.com
    
        Released under the GNU General Public License WITHOUT ANY WARRANTY.
        See LICENSE.TXT for details.
    
        vim: expandtab sw=4 ts=4 sts=4:
    **********************************************************************/
    require('staff.inc.php');
    require_once(INCLUDE_DIR.'class.attachment.php');
    
    //Basic checks
    
    if(!$thisstaff || !$_GET['id'] || !$_GET['h']
            || !($attachment=Attachment::lookup($_GET['id']))
    
    Jared Hancock's avatar
    Jared Hancock committed
            || !($file=$attachment->getFile()))
    
        die(__('Unknown or invalid attachment'));
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    //Validate session access hash - we want to make sure the link is FRESH! and the user has access to the parent ticket!!
    
    $vhash=md5($attachment->getFileId().session_id().strtolower($file->getKey()));
    
    if(strcasecmp(trim($_GET['h']),$vhash) || !($ticket=$attachment->getTicket()) || !$ticket->checkStaffAccess($thisstaff)) die(__('Access Denied'));
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    //Download the file..
    $file->download();
    ?>