Exemple #1
0
 * @copyright  2015 Ruslan Kabalin, Lancaster University.
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
require_once '../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->libdir . '/tablelib.php';
$action = required_param('action', PARAM_ALPHANUMEXT);
$antivirus = required_param('antivirus', PARAM_PLUGIN);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/antiviruses.php', array('action' => $action, 'antivirus' => $antivirus));
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', context_system::instance());
$returnurl = "{$CFG->wwwroot}/{$CFG->admin}/settings.php?section=manageantiviruses";
// Get currently installed and enabled antivirus plugins.
$availableantiviruses = \core\antivirus\manager::get_available();
if (!empty($antivirus) and empty($availableantiviruses[$antivirus])) {
    redirect($returnurl);
}
$activeantiviruses = explode(',', $CFG->antiviruses);
foreach ($activeantiviruses as $key => $active) {
    if (empty($availableantiviruses[$active])) {
        unset($activeantiviruses[$key]);
    }
}
if (!confirm_sesskey()) {
    redirect($returnurl);
}
switch ($action) {
    case 'disable':
        // Remove from enabled list.
Exemple #2
0
 /**
  * Builds the XHTML to display the control
  *
  * @param string $data Unused
  * @param string $query
  * @return string
  */
 public function output_html($data, $query = '')
 {
     global $CFG, $OUTPUT;
     // Display strings.
     $txt = get_strings(array('administration', 'settings', 'edit', 'name', 'enable', 'disable', 'up', 'down', 'none'));
     $struninstall = get_string('uninstallplugin', 'core_admin');
     $txt->updown = "{$txt->up}/{$txt->down}";
     $antivirusesavailable = \core\antivirus\manager::get_available();
     $activeantiviruses = explode(',', $CFG->antiviruses);
     $activeantiviruses = array_reverse($activeantiviruses);
     foreach ($activeantiviruses as $key => $antivirus) {
         if (empty($antivirusesavailable[$antivirus])) {
             unset($activeantiviruses[$key]);
         } else {
             $name = $antivirusesavailable[$antivirus];
             unset($antivirusesavailable[$antivirus]);
             $antivirusesavailable[$antivirus] = $name;
         }
     }
     $antivirusesavailable = array_reverse($antivirusesavailable, true);
     $return = $OUTPUT->heading(get_string('actantivirushdr', 'antivirus'), 3, 'main', true);
     $return .= $OUTPUT->box_start('generalbox antivirusesui');
     $table = new html_table();
     $table->head = array($txt->name, $txt->enable, $txt->updown, $txt->settings, $struninstall);
     $table->colclasses = array('leftalign', 'centeralign', 'centeralign', 'centeralign', 'centeralign');
     $table->id = 'antivirusmanagement';
     $table->attributes['class'] = 'admintable generaltable';
     $table->data = array();
     // Iterate through auth plugins and add to the display table.
     $updowncount = 1;
     $antiviruscount = count($activeantiviruses);
     $baseurl = new moodle_url('/admin/antiviruses.php', array('sesskey' => sesskey()));
     foreach ($antivirusesavailable as $antivirus => $name) {
         // Hide/show link.
         $class = '';
         if (in_array($antivirus, $activeantiviruses)) {
             $hideshowurl = $baseurl;
             $hideshowurl->params(array('action' => 'disable', 'antivirus' => $antivirus));
             $hideshowimg = html_writer::img($OUTPUT->pix_url('t/hide'), 'disable', array('class' => 'iconsmall'));
             $hideshow = html_writer::link($hideshowurl, $hideshowimg);
             $enabled = true;
             $displayname = $name;
         } else {
             $hideshowurl = $baseurl;
             $hideshowurl->params(array('action' => 'enable', 'antivirus' => $antivirus));
             $hideshowimg = html_writer::img($OUTPUT->pix_url('t/show'), 'enable', array('class' => 'iconsmall'));
             $hideshow = html_writer::link($hideshowurl, $hideshowimg);
             $enabled = false;
             $displayname = $name;
             $class = 'dimmed_text';
         }
         // Up/down link.
         $updown = '';
         if ($enabled) {
             if ($updowncount > 1) {
                 $updownurl = $baseurl;
                 $updownurl->params(array('action' => 'up', 'antivirus' => $antivirus));
                 $updownimg = html_writer::img($OUTPUT->pix_url('t/up'), 'up', array('class' => 'iconsmall'));
                 $updown = html_writer::link($updownurl, $updownimg);
             } else {
                 $updown .= html_writer::img($OUTPUT->pix_url('spacer'), '', array('class' => 'iconsmall'));
             }
             if ($updowncount < $antiviruscount) {
                 $updownurl = $baseurl;
                 $updownurl->params(array('action' => 'down', 'antivirus' => $antivirus));
                 $updownimg = html_writer::img($OUTPUT->pix_url('t/down'), 'down', array('class' => 'iconsmall'));
                 $updown = html_writer::link($updownurl, $updownimg);
             } else {
                 $updown .= html_writer::img($OUTPUT->pix_url('spacer'), '', array('class' => 'iconsmall'));
             }
             ++$updowncount;
         }
         // Settings link.
         if (file_exists($CFG->dirroot . '/lib/antivirus/' . $antivirus . '/settings.php')) {
             $eurl = new moodle_url('/admin/settings.php', array('section' => 'antivirussettings' . $antivirus));
             $settings = html_writer::link($eurl, $txt->settings);
         } else {
             $settings = '';
         }
         $uninstall = '';
         if ($uninstallurl = core_plugin_manager::instance()->get_uninstall_url('antivirus_' . $antivirus, 'manage')) {
             $uninstall = html_writer::link($uninstallurl, $struninstall);
         }
         // Add a row to the table.
         $row = new html_table_row(array($displayname, $hideshow, $updown, $settings, $uninstall));
         if ($class) {
             $row->attributes['class'] = $class;
         }
         $table->data[] = $row;
     }
     $return .= html_writer::table($table);
     $return .= get_string('configantivirusplugins', 'antivirus') . html_writer::empty_tag('br') . get_string('tablenosave', 'admin');
     $return .= $OUTPUT->box_end();
     return highlight($query, $return);
 }