diff --git a/admin/inc/class.boldap_mgr.inc.php b/admin/inc/class.boldap_mgr.inc.php index c1f604208d..3633e68491 100644 --- a/admin/inc/class.boldap_mgr.inc.php +++ b/admin/inc/class.boldap_mgr.inc.php @@ -17,9 +17,9 @@ { var $sessionData; var $LDAPData; - + var $SMTPServerType = array(); // holds a list of config options - + var $imapClass; // holds the imap/pop3 class var $smtpClass; // holds the smtp class @@ -37,7 +37,7 @@ function boldap_mgr($_profileID=-1) { $this->soldapmgr =& CreateObject('admin.soldap_mgr'); - + $this->SMTPServerType = array( '1' => array( 'fieldNames' => array( @@ -115,16 +115,16 @@ 'protocol' => 'imap', 'classname' => 'cyrusimap' ) - ); - + ); + $this->restoreSessionData(); - + if($_profileID >= 0) { $this->profileID = $_profileID; - + $this->profileData = $this->getProfile($_profileID); - + $this->imapClass = $this->IMAPServerType[$this->profileData['imapType']]['classname']; $this->smtpClass = $this->SMTPServerType[$this->profileData['smtpType']]['classname']; } @@ -134,20 +134,20 @@ { switch($_encoding) { - case "q": + case 'q': if(!preg_match("/[\x80-\xFF]/",$_string)) { // nothing to quote, only 7 bit ascii return $_string; } - + $string = imap_8bit($_string); $stringParts = explode("=\r\n",$string); while(list($key,$value) = each($stringParts)) { - if(!empty($retString)) $retString .= " "; - $value = str_replace(" ","_",$value); - // imap_8bit does not convert "?" + if(!empty($retString)) $retString .= ' '; + $value = str_replace(' ','_',$value); + // imap_8bit does not convert '?' // it does not need, but it should $value = str_replace("?","=3F",$value); $retString .= "=?".strtoupper($this->displayCharset)."?Q?".$value."?="; @@ -163,12 +163,12 @@ function getAccountEmailAddress($_accountName, $_profileID) { $profileData = $this->getProfile($_profileID); - + $smtpClass = $this->SMTPServerType[$profileData['smtpType']]['classname']; return empty($smtpClass) ? False : ExecMethod("emailadmin.$smtpClass.getAccountEmailAddress",$_accountName,3,$profileData); } - + function getFieldNames($_serverTypeID, $_class) { switch($_class) @@ -181,7 +181,7 @@ break; } } - + # function getIMAPClass($_profileID) # { # if(!is_object($this->imapClass)) @@ -189,10 +189,10 @@ # $profileData = $this->getProfile($_profileID); # $this->imapClass =& CreateObject('emailadmin.cyrusimap',$profileData); # } -# +# # return $this->imapClass; # } - + function getIMAPServerTypes() { foreach($this->IMAPServerType as $key => $value) @@ -200,21 +200,21 @@ $retData[$key]['description'] = $value['description']; $retData[$key]['protocol'] = $value['protocol']; } - + return $retData; } - + function getLDAPStorageData($_serverid) { $storageData = $this->soldapmgr->getLDAPStorageData($_serverid); return $storageData; } - + function getMailboxString($_folderName) { if (!empty($this->imapClass)) { - return ExecMethod("emailadmin.".$this->imapClass.".getMailboxString",$_folderName,3,$this->profileData); + return ExecMethod('emailadmin.'.$this->imapClass.'.getMailboxString',$_folderName,3,$this->profileData); } else { @@ -232,16 +232,16 @@ $fieldNames[] = 'profileID'; $fieldNames[] = 'organisationName'; $fieldNames[] = 'userDefinedAccounts'; - + return $this->soldapmgr->getProfile($_profileID, $fieldNames); } - + function getProfileList($_profileID='') { $profileList = $this->soldapmgr->getProfileList($_profileID); return $profileList; } - + # function getSMTPClass($_profileID) # { # if(!is_object($this->smtpClass)) @@ -249,20 +249,20 @@ # $profileData = $this->getProfile($_profileID); # $this->smtpClass =& CreateObject('emailadmin.postfixldap',$profileData); # } -# +# # return $this->smtpClass; # } - + function getSMTPServerTypes() { foreach($this->SMTPServerType as $key => $value) { $retData[$key] = $value['description']; } - + return $retData; } - + function getUserData($_accountID, $_usecache) { if ($_usecache) @@ -280,18 +280,16 @@ function restoreSessionData() { - - $this->sessionData = $GLOBALS['egw']->session->appsession('session_data'); $this->userSessionData = $GLOBALS['egw']->session->appsession('user_session_data'); - + #while(list($key, $value) = each($this->userSessionData)) #{ # print "++ $key: $value
"; #} #print "restored Session
"; } - + function saveProfile($_globalSettings, $_smtpSettings, $_imapSettings) { if(!isset($_globalSettings['profileID'])) @@ -304,29 +302,17 @@ } } - - - - function saveSessionData() { - - $GLOBALS['egw']->session->appsession('session_data','',$this->sessionData); $GLOBALS['egw']->session->appsession('user_session_data','',$this->userSessionData); } - - - - - - function saveUserData($_accountID, $_formData, $_boAction) { - $this->userSessionData[$_accountID]['mail'] = $_formData["mail"]; - $this->userSessionData[$_accountID]['mailForwardingAddress'] = $_formData["mailForwardingAddress"]; - $this->userSessionData[$_accountID]['accountStatus'] = $_formData["accountStatus"]; + $this->userSessionData[$_accountID]['mail'] = $_formData['mail']; + $this->userSessionData[$_accountID]['mailForwardingAddress'] = $_formData['mailForwardingAddress']; + $this->userSessionData[$_accountID]['accountStatus'] = $_formData['accountStatus']; switch ($_boAction) { @@ -341,17 +327,17 @@ //ACHTUNG!! $count = 0; } - - $this->userSessionData[$_accountID]['mailAlternateAddress'][$count] = + + $this->userSessionData[$_accountID]['mailAlternateAddress'][$count] = $_formData['add_mailAlternateAddress']; - + $this->saveSessionData(); - + break; - + case 'remove_mailAlternateAddress': $i=0; - + while(list($key, $value) = @each($this->userSessionData[$_accountID]['mailAlternateAddress'])) { #print ".. $key: $value
"; @@ -363,23 +349,25 @@ } } $this->userSessionData[$_accountID]['mailAlternateAddress'] = $newMailAlternateAddress; - + $this->saveSessionData(); break; case 'save': $this->soldapmgr->saveUserData( - $_accountID, - $this->userSessionData[$_accountID]); + $_accountID, + $this->userSessionData[$_accountID] + ); $bofelamimail =& CreateObject('felamimail.bofelamimail'); $bofelamimail->openConnection('','',true); - $bofelamimail->imapSetQuota($GLOBALS['egw']->accounts->id2name($_accountID), - $this->userSessionData[$_accountID]['quotaLimit']); + $bofelamimail->imapSetQuota( + $GLOBALS['egw']->accounts->id2name($_accountID), + $this->userSessionData[$_accountID]['quotaLimit'] + ); $bofelamimail->closeConnection(); $GLOBALS['egw']->accounts->cache_invalidate($_accountID); - - + break; } } @@ -388,14 +376,13 @@ { if (!empty($this->imapClass)) { - ExecMethod("emailadmin.".$this->imapClass.".updateAccount",$_hookValues,3,$this->profileData); + ExecMethod('emailadmin.'.$this->imapClass.'.updateAccount',$_hookValues,3,$this->profileData); } if (!empty($this->smtpClass)) { - ExecMethod("emailadmin.".$this->smtpClass.".updateAccount",$_hookValues,3,$this->profileData); + ExecMethod('emailadmin.'.$this->smtpClass.'.updateAccount',$_hookValues,3,$this->profileData); } } - } ?> diff --git a/admin/inc/class.soldap_mgr.inc.php b/admin/inc/class.soldap_mgr.inc.php index bdb1bf0cb8..d87189af06 100644 --- a/admin/inc/class.soldap_mgr.inc.php +++ b/admin/inc/class.soldap_mgr.inc.php @@ -1,62 +1,58 @@ db = clone($GLOBALS['egw']->db); + $this->db = clone($GLOBALS['egw']->db); include(EGW_INCLUDE_ROOT.'/emailadmin/setup/tables_current.inc.php'); $this->tables = &$phpgw_baseline; unset($phpgw_baseline); $this->table = &$this->tables['phpgw_emailadmin']; } - function getUserData($_accountID) { - global $phpgw, $phpgw_info; - $ldap = $GLOBALS['egw']->common->ldapConnect(); $filter = "(&(uidnumber=$_accountID))"; - + $sri = @ldap_search($ldap,$GLOBALS['egw_info']['server']['ldap_context'],$filter); if ($sri) { $allValues = ldap_get_entries($ldap, $sri); if ($allValues['count'] > 0) { - #print "found something
"; - $userData["mail"] = $allValues[0]["mail"][0]; - $userData["mailAlternateAddress"] = $allValues[0]["mailalternateaddress"]; - $userData["accountStatus"] = $allValues[0]["accountstatus"][0]; - $userData["mailForwardingAddress"] = $allValues[0]["mailforwardingaddress"][0]; - $userData["deliveryMode"] = $allValues[0]["deliverymode"][0]; + #print 'found something
'; + $userData['mail'] = $allValues[0]['mail'][0]; + $userData['mailAlternateAddress'] = $allValues[0]['mailalternateaddress']; + $userData['accountStatus'] = $allValues[0]['accountstatus'][0]; + $userData['mailForwardingAddress'] = $allValues[0]['mailforwardingaddress'][0]; + $userData['deliveryMode'] = $allValues[0]['deliverymode'][0]; - unset($userData["mailAlternateAddress"]["count"]); - unset($userData["mailForwardingAddress"]["count"]); + unset($userData['mailAlternateAddress']['count']); + unset($userData['mailForwardingAddress']['count']); return $userData; } } - + // if we did not return before, return false return false; } - + function saveUserData($_accountID, $_accountData) { - $ldap = $GLOBALS['egw']->common->ldapConnect(); // need to be fixed if(is_numeric($_accountID)) @@ -76,57 +72,57 @@ $uid = $allValues[0]['uid'][0]; $homedirectory = $allValues[0]['homedirectory'][0]; $objectClasses = $allValues[0]['objectclass']; - + unset($objectClasses['count']); } else { return false; } - + if(empty($homedirectory)) { $homedirectory = "/home/".$uid; } - + // the old code for qmail ldap - $newData = array + $newData = array ( - 'mail' => $_accountData["mail"], - 'mailAlternateAddress' => $_accountData["mailAlternateAddress"], - 'mailForwardingAddress' => $_accountData["mailForwardingAddress"], + 'mail' => $_accountData['mail'], + 'mailAlternateAddress' => $_accountData['mailAlternateAddress'], + 'mailForwardingAddress' => $_accountData['mailForwardingAddress'], // 'homedirectory' => $homedirectory, -// 'mailMessageStore' => $homedirectory."/Maildir/", +// 'mailMessageStore' => $homedirectory.'/Maildir/', // 'gidnumber' => '1000', -// 'qmailDotMode' => $_accountData["qmailDotMode"], -// 'deliveryProgramPath' => $_accountData["deliveryProgramPath"] +// 'qmailDotMode' => $_accountData['qmailDotMode'], +// 'deliveryProgramPath' => $_accountData['deliveryProgramPath'] ); - + if(!in_array('qmailUser',$objectClasses) && !in_array('qmailuser',$objectClasses)) { - $objectClasses[] = 'qmailuser'; + $objectClasses[] = 'qmailuser'; } - + // the new code for postfix+cyrus+ldap - $newData = array + $newData = array ( - 'mail' => $_accountData["mail"], - 'accountStatus' => $_accountData["accountStatus"], + 'mail' => $_accountData['mail'], + 'accountStatus' => $_accountData['accountStatus'], 'objectclass' => $objectClasses ); - if(is_array($_accountData["mailAlternateAddress"])) - { - $newData['mailAlternateAddress'] = $_accountData["mailAlternateAddress"]; + if(is_array($_accountData['mailAlternateAddress'])) + { + $newData['mailAlternateAddress'] = $_accountData['mailAlternateAddress']; } else { $newData['mailAlternateAddress'] = array(); } - if($_accountData["accountStatus"] == 'active') - { + if($_accountData['accountStatus'] == 'active') + { $newData['accountStatus'] = 'active'; } else @@ -134,9 +130,9 @@ $newData['accountStatus'] = 'disabled'; } /* - if(!empty($_accountData["deliveryMode"])) - { - $newData['deliveryMode'] = $_accountData["deliveryMode"]; + if(!empty($_accountData['deliveryMode'])) + { + $newData['deliveryMode'] = $_accountData['deliveryMode']; } else { @@ -144,24 +140,24 @@ } */ -// if(is_array($_accountData["mailForwardingAddress"])) -// { - $newData['mailForwardingAddress'] = $_accountData["mailForwardingAddress"]; +// if(is_array($_accountData['mailForwardingAddress'])) +// { + $newData['mailForwardingAddress'] = $_accountData['mailForwardingAddress']; // } // else // { // $newData['mailForwardingAddress'] = array(); // } - + #print "
DN: $accountDN
"; ldap_mod_replace ($ldap, $accountDN, $newData); - + // also update the account_email field in egw_accounts // when using sql account storage if($GLOBALS['egw_info']['server']['account_repository'] == 'sql') { $this->db->update('egw_accounts',array( - 'account_email' => $_accountData["mail"] + 'account_email' => $_accountData['mail'] ), array( 'account_id' => $_accountID diff --git a/admin/inc/class.uildap_mgr.inc.php b/admin/inc/class.uildap_mgr.inc.php index 376e241b45..fc16e22ef6 100644 --- a/admin/inc/class.uildap_mgr.inc.php +++ b/admin/inc/class.uildap_mgr.inc.php @@ -1,9 +1,9 @@ True, - 'saveUserData' => True + 'editUserData' => True, + 'saveUserData' => True ); function uildap_mgr() { - $this->t =& CreateObject('phpgwapi.Template',EGW_APP_TPL); - $this->boldapmgr =& CreateObject('admin.boldap_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') { - global $phpgw, $phpgw_info, $_GET; - - $accountID = $_GET['account_id']; + $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_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 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",$GLOBALS['egw']->link('/admin/accounts.php')); - $this->t->set_var("info_icon",EGW_IMAGES_DIR.'/info.gif'); - - + $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 + 'menuaction' => 'admin.uildap_mgr.saveUserData', + 'account_id' => $accountID ); - $this->t->set_var("form_action", $GLOBALS['egw']->link('/index.php',$linkData)); - + $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 "


