Skip to content
Snippets Groups Projects
ajax.php 3.71 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-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:
    **********************************************************************/
    # 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, 'Server configuration error');
    
    require_once INCLUDE_DIR.'/class.dispatcher.php';
    require_once INCLUDE_DIR.'/class.ajax.php';
    $dispatcher = patterns('',
        url('^/kb/', patterns('ajax.kbase.php:KbaseAjaxAPI',
    
    Jared Hancock's avatar
    Jared Hancock committed
            # 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')
    
    Jared Hancock's avatar
    Jared Hancock committed
        )),
    
        url('^/content/', patterns('ajax.content.php:ContentAjaxAPI',
            url_get('^log/(?P<id>\d+)', 'log'),
            url_get('^ticket_variables', 'ticket_variables')
    
    Jared Hancock's avatar
    Jared Hancock committed
        )),
    
        url('^/config/', patterns('ajax.config.php:ConfigAjaxAPI',
    
    Peter Rotich's avatar
    Peter Rotich committed
            url_get('^scp', 'scp')
    
    Jared Hancock's avatar
    Jared Hancock committed
        )),
    
    Jared Hancock's avatar
    Jared Hancock committed
        url('^/form/', patterns('ajax.forms.php:DynamicFormsAjaxAPI',
            url_get('^help-topic/(?P<id>\d+)$', 'getFormsForHelpTopic'),
            url_get('^field-config/(?P<id>\d+)$', 'getFieldConfiguration'),
    
            url_post('^field-config/(?P<id>\d+)$', 'saveFieldConfiguration'),
            url_get('^user-info/(?P<id>\d+)$', 'getUserInfo'),
            url_post('^user-info/(?P<id>\d+)$', 'saveUserInfo')
    
    Jared Hancock's avatar
    Jared Hancock committed
        )),
    
        url('^/report/overview/', patterns('ajax.reports.php:OverviewReportAjaxAPI',
            # Send
            url_get('^graph$', 'getPlotData'),
            url_get('^table/groups$', 'enumTabularGroups'),
    
            url_get('^table/export$', 'downloadTabularData'),
    
            url_get('^table$', 'getTabularData')
    
    Jared Hancock's avatar
    Jared Hancock committed
        )),
    
        url('^/users', patterns('ajax.users.php:UsersAjaxAPI',
            url_get('^$', 'search'),
            url_get('^/lookup$', 'getLookupForm')
        )),
    
        url('^/tickets/', patterns('ajax.tickets.php:TicketsAjaxAPI',
    
            url_get('^(?P<tid>\d+)/preview', 'previewTicket'),
    
            url_post('^(?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'),
            url_get('^lookup', 'lookup'),
            url_get('^search', 'search')
    
        url('^/draft/', patterns('ajax.draft.php:DraftAjaxAPI',
            url_post('^(?P<id>\d+)$', 'updateDraft'),
            url_delete('^(?P<id>\d+)$', 'deleteDraft'),
            url_post('^(?P<id>\d+)/attach$', 'uploadInlineImage'),
            url_get('^(?P<namespace>[\w.]+)$', 'getDraft'),
            url_post('^(?P<namespace>[\w.]+)$', 'createDraft'),
            url_get('^images/browse$', 'getFileList')
        )),
    
        url_post('^/upgrader', array('ajax.upgrader.php:UpgraderAjaxAPI', 'upgrade')),
        url('^/help/', patterns('ajax.tips.php:HelpTipAjaxAPI',
            url_get('tips/(?P<namespace>[\w_.]+)$', 'getTipsJson'),
            url_get('(?P<lang>\w{2}_\w{2})?/tips/(?P<namespace>[\w_.]+)$', 'getTipsForLangJson')
        ))
    
    Jared Hancock's avatar
    Jared Hancock committed
    );
    
    # Call the respective function
    
    print $dispatcher->resolve($ost->get_path_info());
    
    Jared Hancock's avatar
    Jared Hancock committed
    ?>