egroupware_official/admin/inc/class.uildap_mgr.inc.php
2005-11-26 14:04:40 +00:00

209 lines
7.5 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',EGW_APP_TPL);
$this->boldapmgr =& CreateObject('admin.boldap_mgr');
}
function display_app_header()
{
$GLOBALS['egw']->common->egw_header();
echo parse_navbar();
}
function editUserData($_useCache='0')
{
$accountID = $_GET['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',$GLOBALS['egw_info']['theme']['th_bg']);
$this->t->set_var('tr_color1',$GLOBALS['egw_info']['theme']['row_on']);
$this->t->set_var('tr_color2',$GLOBALS['egw_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 emails 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',$GLOBALS['egw']->link('/admin/accounts.php'));
$this->t->set_var('info_icon',EGW_IMAGES_DIR.'/info.gif');
$linkData = array
(
'menuaction' => 'admin.uildap_mgr.saveUserData',
'account_id' => $accountID
);
$this->t->set_var('form_action', $GLOBALS['egw']->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',''); could be deleted?
if ($userData['mailForwardingAddress'] == '')
{
$this->t->set_var('mailForwardingAddress',$userData['mail']);
}
else
{
$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()
{
if($_POST['accountStatus'] == 'on')
{
$accountStatus = 'active';
}
if($_POST['forwardOnly'] == 'on')
{
$deliveryMode = 'forwardOnly';
}
$formData = array
(
'mail' => $_POST['mail'],
'mailAlternateAddress' => $_POST['mailAlternateAddress'],
'mailForwardingAddress' => $_POST['mailForwardingAddress'],
'add_mailAlternateAddress' => $_POST['mailAlternateAddressInput'],
'remove_mailAlternateAddress' => $_POST['mailAlternateAddress'],
'accountStatus' => $accountStatus,
'deliveryMode' => $deliveryMode
);
//echo "<br><br>DebugArray in uiuserdata";
// echo _debug_array($formData);
if($_POST['add_mailAlternateAddress']) $bo_action='add_mailAlternateAddress';
if($_POST['remove_mailAlternateAddress']) $bo_action='remove_mailAlternateAddress';
if($_POST['save']) $bo_action='save';
if (!$_POST['mail'] == '') //attribute 'mail'is not allowed to be empty
{
// error generator necessary!!
$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()
{
$this->t->set_var('th_bg',$GLOBALS['egw_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_quotainmbyte',lang('quota 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_info_mailAliases',lang('Attribute mailAlternateAddress explained'));
$this->t->set_var('lang_masterEmailAddress',lang('Main Email-Address'));
$this->t->set_var('lang_info_masterEmailAddress',lang('Attribute mail explained'));
$this->t->set_var('lang_RouteMailsTo',lang('Route all Mails to'));
$this->t->set_var('lang_info_RouteMailsTo',lang('Attribute mailForwardingAddress explained'));
$this->t->set_var('lang_info_AccountActive',lang('Attribute accountstatus explained'));
$this->t->set_var('lang_info_UsageHints',lang('Explanation of LDAPMAN'));
}
}
?>