"; + echo '


'; if ($userData['mailAlternateAddress'] != '') { - $options_mailAlternateAddress = "' . "\n"; for ($i=0;$i < count($userData['mailAlternateAddress']); $i++) { - $options_mailAlternateAddress .= "\n"; } @@ -91,79 +87,82 @@ { $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('mail',$userData['mail']); + //$this->t->set_var('mailAlternateAddress',''); could be deleted? + + if ($userData['mailForwardingAddress'] == '') { - $this->t->set_var("mailForwardingAddress",$userData["mail"]); + $this->t->set_var('mailForwardingAddress',$userData['mail']); } else { - $this->t->set_var("mailForwardingAddress",$userData["mailForwardingAddress"]); + $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"); + $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",''); + $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 + + // 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"); - + $this->t->pparse('out','form'); } - + function saveUserData() { - global $_POST, $_GET; - - if($_POST["accountStatus"] == "on") + if($_POST['accountStatus'] == 'on') { - $accountStatus = "active"; + $accountStatus = 'active'; } - if($_POST["forwardOnly"] == "on") + if($_POST['forwardOnly'] == 'on') { - $deliveryMode = "forwardOnly"; + $deliveryMode = 'forwardOnly'; } $formData = array ( - 'mail' => $_POST["mail"], - 'mailAlternateAddress' => $_POST["mailAlternateAddress"], - 'mailForwardingAddress' => $_POST["mailForwardingAddress"], - 'add_mailAlternateAddress' => $_POST["mailAlternateAddressInput"], - 'remove_mailAlternateAddress' => $_POST["mailAlternateAddress"], + 'mail' => $_POST['mail'], + 'mailAlternateAddress' => $_POST['mailAlternateAddress'], + 'mailForwardingAddress' => $_POST['mailForwardingAddress'], + 'add_mailAlternateAddress' => $_POST['mailAlternateAddressInput'], + 'remove_mailAlternateAddress' => $_POST['mailAlternateAddress'], 'accountStatus' => $accountStatus, 'deliveryMode' => $deliveryMode ); - + //echo "

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 + 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); @@ -179,11 +178,9 @@ $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'));