egroupware_official/felamimail/inc/class.bopreferences.inc.php

182 lines
6.2 KiB
PHP

<?php
/***************************************************************************\
* phpGroupWare - FeLaMiMail *
* http://www.linux-at-work.de *
* http://www.phpgw.de *
* http://www.phpgroupware.org *
* Written by : Lars Kneschke [lkneschke@linux-at-work.de] *
* ------------------------------------------------- *
* 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$ */
class bopreferences
{
var $public_functions = array
(
'getPreferences' => True,
'none' => True
);
function bopreferences()
{
$this->config = CreateObject('phpgwapi.config','felamimail');
$this->config->read_repository();
$this->profileID = $this->config->config_data['profileID'];
$this->boemailadmin = CreateObject('emailadmin.bo');
}
function getPreferences()
{
$data['emailConfigValid'] = true;
if($this->profileID < 0 || $this->profileID == '')
{
$data['emailConfigValid'] = false;
return $data;
}
$imapServerTypes = $this->boemailadmin->getIMAPServerTypes();
$profileData = $this->boemailadmin->getProfile($this->profileID);
if($imapServerTypes[$profileData['imapType']]['protocol'] != 'imap')
{
$data['emailConfigValid'] = false;
}
#$usersEMailAddresses = $this->boemailadmin->getAccountEmailAddress($GLOBALS['phpgw_info']['user']['userid'], $this->profileID);
#_debug_array($usersEMailAddresses);
$felamimailUserPrefs = $GLOBALS['phpgw_info']['user']['preferences']['felamimail'];
// set values to the global values
$data['imapServerAddress'] = $profileData['imapServer'];
$data['key'] = $GLOBALS['phpgw_info']['user']['passwd'];
if ($profileData['imapLoginType'] == 'vmailmgr')
$data['username'] = $GLOBALS['phpgw_info']['user']['userid']."@".$profileData['defaultDomain'];
else
$data['username'] = $GLOBALS['phpgw_info']['user']['userid'];
$data['imap_server_type'] = $imapServerTypes[$profileData['imapType']]['protocol'];
$data['realname'] = $GLOBALS['phpgw_info']['user']['fullname'];
$data['defaultDomainname'] = $profileData['defaultDomain'];
$data['smtpServerAddress'] = $profileData['smtpServer'];
$data['smtpPort'] = $profileData['smtpPort'];
if(!empty($profileData['organisationName']))
$data['organizationName'] = $profileData['organisationName'];
$data['emailAddress'] = $this->boemailadmin->getAccountEmailAddress($GLOBALS['phpgw_info']['user']['userid'], $this->profileID);
$data['smtpAuth'] = $profileData['smtpAuth'];
$data['imapAdminUsername'] = $profileData['imapAdminUsername'];
$data['imapAdminPW'] = $profileData['imapAdminPW'];
// check for user specific settings
#_debug_array($felamimailUserPrefs);
#_debug_array($profileData);
if ($profileData['imapEnableSieve'] == 'yes')
{
$data['imapSieveServer'] = $profileData['imapSieveServer'];
$data['imapSievePort'] = $profileData['imapSievePort'];
$data['imapEnableSieve'] = true;
}
if ($profileData['userDefinedAccounts'] == 'yes' &&
$felamimailUserPrefs['use_custom_settings'] == 'yes')
{
if(!empty($felamimailUserPrefs['username']))
$data['username'] = $felamimailUserPrefs['username'];
if(!empty($felamimailUserPrefs['key']))
$data['key'] = $felamimailUserPrefs['key'];
if(!empty($felamimailUserPrefs['emailAddress']))
$data['emailAddress'] = array(
array(
'address' => $felamimailUserPrefs['emailAddress'],
'type' => 'default'
)
);
if(!empty($felamimailUserPrefs['imapServerAddress']))
$data['imapServerAddress'] = $felamimailUserPrefs['imapServerAddress'];
if(!empty($felamimailUserPrefs['imap_server_type']))
$data['imap_server_type'] = strtolower($felamimailUserPrefs['imap_server_type']);
}
if(($profileData['imapTLSEncryption'] == 'yes' ||
$profileData['imapTLSAuthentication'] == 'yes') &&
empty($profileData['imapPort']))
{
$data['imapPort'] = 993;
}
else
{
$data['imapPort'] = 143;
}
if($profileData['imapTLSEncryption'] == 'yes' &&
$profileData['imapTLSAuthentication'] == 'yes')
{
$data['imapOptions'] = '/imap/tls';
}
elseif($profileData['imapTLSEncryption'] == 'yes')
{
$data['imapOptions'] = '/imap/tls/novalidate-cert';
}
else
{
if(version_compare(phpversion(),'4.3.0'))
{
$data['imapOptions'] = '/imap';
}
else
{
$data['imapOptions'] = '/imap/notls';
}
}
#_debug_array($data);
$GLOBALS['phpgw']->preferences->read_repository();
$userPrefs = $GLOBALS['phpgw_info']['user']['preferences'];
// how to handle deleted messages
if(isset($userPrefs['felamimail']['deleteOptions']))
{
$data['deleteOptions'] = $userPrefs['felamimail']['deleteOptions'];
}
else
{
$data['deleteOptions'] = 'mark_as_deleted';
}
$data['htmlOptions'] = $userPrefs['felamimail']['htmlOptions'];
$data['sortOrder'] = $userPrefs['felamimail']['sortOrder'];
$data['messageNewWindow'] = $userPrefs['felamimail']['message_newwindow'];
// where is the trash folder
$data['trash_folder'] = $userPrefs['felamimail']['trashFolder'];
if(!empty($userPrefs['felamimail']['sentFolder']))
{
$data['sent_folder'] = $userPrefs['felamimail']['sentFolder'];
$data['sentFolder'] = $userPrefs['felamimail']['sentFolder'];
}
$data['refreshTime'] = $userPrefs['felamimail']['refreshTime'];
if (!empty($data['trash_folder']))
$data['move_to_trash'] = True;
if (!empty($data['sent_folder']))
$data['move_to_sent'] = True;
$data['signature'] = $userPrefs['felamimail']['email_sig'];
#_debug_array($data);
return $data;
}
}