True, "nonavbar" => True,
"currentapp" => "home", "noapi" => True);
include("../header.inc.php");
// Authorize the user to use setup app and load the database
include("./inc/setup_auth.inc.php");
// Does not return unless user is authorized
include($phpgw_info["server"]["api_dir"] . "/phpgw_common.inc.php");
$common = new common;
$db->query("select config_name,config_value from config where config_name like 'ldap%'",__LINE__,__FILE__);
while ($db->next_record()) {
$config[$db->f("config_name")] = $db->f("config_value");
}
// First, see if we can connect to the LDAP server, if not send `em back to config.php with an
// error message.
// connect to ldap server
if (! $ldap = @ldap_connect($config["ldap_host"])) {
$noldapconnection = True;
}
// bind as admin, we not to able to do everything
if (! @ldap_bind($ldap,$config["ldap_root_dn"],$config["ldap_root_pw"])) {
$noldapconnection = True;
}
if ($noldapconnection) {
Header("Location: config.php?error=badldapconnection");
exit;
}
$sr = ldap_search($ldap,$config["ldap_context"],"(|(uid=*))",array("sn","givenname","uid","uidnumber"));
$info = ldap_get_entries($ldap, $sr);
for ($i=0; $i<$info["count"]; $i++) {
if (! $phpgw_info["server"]["global_denied_users"][$info[$i]["uid"][0]]) {
$account_info[$i]["account_id"] = $info[$i]["uidnumber"][0];
$account_info[$i]["account_lid"] = $info[$i]["uid"][0];
$account_info[$i]["account_lastname"] = $info[$i]["givenname"][0];
$account_info[$i]["account_firstname"] = $info[$i]["sn"][0];
}
}
$db->query("select app_name,app_title from applications where app_enabled != '0' and "
. "app_name != 'admin'",__LINE__,__FILE__);
while ($db->next_record()) {
$apps[$db->f("app_name")] = $db->f("app_title");
}
if ($submit) {
if (! count($admins)) {
$error = "
You must select at least 1 admin";
}
if (! count($s_apps)) {
$error .= "
You must select at least 1 application";
}
if (! $error) {
include($phpgw_info["server"]["api_dir"] . "/phpgw_accounts_ldap.inc.php");
include($phpgw_info["server"]["api_dir"] . "/phpgw_accounts_shared.inc.php");
$accounts = new accounts;
while ($app = each($s_apps)) {
$permissions_string = $accounts->add_app($app[1]);
}
$permissions_string = $accounts->add_app("",True);
$admin_permissions_string = $permissions_string . "admin:";
while ($admin = each($admins)) {
$s_admin[$admin[1]] = True;
}
while ($account = each($account_info)) {
if ($s_admin[$account[1]["account_id"]]) {
$np = $admin_permissions_string;
} else {
$np = $permissions_string;
}
// do some checks before we try to import the data
if (!empty($account[1]["account_id"]) && !empty($account[1]["account_lid"]))
$db->query("insert into accounts (account_id,account_lid,account_pwd,account_permissions,"
. "account_groups,account_status) values ('" . $account[1]["account_id"] . "','"
. $account[1]["account_lid"] . "','x','$np',',1:0,','A')",__LINE__,__FILE__);
}
$setup_complete = True;
}
}
// Add a check to see if there is no users in LDAP, if not create a default user.
setup_header();
if ($error) {
echo "