středa 15. dubna 2015
Jak spojit WordPress a Moodle
Aneb ověřování uživatelů WP v Moodle
V Moodle zapnout podporu přihlašování z externí databáze a zadat: Název DB, uživatele, heslo
Tabulka: wp_users
Pole uživatel: user_login
Pole hesla: user_pass
Formát hesla: wordpress (není v nabídce, nutno donastavit níže)
Mapování dat
Křestní jméno: firstname
Příjmení: lastname
E-mailová adresa: email
Nastavení formát hesla: wordpress
V souboru /auth/db/config.html upravit toto
$passtype = array();
$passtype["plaintext"] = get_string("plaintext", "auth");
$passtype["md5"] = get_string("md5", "auth");
$passtype["sha1"] = get_string("sha1", "auth");
$passtype["internal"] = get_string("internal", "auth");
echo html_writer::select($passtype, "passtype", $config->passtype, false);
na toto
$passtype = array();
$passtype["plaintext"] = get_string("plaintext", "auth");
$passtype["md5"] = get_string("md5", "auth");
$passtype["sha1"] = get_string("sha1", "auth");
$passtype["internal"] = get_string("internal", "auth");
$passtype["wordpress"] = "wordpress";
echo html_writer::select($passtype, "passtype", $config->passtype, false);
Soubor /auth/db/auth.php
Najít toto
if ($this->config->;passtype === 'md5') { // Re-format password accordingly
$extpassword = md5($extpassword);
} else if ($this->config->;passtype === 'sha1') {
$extpassword = sha1($extpassword);
}
A za tento text přidat:
else if ($this->config->passtype === 'wordpress') {
require_once( '/var/www/nejaka-ta-cesta/wp-includes/class-phpass.php');
$hash = new PasswordHash(8, true);
$rs = $authdb->Execute("SELECT * FROM {$this->config->table} WHERE {$this->config->fielduser} = '".$this->ext_addslashes($extusername)."'");
$check = $hash->CheckPassword( $extpassword, $rs->fields["user_pass"]);
return $check;
}
dál najít select co se stará o donastavení jména, příjmení a emailu, text:
$select = implode(', ', $select);
$sql = "SELECT $select
FROM {$this->config->table}
WHERE {$this->config->fielduser} = '".$this->ext_addslashes($extusername)."'";
změnit na:
$sql = "SELECT u1.user_email email, m1.meta_value firstname, m2.meta_value lastname FROM {$this->config->table} u1
JOIN wp_usermeta m1 ON (m1.user_id = u1.id AND m1.meta_key = 'first_name')
JOIN wp_usermeta m2 ON (m2.user_id = u1.id AND m2.meta_key = 'last_name')
WHERE u1.{$this->config->fielduser} = '".$this->ext_addslashes($extusername)."'";
Další info
http://blog.giuseppeurso.net/moodle-and-wordpress-single-sign-on-in-20-minutes-part-1/
Přihlásit se k odběru:
Komentáře k příspěvku (Atom)
Jak opravit IMAP v Thunderbirdu po aktualizaci NOD32
Po aktualizaci NOD32 se může stát, že v Thunderbiru přestane fungovat připojení pomocí protokolu IMAP. Postup k vyřešení: Restartovat počíta...
-
Stává se to málo, ale může se stát, že vaše stránky nejsou na vyhledávači Google vidět. V tomto a jiných případech můžete ručně požádat o je...
-
Aby byl ve Windows 7 numlock zapnutý už v přihlašovací obrazovce, je třeba v registru nastavit hodnotu klíče InitialKeyboardIndicators na ...
-
Dnes jsem narazil na tento graf: Vypadá pěkně, ukazuje jak je nadpoloviční většina lidí spokojená a šťastná, to se čte vždy dobře, samo...
Žádné komentáře:
Okomentovat