Skip to content
Snippets Groups Projects
ajax.php 2.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jared Hancock's avatar
    Jared Hancock committed
    <?php
    /*********************************************************************
        ajax.php
    
        Ajax utils interface.
    
        Peter Rotich <peter@osticket.com>
        Copyright (c)  2006-2012 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:
    **********************************************************************/
    # Override staffLoginPage() defined in staff.inc.php to return an
    # HTTP/Forbidden status rather than the actual login page.
    # XXX: This should be moved to the AjaxController class
    function staffLoginPage($msg='Unauthorized') {
        Http::response(403,'Must login: '.Format::htmlchars($msg));
        exit;
    }
    
    require('staff.inc.php');
    
    //Clean house...don't let the world see your crap.
    ini_set('display_errors','0'); //Disable error display
    ini_set('display_startup_errors','0');
    
    //TODO: disable direct access via the browser? i,e All request must have REFER? 
    if(!defined('INCLUDE_DIR'))	Http::response(500,'config error');
    
    require_once INCLUDE_DIR."/class.dispatcher.php";
    require_once INCLUDE_DIR."/class.ajax.php";
    $dispatcher = patterns("",
        url("^/kb/", patterns("ajax.kbase.php:KbaseAjaxAPI",
            # Send ticket-id as a query arg => canned-response/33?ticket=83
            url_get("^canned-response/(?P<id>\d+).(?P<format>json|txt)", "cannedResp"),
            url_get("^faq/(?P<id>\d+)","faq")
        )),
        url("^/content/", patterns("ajax.content.php:ContentAjaxAPI",
            url_get("^log/(?P<id>\d+)", 'log'),
            url_get("^ticket_variables",'ticket_variables')
        )),
        url("^/config/", patterns("ajax.config.php:ConfigAjaxAPI",
            url_get("^ui",'ui')
        )),
    
        url_get("^/tickets$", array("ajax.tickets.php:TicketsAjaxAPI", "search")),
    
    Jared Hancock's avatar
    Jared Hancock committed
        url("^/ticket/", patterns("ajax.tickets.php:TicketsAjaxAPI",
            url_get("^(?P<tid>\d+)/preview", "previewTicket"),
            url_get("^(?P<tid>\d+)/lock", "acquireLock"),
            url_post("^(?P<tid>\d+)/lock/(?P<id>\d+)/renew", "renewLock"),
            url_post("^(?P<tid>\d+)/lock/(?P<id>\d+)/release", "releaseLock")
        ))
    );
    
    # Call the respective function
    print $dispatcher->resolve($_SERVER['PATH_INFO']);
    ?>