X7ROOT File Manager
Current Path:
/home/cbholdings/pasukulu/admin/cli
home
/
cbholdings
/
pasukulu
/
admin
/
cli
/
📁
..
📄
adhoc_task.php
(5.06 KB)
📄
alternative_component_cache.php
(3 KB)
📄
automated_backups.php
(2.67 KB)
📄
backup.php
(3.97 KB)
📄
build_theme_css.php
(3.35 KB)
📄
cfg.php
(6.5 KB)
📄
check_database_schema.php
(1.89 KB)
📄
checks.php
(4.62 KB)
📄
cron.php
(5.25 KB)
📄
dashboard_reset.php
(1.74 KB)
📄
delete_course.php
(3.58 KB)
📄
emailstop.php
(6.24 KB)
📄
fix_course_sequence.php
(4.28 KB)
📄
fix_deleted_users.php
(3.29 KB)
📄
fix_orphaned_calendar_events.php
(5.23 KB)
📄
fix_orphaned_question_categories.php
(3.45 KB)
📄
generate_key.php
(2.57 KB)
📄
install.php
(31.39 KB)
📄
install_database.php
(6.83 KB)
📄
kill_all_sessions.php
(1.54 KB)
📄
maintenance.php
(3.62 KB)
📄
mysql_collation.php
(12.37 KB)
📄
mysql_compressed_rows.php
(6.53 KB)
📄
purge_caches.php
(2.29 KB)
📄
reset_password.php
(3.17 KB)
📄
restore_backup.php
(3.44 KB)
📄
scheduled_task.php
(5.24 KB)
📄
svgtool.php
(5.05 KB)
📄
uninstall_plugins.php
(6.2 KB)
📄
upgrade.php
(12.82 KB)
Editing: emailstop.php
<?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/>. /** * This script allows you to view and change the emailstop flag of any user. * * @package core * @subpackage cli * @copyright 2023 Stephan Robotta (stephan.robotta@bfh.ch) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('CLI_SCRIPT', true); require(__DIR__.'/../../config.php'); require_once($CFG->libdir.'/clilib.php'); // Define the input options. $longparams = [ 'email' => '', 'help' => false, 'id' => '', 'quiet' => false, 'stop' => '', 'username' => '', ]; $shortparams = [ 'e' => 'email', 'h' => 'help', 'i' => 'id', 'q' => 'quiet', 's' => 'stop', 'u' => 'username', ]; // Define exit codes. $exitsuccess = 0; $exitunknownoption = 1; $exitmissinguserarg = 2; $exittoomanyuserarg = 3; $exitnosearchargs = 4; $exitnousersfound = 5; $exitinvalidstopflag = 6; $exiterrordb = 7; // Now get cli options that are set by the caller. list($options, $unrecognized) = cli_get_params($longparams, $shortparams); $verbose = empty($options['quiet']); if ($unrecognized) { $unrecognized = implode("\n ", $unrecognized); if ($verbose) { cli_error(get_string('cliunknowoption', 'admin', $unrecognized), $exitunknownoption); } exit($exitunknownoption); } if ($options['help']) { $help = "Set/unset or show status of emailstop flag for a user, identified by username or email. There are no security checks here because anybody who is able to execute this file may execute any PHP too. Options: -h, --help Print out this help -e, --email=email Specify user by email, separate many users by comma -i, --id=id Specify user by id, separate many users by comma -q, --quiet No output to stdout -s, --stop=0|1|off|on Set new value for emailstop flag -u, --username=username Specify user by username, separate many users by comma Example: \$sudo -u www-data /usr/bin/php admin/cli/emailstop.php --email=student1@example.com --stop=1 \$sudo -u www-data /usr/bin/php admin/cli/emailstop.php --email=student1@example.com,student2@example.com \$sudo -u www-data /usr/bin/php admin/cli/emailstop.php --u=student1,student2 -s=on "; echo $help; exit($exitsuccess); } $cntempty = 0; $cntfilled = 0; $searchargs = []; // Try to find out which option is used to fetch the users from. Also do sanitize etc. foreach (['email', 'username', 'id'] as $option) { if (empty($options[$option])) { $cntempty++; } else { $cntfilled++; $argname = $option; // The search args must be: split by the comma, trimmed, and empty elements filtered out. $searchargs = array_flip(array_filter( array_map( function ($item) { return trim($item); }, explode(',', $options[$option]) ), function ($item) { return $item !== ''; } )); } } if ($cntempty === 3) { if ($verbose) { cli_error('One of username, email, or id must be set.', $exitmissinguserarg); } exit($exitmissinguserarg); } if ($cntfilled > 1) { if ($verbose) { cli_error('Only one of email, username, or id can be set to identify a user.', $exittoomanyuserarg); } exit($exittoomanyuserarg); } if (empty($searchargs)) { if ($verbose) { cli_error('No values are provided for users.', $exitnosearchargs); } exit($exitnosearchargs); } try { $users = $DB->get_records_list('user', $argname, array_keys($searchargs)); } catch (Exception $e) { if ($verbose) { cli_error("Could not fetch data from db by {$argname}: '{$options[$argname]}'.", $exiterrordb); } exit($exiterrordb); } if (empty($users)) { if ($verbose) { cli_error("Can not find any user by {$argname}: '{$options[$argname]}'.", $exitnousersfound); } exit($exitnousersfound); } // No stop flag set, then just print the user and the current emailstop flag state. if ($options['stop'] === '') { foreach ($users as $user) { if ($verbose) { echo 'user=' . $user->{$argname} . ' - emailstop=' . (int)$user->emailstop . PHP_EOL; unset($searchargs[$user->{$argname}]); } } if ($verbose) { foreach (array_keys($searchargs) as $arg) { echo 'user=' . $arg . ' - not found' . PHP_EOL; } } exit($exitsuccess); } // Allowed values for the stop flag enabled are 1 and on, for disabled are 0 and off. $validvalues = ['0', '1', 'off', 'on']; $stopflag = strtolower($options['stop']); if (!in_array($stopflag, $validvalues)) { if ($verbose) { cli_error('Value for the emailstop flag must be one of: ' . implode(', ', $validvalues) . '.', $exitinvalidstopflag); } exit($exitinvalidstopflag); } foreach ($validvalues as $value) { if ($value === $stopflag) { $stopflag = ($value === '1' || $value === 'on') ? 1 : 0; break; } } // Update each user with the stop flag to be set if it is necessary. foreach ($users as $user) { $line = 'Update user ' . $user->{$argname} . ($argname !== 'id' ? ' (' . $user->id . ')' : '') . ' - '; if ((int)$user->emailstop !== $stopflag) { $DB->set_field('user', 'emailstop', $stopflag, ['id' => $user->id]); $line .= 'ok'; } else { $line .= 'already done'; } if ($verbose) { echo $line . PHP_EOL; unset($searchargs[$user->{$argname}]); } } if ($verbose) { foreach (array_keys($searchargs) as $arg) { echo 'user=' . $arg . ' - not found' . PHP_EOL; } } exit($exitsuccess);
Upload File
Create Folder