$i) { // remove whitespaces trim($shells[$i]); // remove lineend $shells[$i] = substr($shells[$i], 0, strpos($shells[$i], "\n")); // remove comments if ($shells[$i]{0}=='#') unset ($shells[$i]); else $i++; } // $shells is array with all valid shells return $shells; } /* This function will replace umlates with ascci-chars * fixme *** * In order to map all non-ascii characters this function should be changed */ function replace_umlaut($text) { $aTranslate = array("ä"=>"ae", "Ä"=>"Ae", "ö"=>"oe", "Ö"=>"Oe", "ü"=>"ue", "Ü"=>"Ue", "ß"=>"ss" ); return strtr($text, $aTranslate); } /* This function will return all values from $array without values of $values * $values, $array and $return are arrays */ function array_delete($values, $array) { // Loop for every entry and check if it should be removed if (is_array($array)) { $return = array(); foreach ($array as $array_value) if (!@in_array($array_value, $values)) $return[] = $array_value; return $return; } else return array(); } // This function will return a password with max. 8 characters function genpasswd() { // Allowed Characters to generate passwords // I'Ve removed characters like l and 1 because they are too similar $LCase = 'abcdefghjkmnpqrstuvwxyz'; $UCase = 'ABCDEFGHJKMNPQRSTUVWXYZ'; $Integer = '23456789'; // DEFINE CONSTANTS FOR ALGORTTHM define("LEN", '1'); $a = RndInt('letter'); $b = RndInt('letter'); $c = RndInt('letter'); $d = RndInt('letter'); $e = RndInt('number'); $f = RndInt('number'); $g = RndInt('letter'); $h = RndInt('letter'); // EXTRACT 8 CHARACTERS RANDOMLY FROM TH // E DEFINITION STRINGS $L1 = substr($LCase, $a, LEN); $L2 = substr($LCase, $b, LEN); $L3 = substr($LCase, $h, LEN); $U1 = substr($UCase, $c, LEN); $U2 = substr($UCase, $d, LEN); $U3 = substr($UCase, $g, LEN); $I1 = substr($Integer, $e, LEN); $I2 = substr($Integer, $f, LEN); // COMBINE THE CHARACTERS AND DISPLAY TH // E NEW PASSWORD $PW = $L1 . $U2 . $I1 . $L2 . $I2 . $U1 . $U3 . $L3; return $PW; } /* THIS FUNCTION GENERATES A RANDOM NUMBER THAT WILL BE USED TO * RANDOMLY SELECT CHARACTERS FROM THE STRINGS ABOVE */ function RndInt($Format){ switch ($Format){ case 'letter': $Rnd = rand(0,23); if ($Rnd > 23){ $Rnd = $Rnd - 1; } break; case 'number': $Rnd = rand(2,9); if ($Rnd > 8){ $Rnd = $Rnd - 1; } break; } return $Rnd; } // END RndInt() FUNCTION // This function will return the days from 1.1.1970 until now function getdays() { $days = time() / 86400; settype($days, 'integer'); return $days; } /* This function creates all attributes stored in attrFlags. It's the same * syntax used in smbpasswd * $values is an array of samba flags as defined in account object * Return value is a string */ function smbflag($input) { // Start character $flag = "["; // Add Options if ($input['W']) $flag .= "W"; else $flag .= "U"; if ($input['D']) $flag .= "D"; if ($input['X']) $flag .= "X"; if ($input['N']) $flag .= "N"; if ($input['S']) $flag .= "S"; if ($input['H']) $flag .= "H"; // Expand string to fixed length $flag = str_pad($flag, 12); // End character $flag = $flag. "]"; return $flag; } ?>