From b02809083cf59a0c64b4d0b66e6bd67ea0e56878 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Tue, 17 Mar 2020 17:04:50 +0100 Subject: Mayor-Nextcloud script: Megfigyelő felahszánáló & refactoring --- "egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" | 9 ++--- "egy\303\251b/nextcloud/mayor-nextcloud.php" | 48 ++++++++++++++++-------- 2 files changed, 36 insertions(+), 21 deletions(-) (limited to 'egyéb') diff --git "a/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" "b/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" index 41e75191..a2fbf50b 100644 --- "a/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" +++ "b/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" @@ -20,8 +20,7 @@ $db['nxt_prefix'] = "oc_"; //$db['mayor_pass'] = ""; $m2n['megfigyelo_user'] = "naplo_robot"; -$m2n['megfigyelo_hozzaadasa'] = True; -$m2n['beken_hagyottak'] = array(); //pl: array('Trap.Pista', 'Ebeed.Elek', '22att') +$m2n['beken_hagy'] = array(); //pl: array('Trap.Pista', 'Ebeed.Elek', '22att') $m2n['min_evfolyam'] = 1; $m2n['isk_rovidnev'] = "rovid"; @@ -84,9 +83,9 @@ Beállítása az alábbiak szerint: (egy lehetséges elrendezés) $db['port'] = "3306"; //nextcloud-mysql port $db['user'] = "root"; //nextcloud-mysql felhasználónév - // HA nem a root-ot használjuk, akkor, a használt felhasználónak írási-olvasási-törlési - // (insert,select,update,delete) joggal kell rendelkeznie a nextcloud adatbázis "..groups" tábláján, - // valamit saját kezűleg kell létrehozni a script saját, nyilvántartó adatbázisát, és a fenti jogokat beállítani rá. + // HA nem a root-ot használjuk, akkor, saját kezűleg kell létrehozni a script saját, nyilvántartó adatbázisát, és a fenti jogokat beállítani rá, + // valamint Ha a Nextcloud verziószáma kisebb 14-nél, akkor a használt felhasználónak írási-olvasási-törlési + // (insert,select,update,delete) joggal kell rendelkeznie a nextcloud adatbázis "..groups" tábláján. // Ha a Debian-on alapértelmezett root-ot használjuk, akkor mindez automatikusan történik. $db['pass'] = ""; //A nextcloud-mysql jelszó (A fenti felhasználónévhez tartozó) diff --git "a/egy\303\251b/nextcloud/mayor-nextcloud.php" "b/egy\303\251b/nextcloud/mayor-nextcloud.php" index 153c6e6b..b0c96903 100644 --- "a/egy\303\251b/nextcloud/mayor-nextcloud.php" +++ "b/egy\303\251b/nextcloud/mayor-nextcloud.php" @@ -17,8 +17,7 @@ $db['nxt_prefix'] = "oc_"; //$db['mayor_pass'] = ""; $m2n['megfigyelo_user'] = "naplo_robot"; -$m2n['megfigyelo_hozzaadasa'] = True; -$m2n['beken_hagyottak'] = array(); //pl: array('Trap.Pista', 'Ebeed.Elek', '22att') +$m2n['beken_hagy'] = array(); //pl: array('Trap.Pista', 'Ebeed.Elek', '22att') $m2n['min_evfolyam'] = 1; $m2n['isk_rovidnev'] = "rovid"; @@ -232,17 +231,18 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im function nxt_group_list() { // Csoportok listázása a Nextcloud-ból global $occ_path,$occ_user,$log; - $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" group:list --output=json'"; + $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" group:list --limit=1000000 --output=json'"; //* Jó nagy limittel dolgozzunk if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } return (array)json_decode(shell_exec($e),true); } function nxt_user_list() { // Felhasználók listázása a Nextcloud-ból global $occ_path,$occ_user,$log; - $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" user:report | grep \"total\" | sed -e \"s/[^0-9]//g\" | tr -d \"[:blank:]\n\" '"; - if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } - $num = shell_exec($e); - $num = $num + 100; // Biztos-ami-biztos, a nextcloud rejtett hibái miatt... + // $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" user:report | grep \"total\" | sed -e \"s/[^0-9]//g\" | tr -d \"[:blank:]\n\" '"; + // if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } + // $num = shell_exec($e); + $num = 1000000; //inkább kézi limit! + // $num = $num + 100; // Biztos-ami-biztos, a nextcloud rejtett hibái miatt... $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" user:list --limit $num --output=json'"; if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } return (array)json_decode(shell_exec($e),true); @@ -327,7 +327,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im shell_exec($e); } - function po($inp,$ll,$dir){ + function po($inp,$ll,$dir){ // Szép/olvasható kimenetet gyárt while(grapheme_strlen($inp) < $ll){ if($dir == 0){ $inp = " ".$inp." "; @@ -503,7 +503,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im } $link2 = $link; - group_add($m2n['mindenki_csop']); // A "mindenki" csoport hozzáadása + // group_add($m2n['mindenki_csop']); // A "mindenki" csoport hozzáadása if(isset($db['mayor_user']) and isset($db['mayor_pass']) and isset($db['mayor_host']) or isset($db['mayor_port'])) @@ -527,22 +527,23 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im // Létrehozza az új coportokat a Mayor tankörök szerint if ($log['verbose'] > 0 ){ echo "\n***\tCsoportok egyeztetése.\n";} $tankorok = get_mayor_tankor($link2); + $tankorok = array_merge($tankorok, array( array("tankorId" => 0, "tankorNev" => $m2n['mindenki_csop'] ))); $nxt_csop = nxt_group_list(); $elozo_tcsop = ""; - foreach($tankorok as $key => $val){ //Végignézi a tankörök szerint - foreach($nxt_csop as $key2 => $val2){ // - if($key2 == $val['tankorNev']){ //Már van ilyen (tankör)nevű csoport + foreach($tankorok as $key => $val){ //Végignézi a tankörök szerint + foreach($nxt_csop as $key2 => $val2){ // + if($key2 == $val['tankorNev']){ //Már van ilyen (tankör)nevű csoport if ($log['verbose'] > 3 ){ echo " -\t Csoport:".po("\t".$val['tankorNev'],$m2n['csoportnev_hossz'],1)."-\tok.\n";} $elozo_tcsop = $val['tankorNev']; break; } } - unset($nxt_csop[$val['tankorNev']]); //Megvizsgálva, többször már nem kell dönteni róla. - if( $val['tankorNev'] == $elozo_tcsop and $key2 != $val['tankorNev'] ){ //Duplikált tankör(név) a Mayorban + unset($nxt_csop[$val['tankorNev']]); //Megvizsgálva, többször már nem kell dönteni róla. + if( $val['tankorNev'] == $elozo_tcsop and $key2 != $val['tankorNev'] ){ //Duplikált tankör(név) a Mayorban if($log['verbose'] > 2 ){ echo "* -\t Dupla tankör:".po("\t".$val['tankorNev'], $m2n['csoportnev_hossz'],1)."-\tmayor.\n";} } - else if($key2 != $val['tankorNev']){ //Ha nincs ilyen (tankör)nevű csoport - group_add($val['tankorNev']); //Akkor létrehozza + else if($key2 != $val['tankorNev']){ //Ha nincs ilyen (tankör)nevű csoport + group_add($val['tankorNev']); //Akkor létrehozza if ($log['verbose'] > 2 ){ echo "* -\t Új csoport:".po("\t".$val['tankorNev'],$m2n['csoportnev_hossz'],1)."-\thozzáadva.\n";} } } @@ -561,7 +562,22 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im //------------------------------------------------------------------------------------------------------------------------------- // Felhasználónevek egyeztetése if ($log['verbose'] > 0 ){ echo "\n***\tFelhasználók egyeztetése.\n";} + $mayor_user = array_merge( get_mayor_tanar($link2), get_mayor_diak($link2) ); //tanár, diák + + if(isset($m2n['megfigyelo_user']) && $m2n['megfigyelo_user'] != "" ){ //A megfigyelő felvétele + foreach(get_mayor_tankor($link2) as $key => $val){ + $mayor_user = array_merge($mayor_user, array( + array( 'userAccount' => $m2n['megfigyelo_user'], + 'email' => $m2n['default_email'], + 'tanarId' => 0, + 'diakId' => 0, + 'tankorId' => $val['tankorId'], + 'fullName' => "MaYor Admin", + 'tankorNev' => $val['tankorNev'], + ))); + } + } $mayor_user = array_merge($mayor_user, array(array('userAccount' => null, 'fullName' => null, 'tankorNev' => null,)) ); //strázsa a lista végére $nxt_user = nxt_user_list(); $nxt_group = nxt_group_list(); -- cgit v1.2.3