již se to tu několikrát zmiňovalo, ale ani jedna informace mi nepomohla.
Nevím zda to dobře chápu, ale vstoupím na úvodní stránku Moodle bez přihlášení se doklikám až ke kurzu, kde je povolen přístup pro hosty.
a) pokud mám povoleno automatické přihlášení pro hosta, tak by mě to mělo automaticky přihlásit jako hosta a mohu si kurz prohlédnout, bez jakékoliv editace? (To mi bohužel nefunguje)
b)pokud nemám nastaveno automatické přihlášení pro hosty, tak vy mě to mělo vyzvat, abych se přihlásil.
V případě, že se přihlásím pomocí tlačítka přihlásit se jako host. Pokud ho skryju, nevím proč, ale není možné se do Moodle dostat. (Automatické přihlášení nefunguje.)
Role hosta - host je normální uživatel v DB, standardně ručně vytvořený účet, kterému se přidá pouze jméno guest a přiřadí se mu role hosta? Poté co je tento účet vytvořen, tak je možné se do Moodle přihlásit s jako host.
Chtěl bych se zeptat, zda někdo nevíte, jakým způsobem opravit to automatické přihlášení?
Snad jsem popsal vše podstatné, ostatní parametry jsou ve výchozím nastavení. popsaný příklad je z www.moodlemoot.cz , kde je to s úspěchem použito (příspěvky si prohlédnete jako implicitní host - tedy bez tlačítka).
Zdraví Bohuš
Vláďa.
tak se mi podařilo částečně uspět. Nyní funguje přihlášení pro hosta, pomocí tlačítka host.
1. Smazal jsem účet guest z DB mdl_users pomocí PHPMyAdmin
2. Vytvořil jsem ručně účet v Moodle, login/heslo: guest/guest. Ostatní parametry záleží na vašem nastavení.
3. Přiřadil jsem tomuto účtu roli Host
4. V DB mdl_users jsem zeditoval id na hodnotu 1 (tudíž je tento uživatel první v celém seznamu) (hodně jsem četl o editaci položky mnethodsid, ale mně to s jiným než se 4, která je tam defaultně nefunguje)
5. Pak mi nešlo do hlavy, kde se vzalo heslo, které tam mám v MD5.
6. na odkazu http://www.md5.net/ jsem si zkoušel ověřit prázdné heslo, heslo guest, ale pořád mi to nesedělo. Pak jsem se dočetl, že je nutné přičíst ještě sůl. Ta je uložena v souboru config.php jako "passwordsaltmain". Má nějaký takovýto podobný formát ,rKLJlabGB~FK8#`-aG`07qlJ (Mimo jiné, pro každou instalaci je jiná a to může dělat občas neplechu, když přeinstalováváte, nebo měníte config.php) (heslo pak vygenerujete jako guest,rKLJlabGB~FK8#`-aG`07qlJ). Teď už MD5 hash odpovídal.
Tak a teď vyřešit ještě automatické přihlašování bez účtu hosta.
Stále jsem totiž nedokázal odstranit to, aby se host nemohl svévolně zapisovat do kurzů, do kterých se mu zachce. To je velký problém!
Dobrý den,
Tak se mi podařilo rozchodit i autologin s právem hosta.
Zabralo to trochu víc času, ale podařilo se. Potřebujete NetBeans pro PHP a k tomu utilitku xdebug, aby bylo možné krokovat. http://www.nabito.net/jak-nastavit-xdebug-v-netbeans/
Jediné nastavení xdebug do souboru php.ini
zend_extension = C:\Server\server\php\ext\php_xdebug.dll (musíte nakopírovat knihovnu v PHP do ext adresáře)
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
Tím je ladící nástroj připraven. Dál jsem dal vytvořit nový projekt s existujícími zdrojovými kódy. Další nastavení mi přijde intuitivní.
V moodle jsem si vytvořil pokusný kurz s přístupem pro hosta co nejvýš ve struktuře, abych při dalším testování nemusel procházet někde do hloubky.
Zpět do NetBeans. Dál zvolíte debugování viz obr.
Doporučení Škoďáka :
oh! vám jde o automatický login uživatele "guest" bez klikání na přihlašovací stránce. tak to je implementováno ve funkci require_login() v souboru moodlelib.php
if ($autologinguest and !empty($CFG->guestloginbutton) and !empty($CFG->autologinguests)) {
if (!$guest = get_complete_user_data('id', $CFG->siteguest)) {
// misconfigured site guest, just redirect to login page
redirect(get_login_url());
exit; // never reached
}
takze zkontrolujte si hodnoty nastavení:
1/ $CFG->guestloginbutton
2/ $CFG->autologinguests
3/ a nakonec taky zda $CFG->siteguest odpovida id uzivatele s username=='guest'
-------------------------------------------------------------------------------------------------------------
V moodlelib.php jsem si dal breakpoint za fci. require_login a začal krokovat
Jednotlivé kroky:
1. Dáte debug a otevře se vám stránka (prázdná)
2. F5 zvolíte continue (dojde k načtení úvodní stránky v Moodle, pokračujete, při každém kliknutí ve stránce zvolíte F5 (continue), do té doby, dokud se nedostanete k vašemu kurzu s přístupem pro hosty. Po tom, co kliknete vstoupit do tohoto kurzu, dáte poslední F5 a NetBeans se zastaví na fci., kde máte breakpoint.
3. Skočíte F7 o krok dál ať máte jistotu, že proměnné jsou naplněné a zkontrolujete hodnoty, podle doporučení Škoďáka. (u mě byl v tomto případě, problém v hodnotě siteguest = 26).
4. Pro mě nejsnadnější řešení, že jsem vstoupil do DB a v účtu Hosta (viz předchozí můj příspěvek) jsem nastavil ID na hodnotu 26. Již vše funguje, tak jak potřebuji.
(Až se mi bude chtít, budu dohledávat, kde se tato hodnota načítá a ten zdroj pak opravím an hodnotu ID = 1 ať a změním guesta na 1)
Pozor: tlačítko pro hosta musí být zapnuté. Pokud ho chcete mít vypnuté, vymažte si z podmínky u fce."and !empty($CFG->guestloginbutton)"
Snažil jsem se popsat problém, aby ho zvládl vyřešit i koumavý administrátor. Tak snad vám to pomůže.
Vláďa