reload(); } // reloads preferences from ../lam.conf function reload() { $conffile = "../lam.conf"; if (is_file($conffile) == True) { $file = fopen($conffile, "r"); while (!feof($file)) { $line = fgets($file, 1024); if (($line == "\n")||($line[0] == "#")) continue; // ignore comments // search keywords if (substr($line, 0, 5) == "ssl: ") { $this->SSL = chop(substr($line, 5, strlen($line)-5)); continue; } if (substr($line, 0, 6) == "host: ") { $this->Host = chop(substr($line, 6, strlen($line)-6)); continue; } if (substr($line, 0, 6) == "port: ") { $this->Port = chop(substr($line, 6, strlen($line)-6)); continue; } if (substr($line, 0, 8) == "passwd: ") { $this->Passwd = chop(substr($line, 8, strlen($line)-8)); continue; } if (substr($line, 0, 8) == "admins: ") { $adminstr = chop(substr($line, 8, strlen($line)-8)); $this->Adminstring = $adminstr; $this->Admins = explode(";", $adminstr); continue; } if (substr($line, 0, 12) == "usersuffix: ") { $this->Suff_users = chop(substr($line, 12, strlen($line)-12)); continue; } if (substr($line, 0, 13) == "groupsuffix: ") { $this->Suff_groups = chop(substr($line, 13, strlen($line)-13)); continue; } if (substr($line, 0, 12) == "hostsuffix: ") { $this->Suff_hosts = chop(substr($line, 12, strlen($line)-12)); continue; } if (substr($line, 0, 8) == "minUID: ") { $this->MinUID = chop(substr($line, 8, strlen($line)-8)); continue; } if (substr($line, 0, 8) == "maxUID: ") { $this->MaxUID = chop(substr($line, 8, strlen($line)-8)); continue; } if (substr($line, 0, 8) == "minGID: ") { $this->MinGID = chop(substr($line, 8, strlen($line)-8)); continue; } if (substr($line, 0, 8) == "maxGID: ") { $this->MaxGID = chop(substr($line, 8, strlen($line)-8)); continue; } if (substr($line, 0, 12) == "minMachine: ") { $this->MinMachine = chop(substr($line, 12, strlen($line)-12)); continue; } if (substr($line, 0, 12) == "maxMachine: ") { $this->MaxMachine = chop(substr($line, 12, strlen($line)-12)); continue; } if (substr($line, 0, 14) == "defaultShell: ") { $this->DefaultShell = chop(substr($line, 14, strlen($line)-14)); continue; } if (substr($line, 0, 11) == "shellList: ") { $this->ShellList = chop(substr($line, 11, strlen($line)-11)); continue; } if (substr($line, 0, 20) == "userlistAttributes: ") { $this->userlistAttributes = chop(substr($line, 20, strlen($line)-20)); continue; } if (substr($line, 0, 21) == "grouplistAttributes: ") { $this->grouplistAttributes = chop(substr($line, 21, strlen($line)-21)); continue; } if (substr($line, 0, 20) == "hostlistAttributes: ") { $this->hostlistAttributes = chop(substr($line, 20, strlen($line)-20)); continue; } } fclose($file); } else { echo _("Unable to load lam.conf!"); echo "
"; } } // saves preferences to ../lam.conf function save() { $conffile = "../lam.conf"; if (is_file($conffile) == True) { // booleans to check if value was already saved $save_ssl = $save_host = $save_port = $save_passwd = $save_admins = $save_suffusr = $save_suffgrp = $save_suffhst = $save_minUID = $save_maxUID = $save_minGID = $save_maxGID = $save_minMach = $save_maxMach = $save_defShell = $save_shellList = $save_usrlstatrr = $save_grplstatrr = $save_hstlstatrr = False; $file = fopen($conffile, "r"); $file_array = array(); while (!feof($file)) { array_push($file_array, fgets($file, 1024)); } fclose($file); for ($i = 0; $i < sizeof($file_array); $i++) { if (($file_array[$i] == "\n")||($file_array[$i][0] == "#")) continue; // ignore comments // search for keywords if (substr($file_array[$i], 0, 5) == "ssl: ") { $file_array[$i] = "ssl: " . $this->SSL . "\n"; $save_ssl = True; continue; } if (substr($file_array[$i], 0, 6) == "host: ") { $file_array[$i] = "host: " . $this->Host . "\n"; $save_host = True; continue; } if (substr($file_array[$i], 0, 6) == "port: ") { $file_array[$i] = "port: " . $this->Port . "\n"; $save_port = True; continue; } if (substr($file_array[$i], 0, 8) == "passwd: ") { $file_array[$i] = "passwd: " . $this->Passwd . "\n"; $save_passwd = True; continue; } if (substr($file_array[$i], 0, 8) == "admins: ") { $file_array[$i] = "admins: " . implode(";", $this->Admins) . "\n"; $save_admins = True; continue; } if (substr($file_array[$i], 0, 12) == "usersuffix: ") { $file_array[$i] = "usersuffix: " . $this->Suff_users . "\n"; $save_suffusr = True; continue; } if (substr($file_array[$i], 0, 13) == "groupsuffix: ") { $file_array[$i] = "groupsuffix: " . $this->Suff_groups . "\n"; $save_suffgrp = True; continue; } if (substr($file_array[$i], 0, 12) == "hostsuffix: ") { $file_array[$i] = "hostsuffix: " . $this->Suff_hosts . "\n"; $save_suffhst = True; continue; } if (substr($file_array[$i], 0, 8) == "minUID: ") { $file_array[$i] = "minUID: " . $this->MinUID . "\n"; $save_minUID = True; continue; } if (substr($file_array[$i], 0, 8) == "maxUID: ") { $file_array[$i] = "maxUID: " . $this->MaxUID . "\n"; $save_maxUID = True; continue; } if (substr($file_array[$i], 0, 8) == "minGID: ") { $file_array[$i] = "minGID: " . $this->MinGID . "\n"; $save_minGID = True; continue; } if (substr($file_array[$i], 0, 8) == "maxGID: ") { $file_array[$i] = "maxGID: " . $this->MaxGID . "\n"; $save_maxGID = True; continue; } if (substr($file_array[$i], 0, 12) == "minMachine: ") { $file_array[$i] = "minMachine: " . $this->MinMachine . "\n"; $save_minMach = True; continue; } if (substr($file_array[$i], 0, 12) == "maxMachine: ") { $file_array[$i] = "maxMachine: " . $this->MaxMachine . "\n"; $save_maxMach = True; continue; } if (substr($file_array[$i], 0, 14) == "defaultShell: ") { $file_array[$i] = "defaultShell: " . $this->DefaultShell . "\n"; $save_defShell = True; continue; } if (substr($file_array[$i], 0, 11) == "shellList: ") { $file_array[$i] = "shellList: " . $this->ShellList . "\n"; $save_shellList = True; continue; } if (substr($file_array[$i], 0, 20) == "userlistAttributes: ") { $file_array[$i] = "userlistAttributes: " . $this->userlistAttributes . "\n"; $save_usrlstattr = True; continue; } if (substr($file_array[$i], 0, 21) == "grouplistAttributes: ") { $file_array[$i] = "grouplistAttributes: " . $this->grouplistAttributes . "\n"; $save_grplstattr = True; continue; } if (substr($file_array[$i], 0, 20) == "hostlistAttributes: ") { $file_array[$i] = "hostlistAttributes: " . $this->hostlistAttributes . "\n"; $save_hstlstattr = True; continue; } } // check if we have to add new entries (e.g. if user upgraded LAM and has an old lam.conf) if (!$save_ssl == True) array_push($file_array, "\n\n# use SSL to connect, can be True or False\n" . "ssl: " . $this->SSL); if (!$save_host == True) array_push($file_array, "\n\n# hostname of LDAP server (e.g localhost)\n" . "host: " . $this->Host); if (!$save_port == True) array_push($file_array, "\n\n# portnumber of LDAP server (default 389)\n" . "port: " . $this->Port); if (!$save_passwd == True) array_push($file_array, "\n\n# password to change these preferences via webfrontend\n" . "passwd: " . $this->Passwd); if (!$save_admins == True) array_push($file_array, "\n\n# list of users who are allowed to use LDAP Account Manager\n" . "# names have to be seperated by semicolons\n" . "# e.g. admins: cn=admin,dc=yourdomain,dc=org;cn=root,dc=yourdomain,dc=org\n" . "admins: " . $this->Admins); if (!$save_suffusr == True) array_push($file_array, "\n\n# suffix of users\n" . "# e.g. ou=People,dc=yourdomain,dc=org\n" . "usersuffix: " . $this->Suff_users); if (!$save_suffgrp == True) array_push($file_array, "\n\n# suffix of groups\n" . "# e.g. ou=Groups,dc=yourdomain,dc=org\n" . "groupsuffix: " . $this->Suff_groups); if (!$save_suffhst == True) array_push($file_array, "\n\n# suffix of Samba hosts\n" . "# e.g. ou=machines,dc=yourdomain,dc=org\n" . "hostsuffix: " . $this->Suff_hosts); if (!$save_minUID == True) array_push($file_array, "\n\n# minimum UID number\n" . "minUID: " . $this->MinUID); if (!$save_maxUID == True) array_push($file_array, "\n\n# maximum UID number\n" . "maxUID: " . $this->MaxUID); if (!$save_minGID == True) array_push($file_array, "\n\n# minimum GID number\n" . "minGID: " . $this->MinGID); if (!$save_maxGID == True) array_push($file_array, "\n\n# maximum GID number\n" . "maxGID: " . $this->MaxGID); if (!$save_minMach == True) array_push($file_array, "\n\n# minimum UID number for Samba hosts\n" . "minMachine: " . $this->MinMachine); if (!$save_maxMach == True) array_push($file_array, "\n\n# maximum UID number for Samba hosts\n" . "maxMachine: " . $this->MaxMachine); if (!$save_defShell == True) array_push($file_array, "\n\n# default shell when creating new user\n" . "defaultShell: " . $this->DefaultShell); if (!$save_shellList == True) array_push($file_array, "\n\n# list of possible shells\n# values have to be seperated by semicolons\n" . "shellList: " . $this->ShellList); if (!$save_usrlstattr == True) array_push($file_array, "\n\n# list of attributes to show in user list\n# entries can either be predefined values (e.g. '#cn' or '#uid')" . "\n# or individual ones (e.g. 'uid:User ID' or 'host:Host Name')\n# values have to be seperated by semicolons\n" . "userlistAttributes: " . $this->userlistAttributes); if (!$save_grplstattr == True) array_push($file_array, "\n\n# list of attributes to show in group list\n# entries can either be predefined values (e.g. '#cn' or '#gidNumber')" . "\n# or individual ones (e.g. 'cn:Group Name')\n# values have to be seperated by semicolons\n" . "grouplistAttributes: " . $this->grouplistAttributes); if (!$save_hstlstattr == True) array_push($file_array, "\n\n# list of attributes to show in host list\n# entries can either be predefined values (e.g. '#cn' or '#uid')" . "\n# or individual ones (e.g. 'cn:Host Name')\n# values have to be seperated by semicolons\n" . "hostlistAttributes: " . $this->hostlistAttributes); $file = fopen($conffile, "w"); if ($file) { for ($i = 0; $i < sizeof($file_array); $i++) fputs($file, $file_array[$i]); fclose($file); } else { echo _("
Cannot open config file!"); exit; } } } // prints current preferences function printconf() { echo _("SSL: " ) . $this->SSL . "
"; echo _("Host: ") . $this->Host . "
"; echo _("Port: ") . $this->Port . "
"; echo _("Admins: ") . $this->Adminstring . "
"; echo _("UserSuffix: ") . $this->Suff_users . "
"; echo _("GroupSuffix: ") . $this->Suff_groups . "
"; echo _("HostSuffix: ") . $this->Suff_hosts . "
"; echo _("minUID: ") . $this->MinUID . "
"; echo _("maxUID: ") . $this->MaxUID . "
"; echo _("minGID: ") . $this->MinGID . "
"; echo _("maxGID: ") . $this->MaxGID . "
"; echo _("minMachine: ") . $this->MinMachine . "
"; echo _("maxMachine: ") . $this->MaxMachine . "
"; echo _("userlistAttributes: ") . $this->userlistAttributes . "
"; echo _("grouplistAttributes: ") . $this->grouplistAttributes . "
"; echo _("hostlistAttributes: ") . $this->hostlistAttributes . "
"; echo _("Default Shell: ") . $this->DefaultShell . "
"; echo _("Shell list: ") . $this->ShellList; } // functions to read/write preferences // returns a string that can be "True" or "False" function get_SSL() { return $this->SSL; } // accepts only strings that are either "True" or "False" function set_SSL($value) { if (($value == "True") || ($value == "False")) $this->SSL = $value; else echo _("Config->set_SSL failed!"); } // returns the hostname function get_Host() { return $this->Host; } // sets the hostname function set_Host($value) { if (is_string($value)) $this->Host = $value; else echo _("Config->set_Host failed!"); } // returns the port number as string function get_Port() { return $this->Port; } // sets the portnumber function set_Port($value) { if (is_numeric($value)) $this->Port = $value; else echo _("Config->set_Port failed!"); } // returns an array of string with all admin names function get_Admins() { return $this->Admins; } // needs an array of string containing all admin users function set_Admins($value) { if (is_array($value)) { // check if $value is array of strings $b = true; for($i = 0; $i < sizeof($value); $i++){ if (is_string($value[$i]) == false) { $b = false; break; } } if ($b) $this->Admins = $value; } else echo _("Config->set_Admins failed!"); } // returns all admin users seperated by semicolons function get_Adminstring() { return $this->Adminstring; } // needs a string that contains all admin users seperated by semicolons function set_Adminstring($value) { if (is_string($value)) { $this->Adminstring = $value; $this->Admins = explode(";", $value); } else echo _("Config->set_Adminstring failed!"); } // returns the password to access the preferences wizard function get_Passwd() { return $this->Passwd; } // sets the preferences wizard password function set_Passwd($value) { if (is_string($value)) $this->Passwd = $value; else echo _("Config->set_Passwd failed!"); } // returns the LDAP suffix where users are saved function get_UserSuffix() { return $this->Suff_users; } // sets the LDAP suffix where users are saved function set_UserSuffix($value) { if (is_string($value)) $this->Suff_users = $value; else echo _("Config->set_UserSuffix failed!"); } // returns the LDAP suffix where groups are saved function get_GroupSuffix() { return $this->Suff_groups; } // sets the LDAP suffix where groups are saved function set_GroupSuffix($value) { if (is_string($value)) $this->Suff_groups = $value; else echo _("Config->set_GroupSuffix failed!"); } // returns the LDAP suffix where hosts are saved function get_HostSuffix() { return $this->Suff_hosts; } // sets the LDAP suffix where hosts are saved function set_HostSuffix($value) { if (is_string($value)) $this->Suff_hosts = $value; else echo _("Config->set_HostSuffix failed!"); } // returns the minimum UID to use when creating new users function get_minUID() { return $this->MinUID; } // sets the minimum UID to use when creating new users function set_minUID($value) { if (is_numeric($value)) $this->MinUID = $value; else echo _("Config->set_minUID failed!"); } // returns the maximum UID to use when creating new users function get_maxUID() { return $this->MaxUID; } // sets the maximum UID to use when creating new users function set_maxUID($value) { if (is_numeric($value)) $this->MaxUID = $value; else echo _("Config->set_maxUID failed!"); } // returns the minimum GID to use when creating new groups function get_minGID() { return $this->MinGID; } // sets the minimum GID to use when creating new groups function set_minGID($value) { if (is_numeric($value)) $this->MinGID = $value; else echo _("Config->set_minGID failed!"); } // returns the maximum GID to use when creating new groups function get_maxGID() { return $this->MaxGID; } // sets the maximum GID to use when creating new groups function set_maxGID($value) { if (is_numeric($value)) $this->MaxGID = $value; else echo _("Config->set_maxGID failed!"); } // returns the minimum UID to use when creating new Samba hosts function get_minMachine() { return $this->MinMachine; } // sets the minimum UID to use when creating new Samba hosts function set_minMachine($value) { if (is_numeric($value)) $this->MinMachine = $value; else echo _("Config->set_minMachine failed!"); } // returns the maximum UID to use when creating new Samba hosts function get_maxMachine() { return $this->MaxMachine; } // sets the maximum UID to use when creating new Samba hosts function set_maxMachine($value) { if (is_numeric($value)) $this->MaxMachine = $value; else echo _("Config->set_maxMachine failed!"); } // returns the default shell to use when creating new users function get_defaultShell() { return $this->DefaultShell; } // sets the default shell to use when creating new users function set_defaultShell($value) { if (is_string($value)) $this->DefaultShell = $value; else echo _("Config->set_shellList failed!"); } // returns a list of possible shells when creating new users function get_shellList() { return $this->ShellList; } // sets the list of possible shells when creating new users function set_shellList($value) { if (is_string($value)) $this->ShellList = $value; else echo _("Config->set_shellList failed!"); } // returns the list of attributes to show in user list function get_userlistAttributes() { return $this->userlistAttributes; } // sets the list of attributes to show in user list function set_userlistAttributes($value) { if (is_string($value)) $this->userlistAttributes = $value; else echo _("Config->set_userlistAttributes failed!"); } // returns the list of attributes to show in group list function get_grouplistAttributes() { return $this->grouplistAttributes; } // sets the list of attributes to show in group list function set_grouplistAttributes($value) { if (is_string($value)) $this->grouplistAttributes = $value; else echo _("Config->set_grouplistAttributes failed!"); } // returns the list of attributes to show in host list function get_hostlistAttributes() { return $this->hostlistAttributes; } // sets the list of attributes to show in host list function set_hostlistAttributes($value) { if (is_string($value)) $this->hostlistAttributes = $value; else echo _("Config->set_hostlistAttributes failed!"); } } ?>