mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-27 09:09:04 +01:00
Added in the new LDAP section of setup for importing accounts
This commit is contained in:
parent
251b8f24c2
commit
406e39d1d3
176
setup/ldap.php
Normal file
176
setup/ldap.php
Normal file
@ -0,0 +1,176 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* phpGroupWare - Setup *
|
||||
* http://www.phpgroupware.org *
|
||||
* -------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
$phpgw_info["flags"] = array("noheader" => True, "nonavbar" => True,
|
||||
"currentapp" => "home", "noapi" => True);
|
||||
include("../header.inc.php");
|
||||
|
||||
$phpgw_info["server"]["api_dir"] = $phpgw_info["server"]["include_root"]."/phpgwapi";
|
||||
include($phpgw_info["server"]["api_dir"] . "/phpgw_common.inc.php");
|
||||
|
||||
$common = new common;
|
||||
|
||||
// Authorize the user to use setup app
|
||||
include("./inc/setup_auth.inc.php");
|
||||
// Does not return unless user is authorized
|
||||
|
||||
/* Database setup */
|
||||
include($phpgw_info["server"]["api_dir"] . "/phpgw_db_".$phpgw_info["server"]["db_type"].".inc.php");
|
||||
|
||||
$db = new db;
|
||||
$db->Host = $phpgw_info["server"]["db_host"];
|
||||
$db->Type = $phpgw_info["server"]["db_type"];
|
||||
$db->Database = $phpgw_info["server"]["db_name"];
|
||||
$db->User = $phpgw_info["server"]["db_user"];
|
||||
$db->Password = $phpgw_info["server"]["db_pass"];
|
||||
|
||||
$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.
|
||||
$ldap = @$common->ldapConnect($config["ldap_host"],$config["ldap_root_dn"],$config["ldap_root_pw"]);
|
||||
|
||||
if (! $ldap) {
|
||||
Header("Location: config.php?error=ldapconnect");
|
||||
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 = "<br>You must select at least 1 admin";
|
||||
}
|
||||
|
||||
if (! count($s_apps)) {
|
||||
$error .= "<br>You must select at least 1 application";
|
||||
}
|
||||
|
||||
if (! $error) {
|
||||
include($phpgw_info["server"]["api_dir"] . "/phpgw_accounts_ldap.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;
|
||||
}
|
||||
$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 "<br><center><b>Error:</b> $error</center>";
|
||||
}
|
||||
|
||||
if ($setup_complete) {
|
||||
$db->query("select config_value from config where config_name='webserver_url'",__LINE__,__FILE__);
|
||||
$db->next_record();
|
||||
echo '<br><center>Setup has been completed! Click <a href="' . $db->f("config_value")
|
||||
. '/login.php">here</a> to login</center>';
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<form action="ldap.php" method="POST">
|
||||
<table border="0" align="center" width="70%">
|
||||
<tr bgcolor="486591">
|
||||
<td colspan="2"> <font color="fefefe">LDAP import users</font></td>
|
||||
</tr>
|
||||
<tr bgcolor="e6e6e6">
|
||||
<td colspan="2"> This section will help you import users from your LDAP tree into phpGroupWare's account tables.<br> </td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="e6e6e6">
|
||||
<td align="left" valign="top">
|
||||
Select which user(s) will have the admin privileges
|
||||
</td>
|
||||
<td align="center">
|
||||
<select name="admins[]" multiple size="5">
|
||||
<?php
|
||||
while ($account = each($account_info)) {
|
||||
echo '<option value="' . $account[1]["account_id"] . '">'
|
||||
. $common->display_fullname($account[1]["account_lid"],$account[1]["account_firstname"],$account[1]["account_lastname"])
|
||||
. '</option>';
|
||||
echo "\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="e6e6e6">
|
||||
<td align="left" valign="top">
|
||||
Select the default applications your users will have access to.
|
||||
<br> Note: You will be able to customize this later.
|
||||
</td>
|
||||
<td>
|
||||
<select name="s_apps[]" multiple size="5">
|
||||
<?php
|
||||
while ($app = each($apps)) {
|
||||
echo '<option value="' . $app[0] . '" selected>' . $app[1] . '</option>';
|
||||
echo "\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="e6e6e6">
|
||||
<td colspan="2" align="center">
|
||||
<input type="submit" name="submit" value="import">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user