Uživatel versus Role host

Uživatel versus Role host

autor Vladimir Franc -
Počet odpovědí: 6
Dobrý den,
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í?
Počet hodnocení: -
V odpovědi na Vladimir Franc

Re: Uživatel versus Role host

autor Bohumil Havel -
Obrázek: Moodle Partner Obrázek: Obzvláště nápomocní moodlisté Obrázek: Překladatelé

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š

V odpovědi na Bohumil Havel

Re: Uživatel versus Role host

autor Vladimir Franc -
Dobrý den, děkuji za odpověď. Přesně takto si to představuji. Vše co uvádíte mám nastaveno. Ale bohužel to právě tak nefunguje. Když si projdu strukturu viz. http://moodle.unob.cz/course/category.php?id=81 a snažím se vstoupit do kurzu, který je pro hosty otevřen, tak mi je nabídnuto přihlášení přes tlačítko. Problém tkví asi v něčem jiném. Kdysi dávno z historických důvodů jsem smazal účet hosta přímo v databázi a od té doby se to táhne. Právě proto, jsme byl nucen znovu účet vytvořit, ale to jak je vidět nedělá dobře. Účet jsem založil ručně v Moodle a přidělil mu roli hosta. To však nefunguje spolehlivě a tak momentálně hledám jak původní účet obnovit. Podle toho, co jste mi poslal, tak vím, že nastavení v Moodle mám správně. Je tu ještě jedna nevýhoda u mého hosta. Pokud se pomocí něj uživatel přihlásí do Moodle a pak zaná klíč ke kurzu, tak je schopen se dostat i do kurzu, který pro hosty není povolen. A to je samozřejmě zásadní chyba. Takže pokud by někdo věděl, jak obnovit původní účet hosta, tak budu rád za každou radu.
Vláďa.
V odpovědi na Vladimir Franc

Re: Uživatel versus Role host

autor Miroslav Fikar -
Ak sa Vam podari obnovit povodneho hosta, prosim dajte vediet, ako. Mam na jednom Moodle presne ten isty problem: ucet hosta bol poskodeny. Neviem, ako sa to stalo. Tak som ho na zaklade udajov z ineho Moodle vymazal a vytvoril v databaze cez SQL. Vsetko sa zda byt rovnake v nastaveniach, ale ten host funguje blbo - tak, ako pisete.
V odpovědi na Miroslav Fikar

Re: Uživatel versus Role host

autor Vladimir Franc -
Dobrý den,
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!
V odpovědi na Miroslav Fikar

Re: Uživatel versus Role host

autor Vladimir Franc -

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