diff --git a/lam/lib/functions.js b/lam/lib/functions.js index 1d48c7b3..fd118d1d 100644 --- a/lam/lib/functions.js +++ b/lam/lib/functions.js @@ -49,6 +49,7 @@ function user_click(list, box) { } + // mouseOver function function group_over(list, box) { cbox = document.getElementsByName(box)[0]; @@ -75,6 +76,7 @@ function group_click(list, box) { } + // mouseOver function function host_over(list, box) { cbox = document.getElementsByName(box)[0]; @@ -99,3 +101,30 @@ function host_click(list, box) { list.setAttribute('class','hostlist-checked', 0); } } + + + +// mouseOver function +function domain_over(list, box) { + cbox = document.getElementsByName(box)[0]; + if (cbox.checked == false) list.setAttribute('class','domainlist-over', 0); +} + +// mouseOut function +function domain_out(list, box) { + cbox = document.getElementsByName(box)[0]; + if (cbox.checked == false) list.setAttribute('class','domainlist', 0); +} + +// onClick function +function domain_click(list, box) { + cbox = document.getElementsByName(box)[0]; + if (cbox.checked == true) { + cbox.checked = false; + list.setAttribute('class','domainlist-over', 0); + } + else { + cbox.checked = true; + list.setAttribute('class','domainlist-checked', 0); + } +} diff --git a/lam/style/500_layout.css b/lam/style/500_layout.css index 2eb7dbc9..d63c4698 100644 --- a/lam/style/500_layout.css +++ b/lam/style/500_layout.css @@ -243,6 +243,63 @@ tr.hostlist-checked { background-color:#f27c71; } +/** + * table style for domainlist.php + * + */ + +/* */ +table.domainnav { + background-color:#a8ddbf; + border-width:1px; + border-style:solid; + border-color:#1d993e; +} + +/* text in navigation bar */ +td.domainnav-text { + color:green; + font-family:Verdana,sans-serif; + font-size:12px; +} + +/* color for active page digit */ +td.domainnav-activepage { + color:red; +} + +/* table preferences */ +table.domainlist { + border-width:1px; + border-style:solid; + border-color:#1d993e; +} + +/* color of entry rows */ +tr.domainlist { + background-color:#c9ddd2; +} + +/* color of head row */ +tr.domainlist-head { + background-color:#a8ddbf; +} + +/* color of sorted column in head row */ +th.domainlist-sort { + background-color:#c9ddd2; +} + +/* color of rows on mouseOver */ +tr.domainlist-over { + background-color:#ffe265; +} + +/* color of checked rows */ +tr.domainlist-checked { + background-color:#f27c71; +} + /** * table style for delete.php * diff --git a/lam/templates/lists/listdomains.php b/lam/templates/lists/listdomains.php new file mode 100644 index 00000000..e3e5d653 --- /dev/null +++ b/lam/templates/lists/listdomains.php @@ -0,0 +1,253 @@ +"); + exit; + } + // delete domain(s) + if ($_POST['del_domain']){ + // search for checkboxes + $domains = array_keys($_POST, "on"); + $domainstr = implode(";", $domains); + echo(""); + } + exit; +} + +echo ("\n"); +echo ("\n"); +echo "listdomains\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +// get current page +$page = $_GET["page"]; +if (!$page) $page = 1; +// take maximum count of domain entries shown on one page out of session +if ($_SESSION["config"]->get_MaxListEntries() <= 0) + $max_pageentrys = 10; // default setting, if not yet set +else + $max_pageentrys = $_SESSION["config"]->get_MaxListEntries(); + + +// generate attribute and description tables +$attr_array; // list of LDAP attributes to show +$desc_array; // list of descriptions for the attributes +$attr_array[] = "sambaDomainName"; +$attr_array[] = "sambaSID"; +$desc_array[] = _("Domain Name"); +$desc_array[] = _("Domain SID"); + +// check search suffix +if ($_POST['dom_suffix']) $dom_suffix = $_POST['dom_suffix']; // new suffix selected via combobox +elseif ($_SESSION['dom_suffix']) $dom_suffix = $_SESSION['dom_suffix']; // old suffix from session +else $dom_suffix = $_SESSION["config"]->get_DomainSuffix(); // default suffix +session_register('dom_suffix'); + +if (! $_GET['norefresh']) { + // configure search filter + $filter = "(sambaDomainName=*)"; + $attrs = $attr_array; + $sr = @ldap_search($_SESSION["ldap"]->server(), + $dom_suffix, + $filter, $attrs); + if ($sr) { + $dom_info = ldap_get_entries($_SESSION["ldap"]->server, $sr); + ldap_free_result($sr); + if ($dom_info["count"] == 0) StatusMessage("WARN", "", _("No Samba Domains found!")); + // delete first array entry which is "count" + array_shift($dom_info); + // sort rows by sort column ($sort) + usort($dom_info, "cmp_array"); + } + else StatusMessage("ERROR", _("LDAP Search failed! Please check your preferences."), _("No Samba Domains found!")); +} +else { + if (sizeof($dom_info) == 0) StatusMessage("WARN", "", _("No Samba Domains found!")); + // sort rows by sort column ($sort) + if ($dom_info) usort($dom_info, "cmp_array"); +} + +echo ("
\n"); + +// draw navigation bar if domain accounts were found +if (sizeof($dom_info) > 0) { +draw_navigation_bar(sizeof($dom_info)); +echo ("
\n"); +} + +// print domain table header +echo "\n"; +echo ""; +// table header +for ($k = 0; $k < sizeof($desc_array); $k++) { + if (strtolower($attr_array[$k]) == $sort) { + echo ""; + } + else echo ""; +} +echo "\n"; + +// calculate which rows to show +$table_begin = ($page - 1) * $max_pageentrys; +if (($page * $max_pageentrys) > sizeof($dom_info)) $table_end = sizeof($dom_info); +else $table_end = ($page * $max_pageentrys); + +// print domain list +for ($i = $table_begin; $i < $table_end; $i++) { + echo("" . + " " . + " "); + for ($k = 0; $k < sizeof($attr_array); $k++) { + echo (""); + } + echo("\n"); +} +echo ("
" . $desc_array[$k] . "" . $desc_array[$k] . "
" . _("Edit") . ""); + // print all attribute entries seperated by "; " + if (sizeof($dom_info[$i][strtolower($attr_array[$k])]) > 0) { + // delete first array entry which is "count" + if ((! $_GET['norefresh']) && (is_array($dom_info[$i][strtolower($attr_array[$k])]))) array_shift($dom_info[$i][strtolower($attr_array[$k])]); + if (is_array($dom_info[$i][strtolower($attr_array[$k])])) echo implode("; ", $dom_info[$i][strtolower($attr_array[$k])]); + else echo $dom_info[$i][strtolower($attr_array[$k])]; + } + echo ("
"); + +echo ("
"); + +// draw navigation bar if domain accounts were found +if (sizeof($dom_info) > 0) { +draw_navigation_bar(sizeof($dom_info)); +echo ("
\n"); +} + +if (! $_GET['norefresh']) { + // generate list of possible suffixes +$dom_units = $_SESSION['ldap']->search_units($_SESSION["config"]->get_DomainSuffix()); +} + +echo ("

