LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -
Number of replies: 15

Üdvözletem!

Az alábbi problémával kapcsolatban szeretnék segítséget kérni tőletek.

Egy több mint 5 000 felhasználót számláló Moodle rendszert használunk a munkahelyemen.

A hitelesítés eDirectory címtárból történik LDAP-on keresztül.

MInden gyönyörűen működik, de nem tudom, hogyan lehetne beállítani az adatok illesztésénél azt, hogy a vezetéknév előtti "dr." titulust is átvegye a Moodle és meg is jelenítse a felhasználó profiljában.

Korábban a "dr." a vezetéknév mezőben volt rögzítve, de újabban az eDirectoryban az erre fenntartott mezőbe kerül.
(A kollégáktól kapott információ szerint ez a címtárban a GenerationalQualifier attributum.)

A Moodle-ban nem találok olyan mezőt, amivel "párosíthatnám".

A jelenleg beállított illesztésekről csatolok egy képernyőképet.

A Moodle verzió: 3.4 (ha lehet, nem szeretném most frissíteni)



Attachment LDAP_beallitas_moodle_3_4.png
In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Csaba Vágvölgyi -

Kedves Tivadar!

Nálunk is felmerült a fenti probléma, de annyiból szerencsésebb  a helyzet, hogy nálunk az LDAP-ban van olyan mező, ahol a felhasználó teljes neve (név előtaggal együtt pl.: Dr., Prof., ...) együtt szerepel. Mi ezt is szinkronizáljuk az "alternatename" nevű Moodle profilmezőbe és ezt jelenítjük meg elsődleges névként:

alternatename


Ha ez nem járható út (mert nincs ilyen mező az LDAP-ban), akkor is van egy lehetséges  megoldás:

1. az alternatename mezőbe leszinkronizálod a név előtagját

2. Az előbbi képen látható beállításban  alternatename + lastname + firstname formát adsz meg (ezt nem teszteltem, de elvileg működhet)

3.  Ha nem megy, akkor lesz még egy ötletem, de ott közvetelneül az adatbázisban kell "varázsolni"

Üdv.: Vágvölgyi Csaba

In reply to Csaba Vágvölgyi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Gábor Zsolt Nagy -

Csaba gyorsabb volt és ügyesebb.

Köszönet érte ez még nekem is jól jöhet!

Gábor

In reply to Gábor Zsolt Nagy

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Mindkettőtöknek köszönöm a gyors választ.

Az "adatbázis varázslást" és "kódba belenyúlást" csak végső esteben vállalnám :)

Csaba tanácsait kipróbálom.

  1. Ha jól tudom, van az eDirectory-ban nálunk egy "fullName" mező, amiben a "megjelenítési név" szerepel.
    Ha igen, akkor a most csatolt képem szerinti beállítás megfelelő?
    (A többi beállítás pedig maradjon az én korábbi képem szerinti?)

  2. A második javaslatot már beállítottam, de még nem láttam, hogy átveszi-e és megjeleníti-e a titulust.

Tudom egyénként én magam is frissiteni a profilokat a Moodle-ban az inaktív felhasználóknál?
Az LDAP szerverhez csak annyi hozzáférésem van, amit a Moodle beállításaiban meg kell adni, azt egy külsős csapat kezeli.

Üdv és köszönet: Tivadar


Attachment LDAP_beallitas_moodle_alternatename.png
In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Csaba Vágvölgyi -

Sziasztok!

A általad küldött képen látható beállítás jó, de a 3. sor (Külső frissítése) esetén maradjon az alapételmezett "Soha" beállítás, mert a Moodle úgysem tud visszaírni a címtárba.

Ezt követően célszerű megtenni a követekező lépést:

Az alábbi SQL parancs annyit csinál, hogy annál a felhasználónál is "kitölti" az alternatename mezőt, aki nem lép be (én phpmyadmin-ban szoktam futtatni):

UPDATE `mdl_user` SET `alternatename` = CONCAT(lastname, ' ', firstname) WHERE `mdl_user`.`alternatename`IS NULL;

Igaz, hogy ez még nem tartlamazza a név előtagokat, de az a legközelebbi login után majd befrissül. És ne feldkezz el az előző levélben látható képernyőképen látható beállításról (alternatename, mint megjelenítendő név)!

Üdv.: Vágvölgyi Csaba

In reply to Csaba Vágvölgyi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Kedves Csaba!

Köszönöm a kiegészítéseket.

Még nem jártam sikerrel, de dolgozom rajta.

Biztosan a mi "készülékünkben" van a hiba.

Sajnos bizonyos szerveres beállításokhoz nincsen jogosultságom, így másokra vagyok utalva.

