>> sudo -u www-data php /var/www/nextcloud/occ ) kiadásával ellenőrizzük! Lehetőség van a scriptet a "--loglevel xx" kapcsolóval is indítani. (>>> php mayor-nextcloud.php --loglevel 3 ) További Információk: Lehetőség van egy-egy felhasználó letiltására, ezt a nyilvántartó adatbázisban tehetjük meg, a "register" tábla, az adott felhasználónévhez tartozó "status" mezőjének "forbidden"-re állításával. Ekkor a script nem fog foglalkozni, az adott felhasználóval a továbbiakban. Esetleg érdemes lehet a scriptet betenni a "cron"-ba (éjszakára), így naponta lefut, és követi napló változásait. (Ez esetben figyelni kell arra, hogy mayorban a tankör-diák, tankör-tanár összerendelések az év végén lejárhatnak, (pl. júni. 15-én) így a script futtatása júni. 16-án kitörli, letiltja az összes létrehozott mayor-os csoportot, és felhasználót a nextcloud-ból, amely csak a script szept. 1-je után történő futtatásával hozható vissza, ezért érdemes lehet a script automatikus futtatását átmenetileg júni. 15. és szept. 1. között felfüggeszteni. ) (pl: /etc/crontab -ban 01 3 * * * root php -f /root/mayor-nextcloud.php ) A mayor által ajánlott "Vezetéknév.Keresztnév" típusú felhasználónév formátum, bár hasznos, mert könnyen megjegyezhető, viszont (sajnos) egyáltalán nem POSIX kompatibilis (amely csak az angol ABC betűit +pár kiegészítő karaktert engedélyez) így a legtöbb rendszerrel nem hozható összhangba, ezért szükség van az ékezetes karakterek lecserélésére. A karakterek cseréje az alábbi módon történik: á --> aa Á --> Aa ä --> ae Ä --> Aae é --> ee É --> Ee Például: í --> ii Í --> Ii Vezetéknév.Keresztnév --> Vezeteekneev.Keresztneev ó --> oo Ó --> Oo Bőrönd.Ödön --> Booeroend.Oedoen ö --> oe Ö --> Oe ő --> ooe Ő --> Ooe Ha a mayor felhasználónév nem tartalmaz ékezetes betűt, ú --> uu Ú --> Uu akkor nem történik csere, a felhasználónév marad az eredeti. ü --> ue Ü --> Ue ű --> uue Ű --> Uue Ezeket a karakter cseréket maga a script végzi, futás közben, a mayor felhasználónevekből, a létrejövő Nextcloud felhasználónév már a lecserélt változat lesz. A mayor-nextcloud script működése néhány mondatban: Első lépésben lekérdezi a feltételeknek megfelelő tanköröket a mayorból, (tankör-osztály évfolyama, tankör aktív-e a dátumok apaján) majd ez alapján ellenőrzi, hogy a Nextcloud-ban már szerepelnek-e ezen tankörneveknek megfelelő csoportok. Ha új tankör van a mayorban, akkor azt a Nextcloud-ban is létrehozza, ha egy tankört töröltek a mayorból, akkor azt a csoportot Nextcloud-ból is törli. Fontos! A csoport prefix-szel, például: "(tk) "-val kezdődő csoportokat magáénak tekinti, és ha nem találja a mayorban, akkor automatikusan töröli! Második lépésben lekérdezi a felhasználókat a mayorból, (jogviszony státusz, évfolyam, kapcsolódó tankörök) csak azokat a tanárokat, illetve diákokat veszi figyelembe, akinek a státusza nem "jogviszonya lezárva", vagy nem "felvételt nyert". Ha az illető még nem rendelkezik felhasználónévvel a Nextcloud-ban, akkor létrehozza, - ha a mayorban, az "intezmeny_xxx.diak", illetve az "intezmeny_xxx.tanar" táblákon van beállított e-mail címe, akkor azt használja, - ha nincs, akkor az alapértelmezettet állítja be a Nextcloud-ba, valamint ekkor állítódik be az alapértelmezett qvóta, és a felhasználó valódi neve is. (Ezeket később Rendszergazdai, és Felhasználói oldalról változtatni lehet, értelemszerűen.) Ha az illető már rendelkezik felhasználónévvel, de az le volt tiltva, akkor újra engedélyezi. Ezután egyezteti a tankör-csoport összerendeléseket, ha az illető új tankörbe került be, akkor belépteti a megfelelő csportba, ha kikerült egy tankörből, akkor a csoportból is kilépteti. Végül ellenőrzi a kiléptetndő felhasználókat. Ha velekinek a státusza a mayorban "jogviszonya lezárva"-ra változott, vagy a felhasználónevét a mayorból törölték, akkor - ha még nem lépett be soha a Nextcloudba, akkor a felhasználót fizikailag törli. - ha már használta a fiókját, akkor csak letiltja, azért, hogy a fájljai ne vesszenek el automatikusan. (Ez, utóbbi esetben a Rendszergazdának kell külön elvégezni a törlést.) ** Szeparációs lehetőségek: Biztonsági megfontolásokból nem javasolt a Nextcloud-ot és a mayort ugyanazon Apache szerver és ugyanazon "DocumentRoot" alól futtatni. Szétválasztásukra többféle lehetőség van: - külön fizikai szerver mindegyiknek - külön virtuális szerver mindegyiknek - külön "DOCKER konténer" mindegyiknek - külön felhasználónévvel futtatott php Természetesen a legerősebb szeparációt az 1. megoldás jelenti, de ugyanakkor előjöhetnek ennek hátrányai is, például, hogy dupla akkora adminisztrációs teher a rendszergazdának. Ugyanakkor foglalkoznunk kell azzal a kérdéssel is, hogy ha az iskola vásárol egy komolyabb szervergépet, (ma már) több-tíz gigabájt RAM-mal, ekkor felesleges pazarlás fizikailag is külön szervergépre telepíteni a kettőt, különösen, ha figyelembe vesszük a mayor (ma már kicsinek számító) memória igényét is. Ekkor jöhet képbe a 2. és 3. lehetőség, amely már ugyanazon fizikai gépre is telepíthető egyszerre, ez már ésszerű elosztást biztosít. Ám, ha tovább gondoljuk, akkor szóba jöhet az a kérdés is, hogy ekkora fizikai memória (RAM) esetén miért futtassunk több, különálló mysql-szervert, ahelyett, hogy egy, központi mysql-serverünk lenne, aminek kiosztunk néhányszor-tíz gigabájt ramot? (Különösen annak fényében, hogy egy ilyen "felturbózott" mysql sokszorosára növeli a mayor-napló sebességét.) Erre a megoldásra születtek a "php külön felhasználónévvel futtatva" típusú lehetőségek. Ezek közül is a legésszerűbb, és legbiztonságosabb az Apache2 mod_suexec és mod_fcgid segítségével futtatott php. (Ekkor egy, közös Mysql és Apache2 szerver van, ahol az egyes weboldalak (apache virtualhost-ok) mind, külön "rendszer felhasználónévvel" futnak, külön "DocumentRoot" könyvtárból, (és külön a www-data felhasználótól) ahol a felhasználónév váltást a mod_suexec modul végzi, a php futtatását pedig a mod_fcgid. ) (Természetesen vannak még más megoldások is, mint pl. a php_fpm, de azokat nem javaslom. ) */ ?>