\n"); +echo ("\n"); +if (sizeof($dom_info) > 0) echo ("\n"); +// print combobox with possible sub-DNs +if (sizeof($dom_units) > 1) { +echo ("    " . _("Suffix") . ": "); +echo ("\n"); +echo (""); +} +echo ("

\n"); +echo ("
\n"); +echo "\n"; + +/** + * @brief draws a navigation bar to switch between pages + * + * + * @return void + */ +function draw_navigation_bar ($count) { + global $max_pageentrys; + global $page; + global $sort; + + echo ("\n"); + echo ("\n"); + echo (""); + + echo (""); + + echo ("
  "); + if ($page != 1) + echo ("<=\n"); + else + echo ("<="); + echo (" "); + + if ($page < ($count / $max_pageentrys)) + echo ("=>\n"); + else + echo ("=>"); + echo " " . $count . " " . _("Samba Domain(s) found"); + echo (""); + for ($i = 0; $i < ($count / $max_pageentrys); $i++) { + if ($i == $page - 1) + echo (" " . ($i + 1)); + else + echo (" " . ($i + 1) . "\n"); + } + echo ("
\n"); +} + +// compare function used for usort-method +// rows are sorted with the first attribute entry of the sort column +// if objects have attributes with multiple values the others are ignored +function cmp_array($a, $b) { + // sort specifies the sort column + global $sort; + global $attr_array; + // sort by first attribute with name $sort + if (!$sort) $sort = strtolower($attr_array[0]); + if ($a[$sort][0] == $b[$sort][0]) return 0; + else if ($a[$sort][0] == max($a[$sort][0], $b[$sort][0])) return 1; + else return -1; +} + +?> diff --git a/lam/templates/lists/listhosts.php b/lam/templates/lists/listhosts.php index e2136f3a..faa5294d 100644 --- a/lam/templates/lists/listhosts.php +++ b/lam/templates/lists/listhosts.php @@ -77,7 +77,7 @@ $hash_table = $_SESSION["ldap"]->attributeHostArray(); // get current page $page = $_GET["page"]; if (!$page) $page = 1; -// take maximum count of user entries shown on one page out of session +// take maximum count of host entries shown on one page out of session if ($_SESSION["config"]->get_MaxListEntries() <= 0) $max_pageentrys = 10; // default setting, if not yet set else diff --git a/lam/templates/main_header.php b/lam/templates/main_header.php index 93d20860..21d2df70 100644 --- a/lam/templates/main_header.php +++ b/lam/templates/main_header.php @@ -22,6 +22,13 @@ $Id$ */ +include_once ("../lib/config.inc"); + +// start session +session_save_path("../sess"); +@session_start(); + +setlanguage(); echo ("\n"); echo ("\n"); @@ -38,8 +45,12 @@ echo (" - - + get_samba3() == "yes") echo " @@ -51,12 +62,30 @@ echo (" - + + get_samba3() == "yes") echo "\n"; + else echo "\n"; + ?> + - - - + get_samba3() == "yes") { + echo '' . "\n"; + echo '' . "\n"; + echo '' . "\n"; + echo '' . "\n"; + echo '' . "\n"; + } + else { + echo '' . "\n"; + echo '' . "\n"; + echo '' . "\n"; + } + ?>
+ \n"; + else echo "\n"; + ?> LDAP Account Manager
 
  
' . _("User/Group Mapping") . '' . _("Domains") . '' . _("Users") . '' . _("Groups") . '' . _("Hosts") . '' . _("Users") . '' . _("Groups") . '' . _("Hosts") . '