Uživatel:Josmart/Rogo/Synchronizace

Z WikiSkript

Automatizovaná synchronizace předmětů a studentů[upravit | editovat zdroj]

Na serveru poběží několik CRON úloh, které by měly být spouštěny v následujícím pořadí. Je nutné zajistit, aby v době spuštění scriptu byly předchozí scripty hotovy. K tomu může pomoct soubor status.txt, který informuje, zda předchozí script proběhl úspěšně.

cache_modules.php[upravit | editovat zdroj]

  • vytvoří seznam předmětů modules.csv, určený pro ruční import do Rogo
    • UTF-8 (bez BOM)
    • delimiter = ","
    • čárky nahrazeny
      ,
      
  • Soubor bude využit scriptem update_modules.php, který soubory naimportuje do Rogo
  • Doba běhu v řádech sekund

cache_enrolments.php[upravit | editovat zdroj]

  • vytvoří tolik XML souborů, kolik je předmětů v modules.csv.
  • Každé XML obsahuje informace o předmětu a o studentech, kteří si předmět zapsali
  • Tyto XML soubory využije následně users_from_SMS.php, což je součást Rogo, k aktualizaci přiřazení studentů k předmětům.
  • Doba běhu 80-90 minut, pokud zpracováváme jen data 1. LF

update_modules.php[upravit | editovat zdroj]

  • Rogo nenabízí službu, script pro automatizovaný import předmětů.
  • Obsahuje i funkci, která deaktivuje předměty nenacházející se v CSV.
  • Bylo možné vynechat script cache_modules.php a aktualizaci modulů udělat rovnou zde. Nakešovaný soubor má ovšem tu výhodu, že jej lze do Roga naimportovat i ručně, kdyby nastaly jakékoliv problémy.

users_from_SMS.php[upravit | editovat zdroj]

  • každý předmět má v databázi uvedenu URL, kde se má nacházet XML s informacemi o zapsaných studentech
  • Tyto XML soubory jsme předem nakešovali
  • Pokud soubor obsahuje studenta, který v Rogo neexistuje, bude automaticky vytvořen.
  • Pokud soubor neobsahuje studenta, který je předmětu přiřazen v databázi, bude student z předmětu vyřazen.
  • V config/config.inc.php musí být zadáno $cfg_sms_api = 'cuni';
  • Pro import je použita třída plugins/SMS/cuni.class.php, která není součástí distribuce Roga

LDAP autentifikace[upravit | editovat zdroj]

  • Přihlašování přes LDAP funguje, pokud je uživatel v Rogu již zaveden a jeho username je stejné jako v CAS. To je zajištěno pravidelnou synchronizací.
  • Pokud zadáváme uživatele ručně a použijeme funkci Získat detaily z LDAP, automaticky se do formuláře vyplní údaje nalezené osoby. Username bude číslo osoby UK.
  • Přihlásí-li se uživatel úspěšně přes LDAP, je hash jeho hesla uložen do DB a pro příští přihlášení již není potřeba kontaktovat LDAP. Nejdříve se zkouší heslo v interní databázi.
  • Je nastavena expirace hesla 365 dní. Pokud se uživatel do této doby od založení účtu nepřihlásí, heslo expiruje. Takových případů je hodně. Uživatele totiž zakládáme automaticky, i když to nepotřebují. Proto je kvůli zamezení problémům s přihlašováním vhodné jednou ročně (na začátku semestru) dotazem v SQL nastavit expiraci do dostatečně vzdálené budoucnosti.

By default the expiry date is 30 days. This setting is in the config file as $cfg_password_expire so you could increase that. This would take affect on all new users and any current user who has a password reset. Setting password_expire to NULL will cause the password never to expire which of course has its own risks.