*/ // Module search (All modules this domain can access). $dn = "ou=Modules, domain=$domain, ou=Domains, $basedn"; $filter = "(objectClass=moduleentry)"; $sr = ldap_search($ds,$dn,$filter); $modules = ldap_get_entries($ds, $sr); // Get all users in this domain $dn = "ou=People,domain=$domain,ou=Domains, $basedn"; $filter = "(objectClass=mailaccount)"; $sr = ldap_search($ds,$dn,$filter); $users = ldap_get_entries($ds, $sr); // Get nr. of modules that exists $dn = "ou=Modules, $basedn"; $filter = "(objectClass=moduleEntry)"; $sr = ldap_search($ds,$dn,$filter); $mainmodules = ldap_get_entries($ds, $sr); // If there are any changes in the modules/user config. // version 1.1.2 if ( isset ($update) && $update){ $filter = "(objectClass=moduleEntry)"; // Get all modules the user has from before. for($i=0;$i<$users["count"];$i++){ $dn = "ou=Modules,uid=" . $users[$i]["uid"][0] . ",ou=People,domain=" . $domain . ",ou=Domains," . $basedn; $sr = ldap_search($ds,$dn,$filter); $usermod[$i] = ldap_get_entries($ds, $sr); } // For all modules (all users) for ($ja=0; $ja < $modules["count"]; $ja++){ // Check if module is set to something else then 'unchanged' if ($allusers[$modules[$ja]["module"][0]] != "unchanged"){ // Set module value for all users for ($ia=0; $ia<$users["count"]; $ia++){ unset($tmpa); unset($modoka); // Checks if user has module for ($ka=0;$ka<$modules["count"]; $ka++) { if (($modules[$ja]["module"][0]) == ($usermod[$ia][$ka]["module"][0])) { $modoka=TRUE; $tmpa = $ka; } } if ($modoka) { if ($allusers[$modules[$ja]["module"][0]] == "off") { $dn="module=" . $modules[$ja]["module"][0] . ",ou=Modules, uid=" . $users[$ia]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; ldap_delete($ds, $dn); } else { // Module exist on userlevel. // Only change force. Don't change the users config. if (!(($allusers[$modules[$ja]["module"][0]]) == ($usermod[$ia][$tmpa]["force"][0]))) { unset($set); $dn="module=" . $modules[$ja]["module"][0] . ",ou=Modules, uid=" . $users[$ia]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; $set["force"]=$allusers[$modules[$ja]["module"][0]]; ldap_mod_replace($ds, $dn, $set); } } } else { if ($allusers[$modules[$ja]["module"][0]] == "off") { // $dn="module=" . $modules[$ja]["module"][0] . ",ou=Modules, uid=" . $users[$ia]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; // ldap_delete($ds, $dn); } else { // Add new module unset($set); $dn="module=" . $modules[$ja]["module"][0] . ",ou=Modules, uid=" . $users[$ia]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; $set["objectClass"]="moduleentry"; $set["module"]=$modules[$ja]["module"][0]; $set["force"]=$allusers[$modules[$ja]["module"][0]]; ldap_add($ds, $dn, $set); } } } } } // For each user for ($i=0; $i<$users["count"]; $i++){ // For each module from main modules for ($j=0; $j<$modules["count"]; $j++){ unset($tmp); unset($modok); for ($k=0;$k<$modules["count"]; $k++) { if (($modules[$j]["module"][0]) == ($usermod[$i][$k]["module"][0])){ $modok=TRUE; $tmp = $k; } } if ($modok){ if ($info[$users[$i]["uid"][0]][$modules[$j]["module"][0]]=="off") { $dn="module=" . $modules[$j]["module"][0] . ",ou=Modules, uid=" . $users[$i]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; ldap_delete($ds, $dn); } else { // Module exist on userlevel. // Only change force. Don't change the users config. if (!(($info[$users[$i]["uid"][0]][$modules[$j]["module"][0]]) == ($usermod[$i][$tmp]["force"][0]))) { unset($set); $dn="module=" . $modules[$j]["module"][0] . ",ou=Modules, uid=" . $users[$i]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; $set["force"]=$info[$users[$i]["uid"][0]][$modules[$j]["module"][0]]; ldap_mod_replace($ds, $dn, $set); } } } else { if ($info[$users[$i]["uid"][0]][$modules[$j]["module"][0]]=="off") { // $dn="module=" . $modules[$j]["module"][0] . ",ou=Modules, uid=" . $users[$i]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; // ldap_delete($ds, $dn); } else { // Add new module. unset($set); $dn="module=" . $modules[$j]["module"][0] . ",ou=Modules, uid=" . $users[$i]["uid"][0] . ", ou=People, domain=$domain, ou=Domains,$basedn"; $set["objectClass"]="moduleentry"; $set["module"]=$modules[$j]["module"][0]; $set["force"]=$info[$users[$i]["uid"][0]][$modules[$j]["module"][0]]; ldap_add($ds, $dn, $set); } } } } $status = "Modules updated."; } // Get all Modules the domain can access. $dn = "ou=Modules, domain=". $domain . ",ou=Domains, " . $basedn; $filter = "(objectClass=moduleentry)"; $sr = ldap_search($ds,$dn,$filter); $domainmodules = ldap_get_entries($ds, $sr); // Get all the modules all the users can access. $filter = "(objectClass=moduleEntry)"; for($i=0;$i<$users["count"];$i++){ $dn = "ou=Modules,uid=" . $users[$i]["uid"][0] . ",ou=People,domain=" . $domain . ",ou=Domains," . $basedn; $sr = ldap_search($ds,$dn,$filter); $usermod[$i] = ldap_get_entries($ds, $sr); } $tmpcolor = $ycolor; // HTML output... if ( $modules["count"] == 0){ $nadamodules=1; } else { $nadamodules = 0; } $num = $modules["count"] + $nadamodules + 1; ?>
\n"; } if ($tmpcolor == $ycolor) $tmpcolor = $ncolor; else $tmpcolor = $ycolor; if ($users["count"]==0){ ?> \n"; if ($tmpcolor == $ycolor) $tmpcolor = $ncolor; else $tmpcolor = $ycolor; } } ?>
Domain:
Does not have any modules
 
" bgcolor="">
Does not have any users.
All users (!)
" align="justify" valign="top">

Select which users can use which modules. There are four options:

'Force': Force user to use this module
'Useron': Let the user decide. Currently on.
'Useroff': Let the user decide. Currently off.
'Off': Deny the user to use this module.
" .$allmodules[$i]["module"][0] . ": "; echo $allmodules[$i]["description"][0] . "\n"; } } } ?>

"> Status: