Skip to content
Snippets Groups Projects
attachment.php 1.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /*********************************************************************
        attachment.php
    
        Attachments interface for clients.
        Clients should never see the dir paths.
        
        Peter Rotich <peter@osticket.com>
    
        Copyright (c)  2006-2013 osTicket
    
        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('secure.inc.php');
    
    require_once(INCLUDE_DIR.'class.attachment.php');
    //Basic checks
    if(!$thisclient 
            || !$_GET['id'] 
            || !$_GET['h']
            || !($attachment=Attachment::lookup($_GET['id']))
            || !($file=$attachment->getFile()))
        die('Unknown attachment!');
    
    //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().$file->getHash());
    if(strcasecmp(trim($_GET['h']),$vhash) 
            || !($ticket=$attachment->getTicket()) 
            || !$ticket->checkClientAccess($thisclient)) 
        die('Unknown or invalid attachment');
    //Download the file..
    $file->download();