Nem adom fel,  a végére járok a problémának. :)

Ha sikerült, megosztom veletek.

Üdvözlettel: Tivadar

In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Gábor Zsolt Nagy -

Nem írtátok és nem tudom, hogy nálatok fut-e, de érdemes az LDAP szinkronizáló szkriptet futtatni, ami helyre teszi az adatbázist. Mi egyébként éjszakánként le is futtatjuk, így az AD-ból törölt felhasználókat például deaktíválja a Moodle-ben is.

Szóval én az SQL bűvészkedés helyett lefuttatnám az LDAP hitelesítő segédprogram szinkronizáló szriptjét, ami a következő könyvtárban található:

/moodledocsdirectory/auth/ldap/cli/

Futtatni:

sudo -u www-data /usr/bin/php /moodledocsdirectory/auth/ldap/cli/sync_users.php

Ha pedig be akarjátok állítani, hogy minden nap lefusson akkor azt be lehet állítani a Moodle admin oldalon:

  1. Go to Site administration > Server > Scheduled tasks and click the gear icon opposite LDAP users sync job.
  2. Select the desired frequency of running and enable the task by un-ticking the disabled checkbox

Ez a szkript lekéri az összes felhasználó adatát és ahol az illesztés frissítésénél az van beállítva, hogy Minden belépés alkalmáva azokat a mezőket frissíti is.
Szóval ezzel tessék vigyázni, mert előfordulhat, hogy bizonyos Moodle mezőket nem szeretnénk felülcsapni az AD-ból megint.


Gábor

In reply to Gábor Zsolt Nagy

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Kedves Gábor!

Köszönöm az ötletet.

Kérdésedre válaszolva: nem fut.

Pedig nagy segítség lenne egy 5 200 fős hivatalban, ahol napi szintű a "jövés-menés", így aztán sohasem naprakész a Moodle felhasználói adatbázisa.

Ha jól értem ez a Csaba által javasolt "alternatename" szinkronizációt is megoldaná.

A hivatalok közös, nem általunk adminisztrált LDAP szervert használnak, csak olvasni tudjuk az adatokat.

Megpróbáltam beállítani és lefuttatni az általad javasolt ütemezett futtatást, de sajnos az LDAP szerverre írást nem tudta végrehajtani, ha jól értelmezem az üzenetet:

Execute scheduled task: LDAP-felhasználói szinkronizálás (auth_ldap\task\sync_task)
... started 08:54:45. Current memory use 10.1MB.
Csatlakozás az LDAP-szerverhez...Átmeneti tmp_extuser tábla létrehozása......... used 1975 dbqueries
... used 4.6733272075653 seconds
Scheduled task failed: LDAP-felhasználói szinkronizálás (auth_ldap\task\sync_task),Hiba az adatbázis írása közben.

Mindenképpen megpróbálom "kiharcolni" az ehhez szükséges jogosultság beállításokat mert ha ez futna, akkor a "dr." problémán kívül egy másik, nem kevésbé fontos gond is megoldódna.

Köszönöm még egyszer!

Üdvözlettel: Tivadar

In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Gábor Zsolt Nagy -

Kedves Tivadar!


A hibaüzenet alapján az látszik, hogy a Moodle tud kapcsolódni az LDAP szerverhez, de a Moodle adatbázisába nem tud írni. Mintha nem lenne jog új táblák létrehozásához (CREATE TEMPORARY TABLE privilege), vagy nem tud ebbe bele írni. Érdemes lenne megnézni mit ír a logba. Előtte persze beállítani a teljes naplózást (DEVELOPER) a Moodleben.

https://docs.moodle.org/311/en/Debugging#Enabling_debugging

Az LDAP szétverte nem kell írni. Onnan csak olvasni kell tudni.

És igen ez megoldaná a Csaba által javasolt szinkronizációt.

Üdv:

Gábor

In reply to Gábor Zsolt Nagy

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Gábor Zsolt Nagy -

LDAP szerverre és nem szétverte.

In reply to Gábor Zsolt Nagy

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Na még csak az hiányozna, hogy “szétverje”… :D :D

Kedves Gábor!

Természetesen értettem.

Köszönöm a szorgalmas segítséget.

Ezek szerint én félreértettem a hibaüzenetet.

De ez jó hír, mert akkor nem kell az LDAP szerver üzemeltetőivel egyezkednem. 

Az adatbázishoz nekem is van jogom, ellenőrzöm majd a beállításokat.

Üdv, Tivadar

In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Csaba Vágvölgyi -

Sziasztok!

