True,
'nonavbar' => True,
'currentapp' => 'home',
'noapi' => True
);
include('../header.inc.php');
include('./inc/functions.inc.php');
// Authorize the user to use setup app and load the database
if (!$phpgw_setup->auth('Config'))
{
Header('Location: index.php');
exit;
}
// Does not return unless user is authorized
class phpgw
{
var $common;
var $accounts;
var $applications;
var $db;
}
$phpgw = new phpgw;
$phpgw->common = CreateObject('phpgwapi.common');
$common = $phpgw->common;
$phpgw_setup->loaddb();
$phpgw->db = $phpgw_setup->db;
$tpl_root = $phpgw_setup->setup_tpl_dir('setup');
$setup_tpl = CreateObject('phpgwapi.Template',$tpl_root);
$setup_tpl->set_file(array(
'ldap' => 'ldap.tpl',
'T_head' => 'head.tpl',
'T_footer' => 'footer.tpl',
'T_alert_msg' => 'msg_alert_msg.tpl'
));
$phpgw_info['server']['account_repository'] = 'ldap';
$phpgw->accounts = CreateObject('phpgwapi.accounts');
$acct = $phpgw->accounts;
$phpgw_setup->db->query("select config_name,config_value from phpgw_config where config_name like 'ldap%'",__LINE__,__FILE__);
while ($phpgw_setup->db->next_record())
{
$config[$phpgw_setup->db->f('config_name')] = $phpgw_setup->db->f('config_value');
}
$phpgw_info['server']['ldap_host'] = $config['ldap_host'];
$phpgw_info['server']['ldap_context'] = $config['ldap_context'];
$phpgw_info['server']['ldap_group_context'] = $config['ldap_group_context'];
$phpgw_info['server']['ldap_root_dn'] = $config['ldap_root_dn'];
$phpgw_info['server']['ldap_root_pw'] = $config['ldap_root_pw'];
$phpgw_info["server"]['ldap_account_home'] = $config['ldap_account_home'];
$phpgw_info["server"]['ldap_account_shell'] = $config['ldap_account_shell'];
$phpgw_info['server']['ldap_extra_attributes'] = $config['ldap_extra_attributes'];
// 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 = $common->ldapConnect())
{
$noldapconnection = True;
}
if ($noldapconnection)
{
Header('Location: config.php?error=badldapconnection');
exit;
}
$sql = "SELECT * FROM phpgw_accounts WHERE account_type='u'";
$phpgw_setup->db->query($sql,__LINE__,__FILE__);
while($phpgw_setup->db->next_record())
{
$i = $phpgw_setup->db->f('account_id');
$account_info[$i]['account_id'] = $phpgw_setup->db->f('account_id');
$account_info[$i]['account_lid'] = $phpgw_setup->db->f('account_lid');
$account_info[$i]['account_firstname'] = $phpgw_setup->db->f('account_firstname');
$account_info[$i]['account_lastname'] = $phpgw_setup->db->f('account_lastname');
$account_info[$i]['account_status'] = $phpgw_setup->db->f('account_status');
$account_info[$i]['account_expires'] = $phpgw_setup->db->f('account_expires');
}
while (list($key,$data) = @each($account_info))
{
$tmp = $data['account_id'];
$newaccount[$tmp] = $data;
}
$account_info = $newaccount;
$sql = "SELECT * FROM phpgw_accounts WHERE account_type='g'";
$phpgw_setup->db->query($sql,__LINE__,__FILE__);
while($phpgw_setup->db->next_record())
{
$i = $phpgw_setup->db->f('account_id');
$group_info[$i]['account_id'] = $phpgw_setup->db->f('account_id');
$group_info[$i]['account_lid'] = $phpgw_setup->db->f('account_lid');
$group_info[$i]['account_firstname'] = $phpgw_setup->db->f('account_firstname');
$group_info[$i]['account_lastname'] = $phpgw_setup->db->f('account_lastname');
$group_info[$i]['account_status'] = $phpgw_setup->db->f('account_status');
$group_info[$i]['account_expires'] = $phpgw_setup->db->f('account_expires');
}
while (list($key,$data) = @each($group_info))
{
$tmp = $data['account_id'][0];
$newgroup[$tmp] = $data;
}
$group_info = $newgroup;
if ($cancel)
{
Header("Location: ldap.php");
exit;
}
if ($submit)
{
if ($ldapgroups)
{
while (list($key,$groupid) = each($ldapgroups))
{
$id_exist = 0;
$thisacctid = $group_info[$groupid]['account_id'];
$thisacctlid = $group_info[$groupid]['account_lid'];
$thisfirstname = $group_info[$groupid]['account_firstname'];
$thislastname = $group_info[$groupid]['account_lastname'];
$thismembers = $group_info[$groupid]['members'];
// Do some checks before we try to import the data to LDAP.
if (!empty($thisacctid) && !empty($thisacctlid))
{
$groups = CreateObject('phpgwapi.accounts',intval($thisacctid));
$groups->db = $phpgw_setup->db;
// Check if the account is already there.
// If so, we won't try to create it again.
$acct_exist = $acct->name2id($thisacctlid);
if ($acct_exist)
{
$thisacctid = $acct_exist;
}
$id_exist = $groups->exists(intval($thisacctid));
echo '
accountid: ' . $thisacctid;
echo '
accountlid: ' . $thisacctlid;
echo '
exists: ' . $id_exist;
/* If not, create it now. */
if(!$id_exist)
{
$thisaccount_info = array(
'account_type' => 'g',
'account_id' => $thisacctid,
'account_lid' => $thisacctlid,
'account_passwd' => 'x',
'account_firstname' => $thisfirstname,
'account_lastname' => $thislastname,
'account_status' => 'A',
'account_expires' => -1
);
$groups->create($thisaccount_info);
}
}
}
}
if ($users)
{
while (list($key,$accountid) = each($users))
{
$id_exist = 0; $acct_exist = 0;
$thisacctid = $account_info[$accountid]['account_id'];
$thisacctlid = $account_info[$accountid]['account_lid'];
$thisfirstname = $account_info[$accountid]['account_firstname'];
$thislastname = $account_info[$accountid]['account_lastname'];
// Do some checks before we try to import the data.
if (!empty($thisacctid) && !empty($thisacctlid))
{
$accounts = CreateObject('phpgwapi.accounts',intval($thisacctid));
$accounts->db = $phpgw_setup->db;
// Check if the account is already there.
// If so, we won't try to create it again.
$acct_exist = $acct->name2id($thisacctlid);
if ($acct_exist)
{
$thisacctid = $acct_exist;
}
$id_exist = $accounts->exists(intval($thisacctid));
// If not, create it now.
if(!$id_exist)
{
echo '
Adding' . $thisacctid;
$thisaccount_info = array(
'account_type' => 'u',
'account_id' => $thisacctid,
'account_lid' => $thisacctlid,
'account_passwd' => 'x',
'account_firstname' => $thisfirstname,
'account_lastname' => $thislastname,
'account_status' => 'A',
'account_expires' => -1,
'homedirectory' => $config['ldap_account_home'] . '/' . $thisacctlid,
'loginshell' => $config['ldap_account_shell']
);
$accounts->create($thisaccount_info);
}
}
}
}
$setup_complete = True;
}
$phpgw_setup->show_header('LDAP Export','','ldapexport',$ConfigDomain);
if ($error)
{
//echo '