示例#1
0
function plugin_init_escalade()
{
    global $PLUGIN_HOOKS;
    $PLUGIN_HOOKS['csrf_compliant']['escalade'] = true;
    $plugin = new Plugin();
    if (isset($_SESSION['glpiID']) && $plugin->isInstalled('escalade') && $plugin->isActivated('escalade')) {
        //load config in session
        if (TableExists("glpi_plugin_escalade_configs")) {
            PluginEscaladeConfig::loadInSession();
            // == Load js scripts ==
            if (isset($_SESSION['plugins']['escalade']['config'])) {
                $escalade_config = $_SESSION['plugins']['escalade']['config'];
                $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/function.js';
                // on central page
                if (strpos($_SERVER['REQUEST_URI'], "central.php") !== false) {
                    //history and climb feature
                    if ($escalade_config['show_history']) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/central.js.php';
                    }
                }
                // on ticket page (in edition)
                if (strpos($_SERVER['REQUEST_URI'], "ticket.form.php") !== false && isset($_GET['id'])) {
                    //history and climb feature
                    if ($escalade_config['show_history']) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/escalade.js.php';
                    }
                    //remove btn feature
                    if (!$escalade_config['remove_delete_group_btn'] || !$escalade_config['remove_delete_user_btn']) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/remove_btn.js.php';
                    }
                    //clone ticket feature
                    if ($escalade_config['cloneandlink_ticket']) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/cloneandlink_ticket.js.php';
                    }
                    //filter group feature
                    if ($escalade_config['use_filter_assign_group']) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/filtergroup.js.php';
                    }
                }
                Plugin::registerClass('PluginEscaladeGroup_Group', array('addtabon' => 'Group'));
                Plugin::registerClass('PluginEscaladeUser', array('addtabon' => array('User')));
            }
        }
        $PLUGIN_HOOKS['add_css']['escalade'][] = 'escalade.css';
        // == Ticket modifications
        $PLUGIN_HOOKS['item_update']['escalade'] = array('Ticket' => 'plugin_escalade_item_update');
        $PLUGIN_HOOKS['item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_item_add_group_ticket', 'Ticket_User' => 'plugin_escalade_item_add_user', 'Ticket' => 'plugin_escalade_item_add_ticket');
        $PLUGIN_HOOKS['pre_item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_pre_item_add_group_ticket', 'Ticket' => 'plugin_escalade_pre_item_add_ticket');
        $PLUGIN_HOOKS['post_prepareadd']['escalade'] = array('Ticket' => 'plugin_escalade_post_prepareadd_ticket');
        $PLUGIN_HOOKS['item_purge']['escalade'] = array('User' => 'plugin_escalade_item_purge');
        $PLUGIN_HOOKS['item_add']['escalade']['User'] = '******';
        // == Interface links ==
        if (Session::haveRight('config', UPDATE)) {
            $PLUGIN_HOOKS['config_page']['escalade'] = 'front/config.form.php';
        }
        $PLUGIN_HOOKS['use_massive_action']['escalade'] = 1;
    }
}
示例#2
0
function plugin_init_escalade()
{
    global $PLUGIN_HOOKS;
    $PLUGIN_HOOKS['csrf_compliant']['escalade'] = true;
    $plugin = new Plugin();
    if (isset($_SESSION['glpiID']) && $plugin->isInstalled('escalade') && $plugin->isActivated('escalade')) {
        //load config in session
        if (TableExists("glpi_plugin_escalade_configs")) {
            PluginEscaladeConfig::loadInSession();
            // == Load js scripts ==
            if (isset($_SESSION['plugins']['escalade']['config'])) {
                if (strpos($_SERVER['REQUEST_URI'], "ticket.form.php") !== false || strpos($_SERVER['REQUEST_URI'], "central.php") !== false) {
                    //history and climb feature
                    if ($_SESSION['plugins']['escalade']['config']['show_history'] == true && $_SESSION['plugins']['escalade']['config']['remove_group'] == true) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/escalade.js.php';
                    }
                }
                if (strpos($_SERVER['REQUEST_URI'], "ticket.form.php") !== false) {
                    //remove btn feature
                    $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/remove_btn.js.php';
                    //clone ticket feature
                    if ($_SESSION['plugins']['escalade']['config']['cloneandlink_ticket'] == true) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/cloneandlink_ticket.js.php';
                    }
                    //assign me feature
                    if ($_SESSION['plugins']['escalade']['config']['assign_me_ticket'] == true) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/assign_me.js.php';
                    }
                    //filter group feature
                    if ($_SESSION['plugins']['escalade']['config']['use_filter_assign_group'] == true) {
                        $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/filtergroup.js.php';
                    }
                }
                Plugin::registerClass('PluginEscaladeGroup_Group', array('addtabon' => 'Group'));
            }
        }
        $PLUGIN_HOOKS['add_css']['escalade'][] = 'style.css';
        // == Ticket modifications
        $PLUGIN_HOOKS['item_update']['escalade'] = array('Ticket' => 'plugin_escalade_item_update');
        $PLUGIN_HOOKS['item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_item_add_group_ticket', 'Ticket_User' => 'plugin_escalade_item_add_user', 'Ticket' => 'plugin_escalade_item_add_ticket');
        $PLUGIN_HOOKS['pre_item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_pre_item_add_group_ticket', 'Ticket' => 'plugin_escalade_pre_item_add_ticket');
        $PLUGIN_HOOKS['post_prepareadd']['escalade'] = array('Ticket' => 'plugin_escalade_post_prepareadd_ticket');
        // == Interface links ==
        if (Session::haveRight('config', 'w')) {
            $config_page = 'front/config.form.php';
            $PLUGIN_HOOKS['config_page']['escalade'] = $config_page;
            $PLUGIN_HOOKS['submenu_entry']['escalade']['config'] = $config_page;
            $PLUGIN_HOOKS['submenu_entry']['escalade']['options']['config']['links']['config'] = '/plugins/escalade/' . $config_page;
        }
    }
}
<?php