Ezt az eszközt mi nem használjuk, de ennek leginkább az az oka, hogy  címtárban jóval 100 000 feletti felhasználói rekord van, holott a valós aktív felhasználóink száma "csak" 40 000 körül mozog. Ha jól értem a dolog működését, akkor ez válogatás nélkül mindenkit leszinkronizál a címtárból a Moodle userek közé. 

Lehet, hogy az tényleg "szétverné" a rendszert :)

Visszatérve az "alternatename" használatra nyitott vagyok egy telefonos/videókonferencia konzultációra (az utóbbi a képernyőmegosztás lehetősége miatt jobb lenne), ha ezzel felgyorsítjuk a megoldást.

Üdv.: Vágvölgyi Csaba

In reply to Csaba Vágvölgyi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Kedves Csaba!

Köszönöm szépen a felajánlott lehetőséget.

A korábbi információkon túl egyelőre sajnos semmi újat nem tudok mondani, ezért nem tudom, hogy raboljam-e ezzel az idődet.

Üdvözlettel: Tivadar

+36 30 165-4570


In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Sziasztok!

Egy kicsit hosszú bejegyzés lesz, amihez több képet is csatolok, de  szerintem már körvonalazódik a megoldás.

De mindenek előtt szeretném megköszönni Csabának a csütörtöki online konzultációt, mert az akkor megbeszéltek sokat segítettek.

Csak részleges jogosultsága volt a Moodle-nek az LDAP szerverhez, nem minden mező tartalmát tudta szinkronizálni, így többek közt az “alternatname” mezőt sem. Beállították, így már szinkronizálódik.

Ide én a “dr.” előtagot állítottam be, aminek az LDAP-ban nálunk a “generationQualifier” mező felel meg.

 (Működik a “fullName” mezővel is, de ezt azért nem szeretném mert annak egyedi kitöltése van és sok nem napra kész információt tartalmaz, ami persze nagy baj. Pl. névváltozások nincsnek aktualizálva.)

A felhasználói szabványoknál név formátumnak az “alternatename lastname firstname” kombinációt állítottam be.

A képen “dr. Gipsz Jakab”. Ez szépen működik is.

Belefutottam azonban abba a problémába, hogy a korábban regisztrált felhasználóknál is kitölti az “alternate (Másik név)” mezőt, mégpedig a vezeték és keresztnévvel. Így aztán mindenkinek dupla neve van.

Érdekesség még, hogy ugyanez történik a kézi regisztrációval felvitt (Excelből tömegesen importált) felhasználóknál is. Van belőlük bőven, mert külsősöknek is tartunk tanfolyamokat.

Úgy vettem észre, hogy mindkét autentikáció esetében ez a név ismétlődés azoknál jelentkezik, akik korábban jártak az oktatáson, azoknál viszont nem akik a ma délelőtt megtörtént beállítás után jelentkeztek be.

Itt nyilván a korábban már említett “visszamenőleges szinkronizációs” problémáról lehet szó.

Csatolom a képeket is.

Üdvözlettel és köszönettel: Tivadar












In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Tivadar Okolicsányi -

Az előző hozzászólásomban leírt problémát magam idéztem elő a korábbi kísérletezéseimmel.

De Csaba ismételten segítségemre sietett, és megküldte nekem azt az SQL utasítást, ami az összes "Alternatename" mezőt üresre törli:
UPDATE `mdl_user` SET `alternatename` = '' WHERE `alternatename` != ''; 

Ahogy Csaba írta is nekem, ezt követően a belépések után szépen "visszajönnek" a név előtagok.
Így már tökéletesen működik az LDAP hitelesítés, a probléma sikeresen megoldva!

Nagyon szépen köszönöm!
Boldog vagyok, hogy egy ilyen fantasztikus közösség tagja lehetek.
Üdvözlettel: Tivadar
In reply to Tivadar Okolicsányi

Tárgy: LDAP hitelesítésnél "dr." előtag megjelenítése a felhasználói profilban

by Gábor Zsolt Nagy -

Üdv!

A válasz nem egyszerű, mert a Moodle erre nincs felkészítve.

Érdemes az előtagnak létrehozni egy user profile field-t, amit az LDAP-l lehet szinkronizálni. Legalábbis 3.4.1 alatt már biztos. https://tracker.moodle.org/browse/MDL-40613

Viszont ahhoz, hogy ez meg is jelenjen szépen ahhoz bele kell nyúlni a kódba. Itt egy fórum vita erről: https://moodle.org/mod/forum/discuss.php?d=39120

Újabb verziók sincsenek felkészítve.

Remélem ez segít.

Üdv:
Gábor