<?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')); } } ?>