include "../../../inc/includes.php";
if (!isset($_GET["id"])) {
    $_GET["id"] = 0;
}
$plugin = new Plugin();
if (!$plugin->isInstalled('escalade') || !$plugin->isActivated('escalade')) {
    echo "Plugin not installed or activated";
    return;
}
$config = new PluginEscaladeConfig();
if (isset($_POST["add"])) {
    Session::checkRight("config", CREATE);
    $newID = $config->add($_POST);
    Html::back();
} elseif (isset($_POST["update"])) {
    Session::checkRight("config", UPDATE);
    $config->update($_POST);
    Html::back();
} elseif (isset($_POST["delete"])) {
    Session::checkRight("config", DELETE);
    $config->delete($_POST, 1);
    Html::redirect("./config.form.php");
} else {
    Html::header(__("Escalation", "escalade"), '', "plugins", "escalade", "config");
    $config->showForm(1);
    Html::footer();
}
示例#4
0
function plugin_escalade_item_add_user($item)
{
    global $DB;
    if ($item instanceof User) {
        $config = new PluginEscaladeConfig();
        $config->getFromDB(1);
        $default_value = $config->fields["use_filter_assign_group"];
        $query = "INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)\n                  VALUES (" . $item->getID() . ", {$default_value})";
        $DB->query($query);
    }
    if ($item instanceof Ticket_User) {
        //prevent escalade hook to trigger on ticket creation
        if (isset($_SESSION['plugin_escalade']['skip_hook_add_user'])) {
            //unset($_SESSION['plugin_escalade']['skip_hook_add_user']);
            return true;
        }
        //this hook is only for assign
        if ($item->fields['type'] == CommonITILActor::ASSIGN) {
            return PluginEscaladeTicket::item_add_user($item);
        }
    }
    return true;
}