AutorÃa | Ultima modificación | Ver Log |
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Processor file for user exclusion overview and configuration
*
* File exclude.php
* Encoding UTF-8
*
* @package tool_usersuspension
*
* @copyright Sebsoft.nl
* @author R.J. van Dongen <rogier@sebsoft.nl>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(dirname(__FILE__) . '/../../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
use tool_usersuspension\config;
use tool_usersuspension\processor\csv as csvprocessor;
/**
* Test script message output callback.
*
* @param string $msg
*/
function trtrace($msg) {
echo html_writer::div($msg, 'alert alert-info');
}
/**
* Write action links for this script.
* @param moodle_url|string $pageurl
*/
function write_actiontype_links($pageurl) {
$actiontypes = ['suspend', 'unsuspend'];
foreach ($actiontypes as $type) {
echo html_writer::link(new moodle_url($pageurl, ['actiontype' => $type]),
get_string('testfromfolder:' . $type, 'tool_usersuspension'), []);
echo '<br/>';
}
}
admin_externalpage_setup('toolusersuspension');
$context = \context_system::instance();
$thispageurl = new moodle_url('/' . $CFG->admin . '/tool/usersuspension/view/testfromfolder.php', array());
require_capability('tool/usersuspension:administration', $context);
// Process exclusion?
$actiontype = optional_param('actiontype', null, PARAM_ALPHA);
$actiontypes = ['suspend', 'unsuspend'];
if (!in_array($actiontype, $actiontypes)) {
echo $OUTPUT->header();
echo '<div class="tool-usersuspension-container">';
echo '<div>';
\tool_usersuspension\util::print_view_tabs(array(), 'testfromfolder');
echo '</div>';
write_actiontype_links($thispageurl);
echo '</div>';
echo $OUTPUT->footer();
} else if ($actiontype === 'suspend') {
echo $OUTPUT->header();
echo '<div class="tool-usersuspension-container">';
echo '<div>';
\tool_usersuspension\util::print_view_tabs(array(), 'testfromfolder');
echo '</div>';
write_actiontype_links($thispageurl);
echo $OUTPUT->heading(get_string('testing:suspendfromfolder', 'tool_usersuspension'), 4);
if (!(bool)config::get('enabled')) {
echo html_writer::div(get_string('config:tool:disabled', 'tool_usersuspension'), 'alert alert-danger');
} else {
echo html_writer::div(get_string('config:tool:enabled', 'tool_usersuspension'), 'alert alert-info');
}
if (!(bool)config::get('enablefromfolder')) {
echo html_writer::div(get_string('config:fromfolder:disabled', 'tool_usersuspension'), 'alert alert-danger');
} else {
echo html_writer::div(get_string('config:fromfolder:enabled', 'tool_usersuspension'), 'alert alert-info');
}
if (is_dir(config::get('uploadfolder'))) {
echo html_writer::div(get_string('config:uploadfolder:exists', 'tool_usersuspension',
config::get('uploadfolder')), 'alert alert-info');
} else {
echo html_writer::div(get_string('config:uploadfolder:not-exists', 'tool_usersuspension',
config::get('uploadfolder')), 'alert alert-danger');
}
$uploadedfile = config::get('uploadfolder') . '/' . config::get('uploadfilename');
if (!file_exists($uploadedfile) || is_dir($uploadedfile)) {
echo html_writer::div(get_string('config:uploadfile:not-exists', 'tool_usersuspension',
$uploadedfile), 'alert alert-danger');
} else {
echo html_writer::div(get_string('config:uploadfile:exists', 'tool_usersuspension',
$uploadedfile), 'alert alert-info');
if (!is_readable($uploadedfile)) {
echo html_writer::div(get_string('msg:file-not-readable', 'tool_usersuspension',
$uploadedfile), 'alert alert-danger');
}
$choices = \csv_import_reader::get_delimiter_list();
// Process uploaded file.
$proc = new csvprocessor();
$proc->set_file($uploadedfile);
$proc->set_delimiter($choices[config::get('csvdelimiter')]);
$proc->set_enclosure('"');
$proc->set_notifycallback('trtrace');
$proc->set_mode(csvprocessor::MODE_SUSPEND);
$proc->set_testmode();
$proc->process();
if (is_writable($uploadedfile)) {
echo html_writer::div(get_string('msg:file-would-delete', 'tool_usersuspension',
$uploadedfile), 'alert alert-success');
} else {
echo html_writer::div(get_string('msg:file-not-writeable', 'tool_usersuspension',
$uploadedfile), 'alert alert-danger');
}
}
echo '</div>';
echo $OUTPUT->footer();
} else if ($actiontype === 'unsuspend') {
echo $OUTPUT->header();
echo '<div class="tool-usersuspension-container">';
echo '<div>';
\tool_usersuspension\util::print_view_tabs(array(), 'testfromfolder');
echo '</div>';
write_actiontype_links($thispageurl);
echo $OUTPUT->heading(get_string('testing:unsuspendfromfolder', 'tool_usersuspension'), 4);
if (!(bool)config::get('enabled')) {
echo html_writer::div(get_string('config:tool:disabled', 'tool_usersuspension'), 'alert alert-danger');
} else {
echo html_writer::div(get_string('config:tool:enabled', 'tool_usersuspension'), 'alert alert-info');
}
if (!(bool)config::get('enableunsuspendfromfolder')) {
echo html_writer::div(get_string('config:unsuspendfromfolder:disabled', 'tool_usersuspension'), 'alert alert-danger');
} else {
echo html_writer::div(get_string('config:unsuspendfromfolder:enabled', 'tool_usersuspension'), 'alert alert-info');
}
if (is_dir(config::get('uploadfolder'))) {
echo html_writer::div(get_string('config:uploadfolder:exists', 'tool_usersuspension',
config::get('uploadfolder')), 'alert alert-info');
} else {
echo html_writer::div(get_string('config:uploadfolder:not-exists', 'tool_usersuspension',
config::get('uploadfolder')), 'alert alert-danger');
}
$uploadedfile = config::get('uploadfolder') . '/' . config::get('unsuspenduploadfilename');
if (!file_exists($uploadedfile) || is_dir($uploadedfile)) {
echo html_writer::div('CSV File "'.$uploadedfile.'" does not exist', 'alert alert-danger');
} else {
echo html_writer::div(get_string('config:uploadfile:exists', 'tool_usersuspension',
$uploadedfile), 'alert alert-info');
if (!is_readable($uploadedfile)) {
echo html_writer::div(get_string('msg:file-not-readable', 'tool_usersuspension',
$uploadedfile), 'alert alert-danger');
}
$choices = \csv_import_reader::get_delimiter_list();
// Process uploaded file.
$proc = new csvprocessor();
$proc->set_file($uploadedfile);
$proc->set_delimiter($choices[config::get('csvdelimiter')]);
$proc->set_enclosure('"');
$proc->set_notifycallback('trtrace');
$proc->set_mode(csvprocessor::MODE_UNSUSPEND);
$proc->set_testmode();
$proc->process();
if (is_writable($uploadedfile)) {
echo html_writer::div(get_string('msg:file-would-delete', 'tool_usersuspension',
$uploadedfile), 'alert alert-danger');
} else {
echo html_writer::div(get_string('msg:file-not-writeable', 'tool_usersuspension',
$uploadedfile), 'alert alert-danger');
}
}
echo '</div>';
echo $OUTPUT->footer();
}