forked from extern/egroupware
eabf6925b5
but reduced to those functions, which are needed to manage ldap entries, which rely only on standard schemas (core, qmail) which are not considered "experimental" and without the need to add a separate schema. This modul will be extended whenever possible and approved for more values. Main goal here is: Ability to easily use eGW Admin for account management with LDAP beackend and to comply with those schemas, the distros are delivering. The link for this module will be shown in addition to Lars' EmailAdmin if LDAP is used as account storage. So it will not break existing installation ;-)
193 lines
6.9 KiB
PHP
193 lines
6.9 KiB
PHP
<?php
|
|
/***************************************************************************\
|
|
* EGroupWare - LDAPManager *
|
|
* http://www.egroupware.org *
|
|
* Written by : Andreas Krause (ak703@users.sourceforge.net *
|
|
* based on EmailAdmin by Lars Kneschke [lkneschke@egroupware.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. *
|
|
\***************************************************************************/
|
|
|
|
class uildap_mgr
|
|
{
|
|
|
|
var $public_functions = array
|
|
(
|
|
'editUserData' => True,
|
|
'saveUserData' => True
|
|
);
|
|
|
|
function uildap_mgr()
|
|
{
|
|
$this->t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
|
|
$this->boldapmgr = CreateObject('admin.boldap_mgr');
|
|
}
|
|
|
|
function display_app_header()
|
|
{
|
|
$GLOBALS['phpgw']->common->phpgw_header();
|
|
echo parse_navbar();
|
|
|
|
}
|
|
|
|
function editUserData($_useCache='0')
|
|
{
|
|
global $phpgw, $phpgw_info, $HTTP_GET_VARS;
|
|
|
|
$accountID = $HTTP_GET_VARS['account_id'];
|
|
$GLOBALS['account_id'] = $accountID;
|
|
|
|
$this->display_app_header();
|
|
|
|
$this->translate();
|
|
|
|
$this->t->set_file(array("editUserData" => "account_form_ldapdata.tpl"));
|
|
$this->t->set_block('editUserData','form','form');
|
|
$this->t->set_block('editUserData','link_row','link_row');
|
|
$this->t->set_var("th_bg",$phpgw_info["theme"]["th_bg"]);
|
|
$this->t->set_var("tr_color1",$phpgw_info["theme"]["row_on"]);
|
|
$this->t->set_var("tr_color2",$phpgw_info["theme"]["row_off"]);
|
|
|
|
$this->t->set_var("lang_email_config",lang("edit email settings"));
|
|
$this->t->set_var("lang_emailAddress",lang("email address"));
|
|
$this->t->set_var("lang_emailaccount_active",lang("email account active"));
|
|
$this->t->set_var("lang_mailAlternateAddress",lang("alternate email address"));
|
|
$this->t->set_var("lang_mailForwardingAddress",lang("forward email's to"));
|
|
$this->t->set_var("lang_forward_also_to",lang("forward also to"));
|
|
$this->t->set_var("lang_button",lang("save"));
|
|
$this->t->set_var("lang_deliver_extern",lang("deliver extern"));
|
|
$this->t->set_var("lang_edit_email_settings",lang("edit email settings"));
|
|
$this->t->set_var("lang_ready",lang("Done"));
|
|
$this->t->set_var("link_back",$phpgw->link('/admin/accounts.php'));
|
|
|
|
$linkData = array
|
|
(
|
|
'menuaction' => 'admin.uildap_mgr.saveUserData',
|
|
'account_id' => $accountID
|
|
);
|
|
$this->t->set_var("form_action", $phpgw->link('/index.php',$linkData));
|
|
|
|
// only when we show a existing user
|
|
if($userData = $this->boldapmgr->getUserData($accountID, $_useCache))
|
|
{
|
|
echo "<br><br><br>";
|
|
if ($userData['mailAlternateAddress'] != '')
|
|
{
|
|
$options_mailAlternateAddress = "<select size=\"6\" name=\"mailAlternateAddress\">\n";
|
|
for ($i=0;$i < count($userData['mailAlternateAddress']); $i++)
|
|
{
|
|
$options_mailAlternateAddress .= "<option value=\"".$i."\">".
|
|
$userData['mailAlternateAddress'][$i].
|
|
"</option>\n";
|
|
}
|
|
$options_mailAlternateAddress .= "</select>\n";
|
|
}
|
|
else
|
|
{
|
|
$options_mailAlternateAddress = lang('no alternate email address');
|
|
}
|
|
|
|
$this->t->set_var("mail",$userData["mail"]);
|
|
// $this->t->set_var("mailAlternateAddress",'');
|
|
$this->t->set_var("mailForwardingAddress",$userData["mailForwardingAddress"]);
|
|
$this->t->set_var("options_mailAlternateAddress",$options_mailAlternateAddress);
|
|
|
|
$this->t->set_var("uid",rawurlencode($_accountData["dn"]));
|
|
if ($userData["accountStatus"] == "active")
|
|
$this->t->set_var("account_checked","checked");
|
|
if ($userData["deliveryMode"] == "forwardOnly")
|
|
$this->t->set_var("forwardOnly_checked","checked");
|
|
if ($_accountData["deliverExtern"] == "active")
|
|
$this->t->set_var("deliver_checked","checked");
|
|
}
|
|
else
|
|
{
|
|
$this->t->set_var("mail",'');
|
|
$this->t->set_var("mailAlternateAddress",'');
|
|
$this->t->set_var("mailForwardingAddress",'');
|
|
$this->t->set_var("options_mailAlternateAddress",lang('no alternate email address'));
|
|
$this->t->set_var("account_checked",'');
|
|
$this->t->set_var("forwardOnly_checked",'');
|
|
}
|
|
|
|
// create the menu on the left, if needed
|
|
$menuClass = CreateObject('admin.uimenuclass');
|
|
$this->t->set_var('rows',$menuClass->createHTMLCode('edit_user'));
|
|
|
|
$this->t->pparse("out","form");
|
|
|
|
}
|
|
|
|
function saveUserData()
|
|
{
|
|
global $HTTP_POST_VARS, $HTTP_GET_VARS;
|
|
|
|
if($HTTP_POST_VARS["accountStatus"] == "on")
|
|
{
|
|
$accountStatus = "active";
|
|
}
|
|
if($HTTP_POST_VARS["forwardOnly"] == "on")
|
|
{
|
|
$deliveryMode = "forwardOnly";
|
|
}
|
|
|
|
$formData = array
|
|
(
|
|
'mail' => $HTTP_POST_VARS["mail"],
|
|
'mailAlternateAddress' => $HTTP_POST_VARS["mailAlternateAddress"],
|
|
'mailForwardingAddress' => $HTTP_POST_VARS["mailForwardingAddress"],
|
|
'add_mailAlternateAddress' => $HTTP_POST_VARS["mailAlternateAddressInput"],
|
|
'remove_mailAlternateAddress' => $HTTP_POST_VARS["mailAlternateAddress"],
|
|
'accountStatus' => $accountStatus,
|
|
'deliveryMode' => $deliveryMode
|
|
);
|
|
|
|
//echo "<br><br>DebugArray in uiuserdata";
|
|
// echo _debug_array($formData);
|
|
|
|
if($HTTP_POST_VARS["add_mailAlternateAddress"]) $bo_action='add_mailAlternateAddress';
|
|
if($HTTP_POST_VARS["remove_mailAlternateAddress"]) $bo_action='remove_mailAlternateAddress';
|
|
if($HTTP_POST_VARS["save"]) $bo_action='save';
|
|
|
|
$this->boldapmgr->saveUserData($_GET['account_id'], $formData, $bo_action);
|
|
|
|
if ($bo_action == 'save')
|
|
{
|
|
// read date fresh from ldap storage
|
|
$this->editUserData();
|
|
}
|
|
else
|
|
{
|
|
// use cached data
|
|
$this->editUserData('1');
|
|
}
|
|
}
|
|
|
|
function translate()
|
|
{
|
|
global $phpgw_info;
|
|
|
|
$this->t->set_var('th_bg',$phpgw_info['theme']['th_bg']);
|
|
|
|
$this->t->set_var('lang_add',lang('add'));
|
|
$this->t->set_var('lang_done',lang('Done'));
|
|
$this->t->set_var('lang_remove',lang('remove'));
|
|
$this->t->set_var('lang_remove',lang('remove'));
|
|
$this->t->set_var('lang_advanced_options',lang('advanced options'));
|
|
$this->t->set_var('lang_qmaildotmode',lang('qmaildotmode'));
|
|
$this->t->set_var('lang_default',lang('default'));
|
|
$this->t->set_var('lang_quota_settings',lang('quota settings'));
|
|
$this->t->set_var('lang_qoutainmbyte',lang('qouta size in MByte'));
|
|
$this->t->set_var('lang_inmbyte',lang('in MByte'));
|
|
$this->t->set_var('lang_0forunlimited',lang('leave empty for no quota'));
|
|
$this->t->set_var('lang_forward_only',lang('forward only'));
|
|
$this->t->set_var('lang_mailAliases',lang('Aliases'));
|
|
$this->t->set_var('lang_masterEmailAddress',lang('Main Email-Address'));
|
|
$this->t->set_var('lang_RouteMailsTo',lang('Route all Mails to'));
|
|
}
|
|
}
|
|
?>
|