diff options
Diffstat (limited to 'egyéb/nextcloud/mayor-nextcloud.php')
-rw-r--r-- | egyéb/nextcloud/mayor-nextcloud.php | 273 |
1 files changed, 232 insertions, 41 deletions
diff --git a/egyéb/nextcloud/mayor-nextcloud.php b/egyéb/nextcloud/mayor-nextcloud.php index 7daabd95..4ee23a17 100644 --- a/egyéb/nextcloud/mayor-nextcloud.php +++ b/egyéb/nextcloud/mayor-nextcloud.php @@ -22,13 +22,15 @@ $m2n['csoport_prefix'] = "(tk) "; $m2n['default_email'] = "indulo@iskola.hu"; $m2n['default_passw'] = "EHYmGktzrdfS7wxJR6DFqxjJ"; $m2n['default_quota'] = "10GB"; -$m2n['diak_quota'] = "2GB"; +$m2n['diak_quota'] = "2GB"; $m2n['min_osztalyok'] = array(); //pl: array('9.a','11.a'); $m2n['csoportnev_hossz'] = 40; $m2n['felhasznalo_hossz'] = 45; $m2n['megfigyelo_user'] = "naplo_robot"; //ha nem kell, akkor állítsd üres stringre. $m2n['kihagy'] = array(); //pl: array('Trap.Pista', 'Ebeed.Elek', '22att') $m2n['default_lang'] = "hu"; +$m2n['manage_groupdirs'] = false; +$m2n['groupdir_prefix'] = "tavsuli"; $m2n['mindenki_csop'] = "naplós_felhasználók"; $m2n['mindenki_tanar'] = "naplós_tanárok"; $m2n['mindenki_diak'] = "naplós_diákok"; @@ -37,7 +39,8 @@ $m2n['verbose'] = 3 ; $occ_path = "/var/www/nextcloud/"; $occ_user = "www-data"; - +$ALWAYS_SET_DIAK_QUOTA = false; +$groupdir_user = "naploadmin"; $cfgfile = realpath(pathinfo($argv[0])['dirname'])."/"."mayor-nextcloud.cfg.php"; // A fenti konfig behívható config fájlból is, így a nextcloud-betöltő (ez a php) szerkesztés nélkül frissíthető. if( file_exists($cfgfile)===TRUE ){ include($cfgfile); } @@ -50,9 +53,12 @@ $replace = array( 'aa', 'ae', 'ee', 'ii', 'oo', 'oe', 'ooe', 'uu', 'ue', 'uue', $log['verbose'] = $m2n['verbose']; for($i = 1; $i<$argc; $i++){ - if(@$argv[$i] == "--loglevel" and is_numeric($argv[$i+1])){$log['verbose'] = $argv[$i+1]; $i++;} - if(@$argv[$i] == "--set-diak-quota" and is_numeric($argv[$i+1])){ $i++;} + if($argv[$i] == "--loglevel" and is_numeric($argv[$i+1])){$log['verbose'] = intval($argv[$i+1]); $i++;} + if($argv[$i] == "--set-diak-quota" ){ $ALWAYS_SET_DIAK_QUOTA = true; } + if($argv[$i] == "--create-groupdir"){ $groupdir_user = $argv[$i+1]; $i++;} } +if( $ALWAYS_SET_DIAK_QUOTA === true && $log['verbose'] < 4 ){ $log['verbose'] = 4; } + if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Improved) és php7 kell! @@ -273,18 +279,21 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im function user_set($userAccount, array $params){ //beállítja az e-mailt, quota-t, nyelvet a kapott értékekre global $occ_path,$occ_user,$log; - if(isset($params['quota'])) + if(isset($params['quota'])){ $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" user:setting $userAccount files quota \"".$params['quota']."\"'"; if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } shell_exec( $e ); - if(isset($params['email'])) + } + if(isset($params['email'])){ $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" user:setting $userAccount settings email \"".$params['email']."\"'"; if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } shell_exec( $e ); - if(isset($params['lang'])) + } + if(isset($params['lang'])){ $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" user:setting $userAccount core lang \"".$params['lang']."\"'"; if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } shell_exec($e); + } } function group_add($groupName){ //Új csoport létrehozása a Nextcloud-ban @@ -302,7 +311,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im shell_exec($e); } } - } + } function group_del($groupName){ // Csoport törlése a Nextcloud-ból global $occ_user,$occ_path,$db,$link,$log,$m2n; @@ -342,6 +351,144 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im shell_exec($e); } + + function create_dir($user, $path){ // Készít egy mappát a: data/$user/files/$path alá + global $occ_user, $occ_path,$log; + $ret = false; + if(!file_exists($occ_path."/data/".$user."/files/".$path)){ // Ha Még mindig nen könyvtár + $ret = mkdir($occ_path."/data/".$user."/files/".$path, 0755, true); // Akkor létrehozza + chown($occ_path."/data/".$user."/files/".$path, $occ_user); + chgrp($occ_path."/data/".$user."/files/".$path, $occ_user); + if($log['verbose'] > 5) { echo "php ->\tDIR: \"".$occ_path."/data/".$user."/files/".$path."\" \t created.\n"; } + } + return $ret; + } + + + function write_tofile($user, $path, $msg ){ // Fájlba írja a $msg tartalmát + global $occ_user, $occ_path,$log; + $ret = 0; + if(is_dir(pathinfo($occ_path."/data/".$user."/files/".$path)['dirname'] )){ + $h = fopen($occ_path."/data/".$user."/files/".$path, 'w+'); + $ret = fwrite($h, $msg ); + fclose($h); + chown($occ_path."/data/".$user."/files/".$path, $occ_user); + chgrp($occ_path."/data/".$user."/files/".$path, $occ_user); + if($log['verbose'] > 5) { echo "php ->\tFILE: \"".$occ_path."/data/".$user."/files/".$path."\" \t created.\n"; } + } else { + if($log['verbose'] > 5) { echo "php ->\tERROR: \"".pathinfo($occ_path."/data/".$user."/files/".$path)['dirname']."\" \t dir not found.\n"; } + } + return $ret; + } + + function files_scan($user, $path ){ // Nextcloud files:scan + global $occ_user, $occ_path,$log; + $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" files:scan --path=\"".$user."/files/".$path."\" '"; + if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } + shell_exec($e); + } + + function user_notify($user, $msg, $title ){ // Nextcloud files:scan + global $occ_user, $occ_path, $log; + $e = "su -s /bin/sh $occ_user -c 'php \"".$occ_path."/occ\" notification:generate -l \"".$msg."\" -- ".$user." \"".$title."\" '"; + if($log['verbose'] > 5) { echo "bash ->\t".$e."\n"; } + shell_exec($e); + } + + function scan_dir($user, $path ){ // Nextcloud files:scan + global $occ_user, $occ_path,$log; + $ret = array(); + if(is_dir($occ_path."/data/".$user."/files/".$path)){ + $ret = scandir($occ_path."/data/".$user."/files/".$path); + if($ret[0] == "." && $ret[1] == ".."){ + unset($ret[0]); + unset($ret[1]); + } + } + return $ret; + } + + function clean_dir($user, $path, $tankorei){ + global $occ_user, $occ_path, $log, $m2n; + $listdir = scan_dir($user, $path); + $ret[0] = array(); + $ret[1] = array(); + $ret[2] = array(); + foreach($listdir as $key => $val) { + if((!in_array($val, $tankorei) || !is_dir($occ_path."/data/".$user."/files/".$path."/".$val)) && $val != "INFO.txt"){ //Nincs a tanköreiben, akkor törölni kell (de csak ha üres) + + if(is_dir($occ_path."/data/".$user."/files/".$path."/".$val) && empty(scan_dir($user, $path."/".$val))){ // Ha mappa, és üres -> törlés + rmdir($occ_path."/data/".$user."/files/".$path."/".$val); + $ret[0][] = $val; + if($log['verbose'] > 5) { echo "php ->\tDIR: \"".$occ_path."/data/".$user."/files/".$path."/".$val."\" deleted.\n"; } + } else { //Nem mappa, vagy nem üres + //if( @unlink($occ_path."/data/".$user."/files/".$path."/".$val.time().".please-remove") === true && $log['verbose'] > 0 ){ // Már "xxxx.please-remove" is volt... + // echo "php ->\tFILE: \"".$occ_path."/data/".$user."/files/".$path."/".$val.time()."\" deleted!!!\n"; + // user_notify($user,"Fájl: ".$path."/".$val.".please-remove Illegális helyen, volt. Automata által törölve.", "Fájl: ".$path."/".$val.".please-remove törölve!"); + //} + if(file_exists( $occ_path."/data/".$user."/files/".$path."/".pathinfo(basename($occ_path."/data/".$user."/files/".$path."/".$val ,".please-remove"))['basename'])){ //Ha az eredeti könyvtár vagy fájl él + rename($occ_path."/data/".$user."/files/".$path."/".$val, $occ_path."/data/".$user."/files/".$path."/".basename($val, '.please-remove').".".time().".please-remove"); + $ret[1][] = basename($val, '.please-remove').".".time().".please-remove"; + user_notify($user,"Az ön >>".$path."/<< könyvtárában tiltott helyen lévő fájl, vagy olyan (tankör)mappa található, amely tankörnek ön továbbá már nem tagja. Kérem helyezze el kívül a >>".$path."/<< mappán, vagy törölje belőle! Később automatikusan törlésre kerül! A fájl átnevezve, új neve --> ".basename($val, '.please-remove').".".time().".please-remove", "Fájl/Mappa rossz helyen! --> ".$path."/".basename($val, '.please-remove').".".time().".please-remove" ); + if($log['verbose'] > 5) { echo "php ->\tF/D: \"".$occ_path."/data/".$user."/files/".$path."/".$val."\" \t renamed -> ".basename($val, '.please-remove').".".time().".please-remove"."\n"; } + } else { + // A Hanyagul otthagyottakért figyelmeztessen: + user_notify($user,"Az ön >>".$path."/<< könyvtárában tiltott helyen lévő fájl, vagy olyan (tankör)mappa található, amely tankörnek ön továbbá már nem tagja. Kérem helyezze el kívül a >>".$path."/<< mappán, vagy törölje belőle! Később automatikusan törlésre kerül! --> ".$val, "Fájl/Mappa rossz helyen! --> ".$path."/".$val ); + } + } + } else { + $ret[2][] = $val; + } + } + return $ret; + } + + + function groupdir_create_root($user, $oktId, $path){ //Tankörmappák gyökerét előállítja + global $groupdir_user, $m2n, $occ_path, $occ_user,$log; + $ret = array(false, false); + if(($groupdir_user === "" || ($groupdir_user !== "" && $user == $groupdir_user)) && $oktId > 0 && $m2n['manage_groupdirs'] === true){ //Ha null -> mindenki, Ha "user" -> scak neki, && tanár && groupdir bekapcsolava + + if(is_file($occ_path."/data/".$user."/files/".$path) || is_link($occ_path."/data/".$user."/files/".$path)){ //Ha már vam ott valami ilyen fájl + if(@unlink( $occ_path."/data/".$user."/files/".$path."backup") && $log['verbose'] > 0 ){ //Helyet csinál a backupnak (sorry) + rename($occ_path."/data/".$user."/files/".$path, $occ_path."/data/".$user."/files/".$path."backup"); //Átnevezi, hogy azért mégse vasszen oda + echo "php ->\tFILE: \"".$occ_path."/data/".$user."/files/".$path."\" \t \t deleted!!!\n"; + user_notify($user,"Fájl: $val \nIllegális helyen, és útban volt. \nAutomata által törölve.", "Fájl: $val törölve!"); + } + } + + $ret[0] = create_dir($user, $path); // Tankörmappa gyökér létrehozása + $ret[1] = write_tofile($user, $path."/"."INFO.txt", $m2n['infotxt_szöveg']); // Információs fájlt is + } + return $ret; + } + + function groupdir_create_groupdir($user, $oktId, $path){ + global $groupdir_user, $m2n; + if(($groupdir_user === "" || ($groupdir_user !== "" && $user == $groupdir_user)) && $oktId > 0 && $m2n['manage_groupdirs'] === true){ + return create_dir($user, $path); // Tankörmappa gyökér létrehozása + } + } + + function groupdir_finish($user, $oktId, $path, $tankorei){ + global $groupdir_user, $m2n; + $ret[0] = array(); + $ret[1] = array(); + $ret[2] = array(); + $ret[3] = array(); + if(($groupdir_user === "" || ($groupdir_user !== "" && $user == $groupdir_user)) && $oktId > 0 && $m2n['manage_groupdirs'] === true){ + if(isset($tankorei)) { + $ret = clean_dir($user, $path, $tankorei); + } + files_scan($user, $path); // Tankörmappa gyökér létrehozása + $ret[3] = true; + } + return $ret; + } + + + + function add_tk_to_users($list, $user, $tankorname){ //Naplón kívüli csoportokat adhatunk a felhasználókhoz $curr = ""; foreach($list as $key => $val){ // Csak rendezett tömbökön! @@ -372,9 +519,9 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im return $list; } - function add_param_to_user($list, $user, $paramname, $param){ //Naplón kívüli csoportokat adhatunk a felhasználókhoz - foreach($list as $key => $val){ // Csak rendezett tömbökön! - if($user === null or ($user !== null && $val['userAccount'] == $user )){ //Vagy mindenki vagy adott user + rendezett lista + function add_param_to_user($list, $user, $paramname, $param){ // Paramétert állít be a felhasználónak. + foreach($list as $key => $val){ // Csak rendezett tömbökön! (vagy mégsem?) + if($user === null or ($user !== null && $val['userAccount'] == $user )){ //Vagy mindenki vagy adott user $list[$key][$paramname] = $param; // A paraméter } @@ -386,7 +533,6 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im return strcmp($a['userAccount'], $b['userAccount']); } - function po($inp,$ll,$dir){ // Szép kimenetet gyárt while(grapheme_strlen($inp) < $ll){ if($dir == 0){ @@ -632,17 +778,20 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im if ($log['verbose'] > 0 ){ echo "\n***\tFelhasználók egyeztetése.\n";} $mayor_tanar = get_mayor_tanar($link2); //Rendezve jön - $mayor_tanar = add_tk_to_users( $mayor_tanar, null, $m2n['mindenki_tanar']); //tanár tankörök lekérdezése + minden tanár csoport + $mayor_tanar = add_tk_to_users( $mayor_tanar, null, $m2n['mindenki_tanar']); //csak rendezett tömbökön! + $mayor_tanar = add_param_to_user($mayor_tanar, null, 'quota', $m2n['default_quota']); + $mayor_tanar = add_param_to_user($mayor_tanar, null, 'diakId', -1 ); usort($mayor_tanar, "mayor_userlistcmp"); $mayor_diak = get_mayor_diak($link2); //mysql rendezi - $mayor_diak = add_tk_to_users( $mayor_diak, null, $m2n['mindenki_diak']); //diák tankörök lekérdezése + minden diák csoport - usort($mayor_diak, "mayor_userlistcmp"); + $mayor_diak = add_tk_to_users( $mayor_diak, null, $m2n['mindenki_diak']); //csak rendezett tömbökön! $mayor_diak = add_param_to_user($mayor_diak, null, 'quota', $m2n['diak_quota']); + $mayor_diak = add_param_to_user($mayor_diak, null, 'tanarId', -1 ); + usort($mayor_diak, "mayor_userlistcmp"); $mayor_user = array(); $mayor_user = array_merge($mayor_tanar, $mayor_diak); - $mayor_user = add_tk_to_users( $mayor_user, null, $m2n['mindenki_csop']); //mindenki csoport + $mayor_user = add_tk_to_users( $mayor_user, null, $m2n['mindenki_csop']); //csak rendezett tömbökön //mindenki csoport usort($mayor_user, "mayor_userlistcmp"); if(isset($m2n['megfigyelo_user']) && $m2n['megfigyelo_user'] != "" ){ //A megfigyelő felvétele a lista végére @@ -650,16 +799,18 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $mayor_user = array_merge($mayor_user, array( array( 'userAccount' => $m2n['megfigyelo_user'], 'email' => $m2n['default_email'], - 'tanarId' => 0, + 'tanarId' => 1, 'diakId' => 0, 'tankorId' => $val['tankorId'], 'fullName' => "Napló Admin", 'tankorNev' => $val['tankorNev'], ))); + //if($val['tankorNev'] == "(tk) 10.b kémia" ){ break; } + } } - // usort($mayor_user, "mayor_userlistcmp"); // előbb rendezzük - $mayor_user = array_merge($mayor_user, array(array('userAccount' => null, 'fullName' => null, 'tankorNev' => null,)) ); //strázsa a lista végére + // usort($mayor_user, "mayor_userlistcmp"); //ha a megfigyelo helyesen van egy rendezett lista végén, nem kell ismét rendezni + $mayor_user = array_merge($mayor_user, array(array('userAccount' => null, 'fullName' => null, 'tankorNev' => null, 'diakId' => 0, 'tanarId' => 0,)) ); //strázsa a lista végére $nxt_user = nxt_user_list(); $nxt_group = nxt_group_list(); $m2n_catalog = catalog_userlist($link); @@ -690,44 +841,85 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im catalog_userena($link, $curr); //Ha netán le lenne tiltva, akkor engedélyezi, user_ena($curr); // ha a script tiltotta le. } - } else { //Nincs a katalógusban, nincs tiltva, felvesszük + } else { //Nincs a katalógusban, nincs tiltva, felvesszük catalog_useradd($link, $curr); if ($log['verbose'] > 1 ){ echo "-\t\tA felhasználó:".po("\t$curr",$m2n['felhasznalo_hossz'],1)."-\tnyilvántartásba véve.\n";} } - - foreach($nxt_group as $key3 => $val3){ //A tankörök egyeztetése - if(in_array($key3, $tankorei) /*or $key3 == $m2n['mindenki_csop']*/){ //szerepel-e a felhasználó tankörei között a csoport, vagy a "mindenki" csoport? - if( in_array($curr, $val3)){ //Igen, és már benne is van +++ + //--------------------------------------- QUOTA -----------------------------------// + if($ALWAYS_SET_DIAK_QUOTA === true && $curr_tanarId < 0 && $curr_diakId > 0 ){ //Állítsunk-e erőből (diák) qvótát? + $params['quota'] = $m2n['diak_quota']; // Alapértelmezett diák kvóta + user_set($curr,$params); + if ($log['verbose'] > 3 ){ echo "* -\t\tBeállítva:\t"."Qvóta: ".$params['quota']."\t\n";} + } + //------------------------- Tankörmappa györkér + info.txt ------------------------// + $ret = groupdir_create_root($curr, $curr_tanarId, $m2n['groupdir_prefix']); + if ($ret[0] === true && $log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tLétrehozva :".po("\t./".$curr."/files/".$m2n['groupdir_prefix'],$m2n['csoportnev_hossz'],1)."\ttankörmappa gyökér.\n";} + if ($ret[1] > 0 && $log['verbose'] > 3 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tLétrehozva :".po("\t./".$curr."/files/". $m2n['groupdir_prefix']."/INFO.txt",$m2n['csoportnev_hossz'],1)."\tfájl.\n";} + + //------------------------------------------ Tankörök egyeztetése -------------------------------------------// + foreach($nxt_group as $key3 => $val3){ //A tankörök egyeztetése + if(in_array($key3, $tankorei) /*or $key3 == $m2n['mindenki_csop']*/){ //szerepel-e a felhasználó tankörei között a csoport, vagy a "mindenki" csoport? + if( in_array($curr, $val3)){ //Igen, és már benne is van +++ if ($log['verbose'] > 3 ){ echo " -\t\tBenne van a:".po("\t$key3",$m2n['csoportnev_hossz'],1)."\tcsoportban.\n";} - } else { //Nincs, most kell beletenni + } else { //Nincs, most kell beletenni if ($log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tHozzáadva a:".po("\t$key3",$m2n['csoportnev_hossz'],1)."\tcsoporthoz.\n";} - group_user_add($key3, $curr); //A "mindenki csoportot is ellenőrzi + group_user_add($key3, $curr); //A "mindenki csoportot is ellenőrzi + } + //------------------------------- Tankörmappa -----------------------------// //( "_" --> mindenkinek, "username" --> csak neki ) && tanár + if($key3 != $m2n['mindenki_tanar'] && $key3 != $m2n['mindenki_diak'] && $key3 != $m2n['mindenki_tanar']){ //Ezekre a csoportokra minek? + $ret = groupdir_create_groupdir($curr, $curr_tanarId, $m2n['groupdir_prefix']."/".$key3); + if ($ret === true && $log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\tÚj mappa Létrehozva:".po("\t/".$key3."/",$m2n['csoportnev_hossz'],1)."\t./".$curr."/files/".$m2n['groupdir_prefix']."/ mappába\n";} } - } else { //Nem szerepel a tankörei között - if(in_array($curr, $val3) and (substr($key3, 0, strlen($m2n['csoport_prefix'])) === $m2n['csoport_prefix']) ){ - // korábban benne volt egy tankörben, de már nincs, vagy a hozzátartozó tankörben már nem tanít => kiveszi + + //------------------------------------- Tankör (Csoportból) törlés -------------------------// + } else { //Nem szerepel a tankörei között + if(in_array($curr, $val3) and (substr($key3, 0, strlen($m2n['csoport_prefix'])) === $m2n['csoport_prefix']) ){ // korábban benne volt egy tankörben, de már nincs, vagy a hozzátartozó tankörben már nem tanít => kiveszi if ($log['verbose'] > 1 ){if($log['curr'] !== ""){echo "*".$log['curr'];$log['curr'] = "";} echo "* -\t\tTörölve a:".po("\t$key3",$m2n['csoportnev_hossz'],1)."\tcsoportból.\n";} - group_user_del($key3, $curr); //egy korábbi tankör lehetett... + group_user_del($key3, $curr); //egy korábbi tankör lehetett... } } - } + } + //------------------------------------- Tankörmappa törlés + NXT-rescan ----------------------------------// //( "_" --> mindenkinek, "username" --> csak neki ) && tanár + + $ret = groupdir_finish($curr, $curr_tanarId, $m2n['groupdir_prefix'], $tankorei); + if (count($ret[0]) > 0 && $log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} foreach($ret[0] as $retkey => $retval){ echo "* -\t Üres (Tankör)mappa:".po("\t/".$retval."/", $m2n['csoportnev_hossz'],1)."\t./".$curr."/files/".$m2n['groupdir_prefix']."/ mappából törölve.\n";}} + if (count($ret[1]) > 0 && $log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} foreach($ret[1] as $retkey => $retval){ echo "* -\tFájl/Mappa Átnevezve:".po("\t/".$retval."/", $m2n['csoportnev_hossz'],1)."\t./".$curr."/files/".$m2n['groupdir_prefix']."/ mappában.\n";}} + if (count($ret[2]) > 0 && $log['verbose'] > 3 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} foreach($ret[2] as $retkey => $retval){ echo "* -\t\tTankörmappa:".po("\t/".$retval."/", $m2n['csoportnev_hossz'],1)."\t./".$curr."/files/".$m2n['groupdir_prefix']."/ mappában békén hagyva.\n";}} + if ($ret[3] === true && $log['verbose'] > 3 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tNXT-rescan :".po("\t./".$curr."/files/".$m2n['groupdir_prefix']."/", $m2n['csoportnev_hossz'],1)."\t mappán.\n";} + break; } - } + } unset($nxt_user[$curr]); //Felhasználó Megvizsgálva, többször már nem kell dönteni róla. if($curr != $key2 and $curr != null){ //Nincs még ilyen felhasználó user_add($curr, $curr_n); //Akkor hozzá kell adni catalog_useradd($link, $curr); if ($log['verbose'] > 2 ){ echo "**-\tFelhasználó:".po("\t$curr_n ($curr)",$m2n['felhasznalo_hossz'],1)."--\tlétrehozva.\n";} - + + $ret = groupdir_create_root($curr, $curr_tanarId, $m2n['groupdir_prefix']); + if ($ret[0] === true && $log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tLétrehozva :".po("\t./".$curr."/files/".$m2n['groupdir_prefix'],$m2n['csoportnev_hossz'],1)."\ttankörmappa gyökér.\n";} + if ($ret[1] > 0 && $log['verbose'] > 3 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tLétrehozva :".po("\t./".$curr."/files/".$m2n['groupdir_prefix']."/INFO.txt",$m2n['csoportnev_hossz'],1)."\tfájl.\n";} + foreach($tankorei as $key3 => $val3){ //Hozzáadja a (tankör)csoportokhoz is egyből, if(array_key_exists($val3, $nxt_group)) { // de, csak akkor, ha az a csoport a Nextcloud-ban is létezik. - group_user_add($val3,$curr); + group_user_add($val3, $curr); if ($log['verbose'] > 2 ){ echo "* -\t\tHozzáadva a:".po("\t $val3",$m2n['csoportnev_hossz'],1)."\tcsoporthoz.\n"; } + if($key3 != $m2n['mindenki_tanar'] && $key3 != $m2n['mindenki_diak'] && $key3 != $m2n['mindenki_tanar']){ //Ezekre a csoportokra minek? + $ret = groupdir_create_groupdir($curr, $curr_tanarId, $m2n['groupdir_prefix']."/".$key3); + if ($ret === true && $log['verbose'] > 2 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\tÚj mappa Létrehozva:".po("\t/".$key3."/",$m2n['csoportnev_hossz'],1)."\t./".$curr."/files/".$m2n['groupdir_prefix']."/ mappa\n";} + } } - } - $params['quota'] = $m2n['default_quota']; // Alapértelmezett kvóta + } + $ret = groupdir_finish($curr, $curr_tanarId, $m2n['groupdir_prefix'], null); + if ($ret[3] === true && $log['verbose'] > 3 ){if($log['curr'] !== ""){echo "**".$log['curr'];$log['curr'] = "";} echo "* -\t\tNXT-rescan :".po("\t./".$curr."/files/".$m2n['groupdir_prefix']."/", $m2n['csoportnev_hossz'],1)."\t mappán.\n";} + + + if($curr_diakId > 0) { //Ennyi is elég // Diákról van szó /// if($curr_tanarId < 0 && $curr_diakId > 0) + $params['quota'] = $m2n['diak_quota']; // Alapértelmezett kvóta + } else { + $params['quota'] = $m2n['default_quota']; // Alapértelmezett kvóta + } $params['lang'] = $m2n['default_lang']; // Nyelv if($curr_e == ""){ $params['email'] = $m2n['default_email']; // e-mail beállítása @@ -742,13 +934,15 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $tankorei = array(); // új ciklus kezdődik $curr = $val['userAccount']; // $curr_n = $val['fullName']; // + $curr_tanarId = $val['tanarId']; + $curr_diakId = $val['diakId']; $curr_e = @$val['email']; // } $tankorei[] = $val['tankorNev']; // Másodszor/Egyébként a csoportok (tankörök) gyűjtése } -// A megszűnő felhasználónevek egyeztetése +// A (maradék) megszűnő felhasználónevek egyeztetése if ($log['verbose'] > 0 ){ echo "\n***\tTörlendő/Letiltandó felhasználók egyeztetése.\n";} $m2n_catalog = catalog_userlist($link); foreach($nxt_user as $key => $val){ //Benne van a nyilvántartásban, @@ -768,7 +962,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im // - akkor vagy új user, vagy már meglévő, // - ezért őt kihúzza az $nxt_user listáról, --> megtartja // ezután ha valaki még rajta van az $nxt_user listán, az - // - vagy más, mayor_naplón kívüli user (rendszergazda vette föl) --> nem nyúl hozzá + // - vagy más, mayor_naplón kívüli user (rendszergazda vette föl) --> nem törli, ha kellene // - vagy megszűnő, korábbi mayor_napló-s user --> törli (vagy letiltja) // ha rajta van a $catalog listán is, és nincs rajta $mayor_user listán // - akkor őt a script hozta létre régen --> megszűnő, törli (vagy letiltja) @@ -813,6 +1007,3 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im ?> - - - |