forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d1bc949
commit 40d62c1
Showing
6 changed files
with
230 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
<?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/>. | ||
|
||
namespace auth_db\task; | ||
|
||
defined('MOODLE_INTERNAL') || die(); | ||
|
||
/** | ||
* Sync SPR task class | ||
* @package auth_db | ||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | ||
*/ | ||
class sync_spr extends \core\task\scheduled_task { | ||
|
||
/** | ||
* Name for this task. | ||
* | ||
* @return string | ||
*/ | ||
public function get_name() { | ||
return get_string('auth_dbsyncsprtask', 'auth_db'); | ||
} | ||
|
||
/** | ||
* Run task for synchronising users. | ||
*/ | ||
public function execute() { | ||
if (!is_enabled_auth('db')) { | ||
mtrace('auth_db plugin is disabled, synchronisation stopped', 2); | ||
return; | ||
} | ||
|
||
$dbauth = get_auth_plugin('db'); | ||
$config = get_config('auth_db'); | ||
$trace = new \text_progress_trace(); | ||
$update = !empty($config->updateusers); | ||
$dbauth->sync_spr($trace, $update); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
<?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/>. | ||
|
||
/** | ||
* Extdb user sync script. | ||
* | ||
* This script is meant to be called from a system cronjob to | ||
* sync moodle user accounts with external database. | ||
* It is required when using internal passwords (== passwords not defined in external database). | ||
* | ||
* Sample cron entry: | ||
* # 5 minutes past 4am | ||
* 5 4 * * * sudo -u www-data /usr/bin/php /var/www/moodle/auth/db/cli/sync_spr.php | ||
* | ||
* Notes: | ||
* - it is required to use the web server account when executing PHP CLI scripts | ||
* - you need to change the "www-data" to match the apache user account | ||
* - use "su" if "sudo" not available | ||
* - If you have a large number of users, you may want to raise the memory limits | ||
* by passing -d memory_limit=256M | ||
* - For debugging & better logging, you are encouraged to use in the command line: | ||
* -d log_errors=1 -d error_reporting=E_ALL -d display_errors=0 -d html_errors=0 | ||
* | ||
* Performance notes: | ||
* + The code is simpler, but not as optimized as its LDAP counterpart. | ||
* | ||
* @package auth_db | ||
* @copyright 2006 Martin Langhoff | ||
* @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"); | ||
|
||
// Now get cli options. | ||
list($options, $unrecognized) = cli_get_params(array('noupdate'=>false, 'verbose'=>false, 'help'=>false), array('n'=>'noupdate', 'v'=>'verbose', 'h'=>'help')); | ||
|
||
if ($unrecognized) { | ||
$unrecognized = implode("\n ", $unrecognized); | ||
cli_error(get_string('cliunknowoption', 'admin', $unrecognized)); | ||
} | ||
|
||
if ($options['help']) { | ||
$help = | ||
"Execute user account sync with external database. | ||
The auth_db plugin must be enabled and properly configured. | ||
Options: | ||
-n, --noupdate Skip update of existing users | ||
-v, --verbose Print verbose progress information | ||
-h, --help Print out this help | ||
Example: | ||
\$ sudo -u www-data /usr/bin/php auth/db/cli/sync_spr.php | ||
Sample cron entry: | ||
# 5 minutes past 4am | ||
5 4 * * * sudo -u www-data /usr/bin/php /var/www/moodle/auth/db/cli/sync_spr.php | ||
"; | ||
|
||
echo $help; | ||
die; | ||
} | ||
|
||
if (!is_enabled_auth('db')) { | ||
cli_error('auth_db plugin is disabled, synchronisation stopped', 2); | ||
} | ||
|
||
//if (empty($options['verbose'])) { | ||
// $trace = new null_progress_trace(); | ||
//} else { | ||
$trace = new text_progress_trace(); | ||
//} | ||
|
||
$update = empty($options['noupdate']); | ||
|
||
/** @var auth_plugin_db $dbauth */ | ||
$dbauth = get_auth_plugin('db'); | ||
$result = $dbauth->sync_spr($trace, $update); | ||
|
||
exit($result); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters