summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ba11be3)
raw | patch | inline | side by side (parent: ba11be3)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 15 Sep 2010 08:55:25 +0000 (08:55 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 15 Sep 2010 08:55:25 +0000 (08:55 +0000) |
Updated comments
Updated translations
Fixed undefined index warning _off
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19675 594d385d-05f5-0310-b6e9-bd551577e9d8
Updated translations
Fixed undefined index warning _off
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@19675 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-plugins/groupware/personal/groupware/class_groupware.inc | patch | blob | history |
diff --git a/gosa-plugins/groupware/personal/groupware/class_groupware.inc b/gosa-plugins/groupware/personal/groupware/class_groupware.inc
index 65625af3e360bd17dfd73fe50f13cde3e1559c85..7a4fa3965b8dd3fb6fbbadf37d3c5cc2a6b4fbf9 100644 (file)
var $rpcError = FALSE;
var $rpcErrorMessage = "";
-
var $attributes = array(
- "mailAddress",
- "mailLocation",
- "quotaUsage",
- "quotaSize",
- "alternateAddresses",
- "forwardingAddresses",
- "vacationEnabled",
- "vacationStart",
- "vacationStop",
- "vacationMessage",
- "mailBoxWarnLimitEnabled",
- "mailBoxWarnLimitValue",
- "mailBoxSendSizelimitEnabled",
- "mailBoxSendSizelimitValue",
- "mailBoxHardSizelimitEnabled",
- "mailBoxHardSizelimitValue",
- "mailBoxAutomaticRemovalEnabled",
- "mailBoxAutomaticRemovalValue",
- "localDeliveryOnly",
- "dropOwnMails"
- );
-
+ "mailAddress", "mailLocation", "quotaUsage", "quotaSize", "alternateAddresses",
+ "forwardingAddresses", "vacationEnabled", "vacationStart", "vacationStop",
+ "vacationMessage", "mailBoxWarnLimitEnabled", "mailBoxWarnLimitValue",
+ "mailBoxSendSizelimitEnabled", "mailBoxSendSizelimitValue", "mailBoxHardSizelimitEnabled",
+ "mailBoxHardSizelimitValue", "mailBoxAutomaticRemovalEnabled", "mailBoxAutomaticRemovalValue",
+ "localDeliveryOnly", "dropOwnMails");
+
var $enabledFeatures = array();
//the dropdown
var $mailLocations = array();
-
+
var $mailAddress = "";
var $mailLocation = "";
var $quotaUsage = 0;
var $dropOwnMails = FALSE;
var $groupwareDao = null;
-
-
- /*
- * TODO: comment
- */
- function __construct ($config, $dn= NULL)
+
+ /*! \brief
+ */
+ function __construct ($config, $dn= NULL)
{
plugin::plugin($config,$dn);
$this->init();
}
-
+
/*! \brief Try to execute a function on the gosa backend using json-rpc.
* This method also takes care about errors and sets the required
* class members, such as rpcError and rpcErrorMessage.
{
$params = func_get_args();
unset($params[0]);
- //echo "------<br>Calling function:".$function." Params".var_dump($params)."<br>";
-
+ //echo "------<br>Calling function:".$function." Params".var_dump($params)."<br>";
+
$rpc = $this->config->getRpcHandle();
-
+
$res = call_user_func_array(array($rpc,$function),array_values($params));
$this->rpcError = !$rpc->success();
if($this->rpcError){
}
return($res);
}
-
-
- /*
- * TODO: comment
- */
- public function isFeatureEnabled($featureName)
- {
- if(isset($this->enabledFeatures[$featureName]) && $this->enabledFeatures[$featureName]){
- return TRUE;
- }
- return FALSE;
- }
-
-
+
+
+ /*! \brief TODO: comment
+ */
+ public function isFeatureEnabled($featureName)
+ {
+ if(isset($this->enabledFeatures[$featureName]) && $this->enabledFeatures[$featureName]){
+ return TRUE;
+ }
+ return FALSE;
+ }
+
+
/*! \brief Try initialize the groupware account.
* This method fetches all required information to manage the
* account using the GOsa gui.
$this->groupwareDao = new groupware_dao($this);
$features = array();
- //feature names with a list of groupware function that must be availabele
- //these groupware functions are not the rpc functions, because they are asked from the groupware server
+ //feature names with a list of groupware function that must be availabele
+ //these groupware functions are not the rpc functions, because they are asked from the groupware server
$featureReq = array(
- "primaryMail" => array(
- 'acctGetPrimaryMailAddress'),
- "quotaUsage" => array(
- 'acctGetQuota'),
+ "primaryMail" => array(
+ 'acctGetPrimaryMailAddress'),
+ "quotaUsage" => array(
+ 'acctGetQuota'),
"quotaSize" => array(
'acctSetQuota','acctGetQuota'),
- "mailLocations" => array(
- 'getMailboxLocations'),
+ "mailLocations" => array(
+ 'getMailboxLocations'),
"mailFilter" => array("_off",
'acctDelFilter','acctGetFilters','acctSetFilters','acctSetFilters'),
"alternateAddresses" => array(
"mailBoxWarnLimit" => array(
'acctSetQuota','acctGetQuota'),
"mailBoxSendSizelimit" => array(
- 'acctSetQuota','acctGetQuota'),
+ 'acctSetQuota','acctGetQuota'),
"mailBoxHardSizelimit" => array(
- 'acctSetQuota','acctGetQuota'),
+ 'acctSetQuota','acctGetQuota'),
"mailBoxAutomaticRemoval" => array("_off",
'acctSetQuota','acctGetQuota'),
"localDeliveryOnly" => array( "_off",
'acctDelFilter','acctGetFilters','acctSetFilters','acctSetFilters'),
"dropOwnMails" => array( "_off",
'acctDelFilter','acctGetFilters','acctSetFilters','acctSetFilters'));
-
+
// Check if all required methods cann be called!
foreach($featureReq as $name => $requires){
$active = TRUE;
// Get rpc handle to fetch account info and feature availability.
$status = $this->rpcExec('gwAcctExists', $this->uid);
if($status !== NULL){
- $response = $this->groupwareDao->getComprehensiverUser($this->uid);
-
- $this->mapComprehensiveUserData($response);
+ $response = $this->groupwareDao->getComprehensiverUser($this->uid);
+
+ $this->mapComprehensiveUserData($response);
$this->initially_was_account = $this->is_account = $status;
-
- $this->accountInitialized = TRUE;
+
+ $this->accountInitialized = TRUE;
}
// Set vacation start/stop if not set alreasy
$this->vacationStart = time();
}
}
}
-
+
/****************
Forward addresses
****************/
$smarty = get_smarty();
foreach($this->attributes as $attr){
-
+
$smarty->assign($attr, $this->$attr);
}
foreach($this->enabledFeatures as $feature => $state){
$smarty->assign($feature."_isActive", $state);
}
-
+
$smarty->assign("mailLocations", $this->mailLocations);
if (count($this->vacationTemplates)){
$smarty->assign("displayTemplateSelector", "true");
$smarty->assign("initFailed", !$this->accountInitialized);
$smarty->assign("rpcError", $this->rpcError);
$smarty->assign("rpcErrorMessage", $this->rpcErrorMessage);
-
+
return($display.$smarty->fetch(get_template_path("generic.tpl",TRUE,dirname(__FILE__))));
}
/*! \brief Add given mail address to the list of alternate adresses ,
- . check if this mal address is used, skip adding in this case
+ * check if this mal address is used, skip adding in this case
*/
function addAlternate($address)
{
/*! \brief Prepare importet vacation string. \
- . Replace placeholder like %givenName a.s.o.
- @param string Vacation string
- @return string Completed vacation string
+ * Replace placeholder like %givenName a.s.o.
+ * @param string Vacation string
+ * @return string Completed vacation string
*/
private function prepare_vacation_template($contents)
{
return($contents);
}
-
- /*
- * remove the account form the groupware server completely.
- */
+
+ /*! \brief Remove the account form the groupware server completely.
+ */
function remove_from_parent()
{
// Get rpc handle to remove the account
}
}
-
- /*
- * Persists the values of this plugin to the groupware server
- * Save method ist called on "apply" and "ok" in the Gosa Frontend
- * All other actions will update values in the form or
- * cancel and therefore discard the changes so far.
- */
+
+ /* \brief Persists the values of this plugin to the groupware server.
+ * Save method is called on "apply" and "ok" in the Gosa Frontend.
+ * All other actions will update values in the form or
+ * cancel and therefore discard the changes so far.
+ */
function save()
{
// Get rpc handle to create or update the account
msg_dialog::display(_("Error"), _("Groupware account creation failed!"), ERROR_DIALOG);
}
}
-
- //save the primary Email Address.
+
+ // Save the primary Email Address.
if(!empty($this->mailAddress)){
- $this->groupwareDao->save("primaryMail", $this->uid, $this->mailAddress);
+ $this->groupwareDao->save("primaryMail", $this->uid, $this->mailAddress);
}
-
-
- // save alternateAddresses and forwarding.
+
+ // Save alternateAddresses and forwarding.
if(isset($this->alternateAddresses) && is_array($this->alternateAddresses)){
- $this->groupwareDao->save("alternateAddresses", $this->uid, $this->alternateAddresses);
+ $this->groupwareDao->save("alternateAddresses", $this->uid, $this->alternateAddresses);
}
if(isset($this->forwardingAddresses) && is_array($this->forwardingAddresses)){
- $this->groupwareDao->save("forwardingAddresses", $this->uid, $this->forwardingAddresses);
+ $this->groupwareDao->save("forwardingAddresses", $this->uid, $this->forwardingAddresses);
}
-
- //save the quota
+
+ // Save the quota
if(true){
- $quota = array( "warn_limit" => $this->mailBoxWarnLimitValue,
- "send_limit" => $this->mailBoxSendSizelimitValue,
- "hard_limit" => $this->mailBoxHardSizelimitValue,
- "hold" => $this->quotaSize,
- "usage" => $this->quotaUsage);
- $this->groupwareDao->save("quotaSize", $this->uid, $quota);
- }
-
- /*
- * TODO: save Mailbox location
- */
-
+ $quota = array( "warn_limit" => $this->mailBoxWarnLimitValue,
+ "send_limit" => $this->mailBoxSendSizelimitValue,
+ "hard_limit" => $this->mailBoxHardSizelimitValue,
+ "hold" => $this->quotaSize,
+ "usage" => $this->quotaUsage);
+ $this->groupwareDao->save("quotaSize", $this->uid, $quota);
+ }
+
+ // TODO: save Mailbox location
}
*/
function check()
{
- /*
- * TODO: Remove all echo Messages
- */
+ // TODO: Remove all echo Messages
$messages = plugin::check();
-
+
//Check the dates
+
+ // TODO: check only if features are enabled.
+
+ //required vacationEnabled
+ if($this->vacationEnabled){
+ if(!tests::is_date($this->vacationStart)){
+ $messages[] = msgPool::invalid(_("Vacation start date"),$this->vacationStart , "", _("Example of date : 01.03.2010"));
+ }
+ if(!tests::is_date($this->vacationStop)){
+ $messages[] = msgPool::invalid(_("Vacation stop date"),$this->vacationStop , "", _("Example of date : 01.03.2010"));
+ }
+ $diff = tests::compareDate($this->vacationStart, $this->vacationStop);
+
+ if($diff>=0){
+ $messages[] = msgPool::invalid(_("Vacation dates"), $this->vacationStart." - ".$this->vacationStop, "", _("Enddate before Start or the same."));
+ }
+ }
+ if(!tests::is_email ($this->mailAddress)){
+ $messages[] = msgPool::invalid(_("Mail address"),$this->mailAddress , "", _("Example: user@excom.intranet.gonicus.de"));
+ }
+
+ if(isset($this->forwardingAddresses) && is_array($this->forwardingAddresses)){
+ foreach($this->forwardingAddresses as $fAddress){
+ if(!tests::is_email ($fAddress)){
+ $messages[] = msgPool::invalid(_("Mail address"),$fAddress, "",
+ _("Example: user@excom.intranet.gonicus.de"));
+ }
+ if($fAddress == $this->mailAddress){
+ $messages[] = msgPool::invalid(_("Mail address same as primary Email Address"),$fAddress, "",
+ _("Forward Address and primary Email Address must not be the same (cirle reference)"));
+ }
+ }
+ }
+ if(isset($this->alternateAddresses) && is_array($this->alternateAddresses)){
+ foreach($this->alternateAddresses as $fAddress){
+ if(!tests::is_email ($fAddress)){
+ $messages[] = msgPool::invalid(_("Mail address"),$fAddress, "", _("Example: user@excom.intranet.gonicus.de"));
+ }
+ if($fAddress == $this->mailAddress){
+ $messages[] = msgPool::invalid(_("Mail address same as primary Email Address"),$fAddress, "",
+ _("Alternative Address and primary Email Address must not be the same (cirle reference)"));
+ }
+ }
+ }
/*
- * TODO: check only if features are enabled.
+ * TODO: Checks for quota and Locations?
*/
- //required vacationEnabled
- if($this->vacationEnabled){
- if(!tests::is_date($this->vacationStart)){
- $messages[] = msgPool::invalid(_("Vacation start date"),$this->vacationStart , "", _("Example of date : 01.03.2010"));
- }
- if(!tests::is_date($this->vacationStop)){
- $messages[] = msgPool::invalid(_("Vacation stop date"),$this->vacationStop , "", _("Example of date : 01.03.2010"));
- }
- $diff = tests::compareDate($this->vacationStart, $this->vacationStop);
-
- if($diff>=0){
- $messages[] = msgPool::invalid(_("Vacation dates"), $this->vacationStart." - ".$this->vacationStop, "", _("Enddate before Start or the same."));
- }
- }
- if(!tests::is_email ($this->mailAddress)){
- $messages[] = msgPool::invalid(_("Mail address"),$this->mailAddress , "", _("Example: user@excom.intranet.gonicus.de"));
- }
-
- if(isset($this->forwardingAddresses) && is_array($this->forwardingAddresses)){
- foreach($this->forwardingAddresses as $fAddress){
- if(!tests::is_email ($fAddress)){
- $messages[] = msgPool::invalid(_("Mail address"),$fAddress, "",
- _("Example: user@excom.intranet.gonicus.de"));
- }
- if($fAddress == $this->mailAddress){
- $messages[] = msgPool::invalid(_("Mail address same as primary Email Address"),$fAddress, "",
- _("Forward Address and primary Email Address must not be the same (cirle reference)"));
- }
- }
- }
- if(isset($this->alternateAddresses) && is_array($this->alternateAddresses)){
- foreach($this->alternateAddresses as $fAddress){
- if(!tests::is_email ($fAddress)){
- $messages[] = msgPool::invalid(_("Mail address"),$fAddress, "", _("Example: user@excom.intranet.gonicus.de"));
- }
- if($fAddress == $this->mailAddress){
- $messages[] = msgPool::invalid(_("Mail address same as primary Email Address"),$fAddress, "",
- _("Alternative Address and primary Email Address must not be the same (cirle reference)"));
- }
- }
- }
- /*
- * TODO: Checks for quota and Locations?
- */
-
+
return($messages);
}
-
- /*! \brief Adapt from template, using 'dn'
- */
- function adapt_from_template($dn, $skip= array())
- {
- plugin::adapt_from_template($dn, $skip);
- }
-
-
/*! \brief ACL settings
*/
static function plInfo()
"localDeliveryOnly" => _("Local delivery only"),
"dropOwnMails" => _("Drop own mails")
)
- ));
+ ));
}
-
-
- /*! \brief maps the resultset fetched from the Dao to the class variables
- * of the plugin.
+
+
+ /*! \brief Maps the resultset fetched from the Dao to the class variables
+ * of the plugin.
*/
function mapComprehensiveUserData($callBackMap)
{
- //dropdown
- $this->mailLocations = $callBackMap["mailLocations"];
- //data from the groupware
- $this->mailAddress = $callBackMap["primaryMail"];
- $this->mailLocation = $callBackMap["mailLocation"];
- $this->quotaUsage = $callBackMap["quotaUsage"];
- $this->quotaSize = $callBackMap["quotaSize"];
- $this->alternateAddresses = $callBackMap["alternateAddresses"];
- $this->forwardingAddresses = $callBackMap["forwardingAddresses"];
- $this->vacationEnabled = $callBackMap["vacationEnabled"];
- $this->vacationStart = $callBackMap["vacationStart"];
- $this->vacationStop = $callBackMap["vacationStop"];
- $this->vacationMessage = $callBackMap["vacationMessage"];
- $this->mailBoxWarnLimitEnabled = $callBackMap["mailBoxWarnLimitEnabled"];
- $this->mailBoxWarnLimitValue = $callBackMap["mailBoxWarnLimitValue"];
- $this->mailBoxSendSizelimitEnabled = $callBackMap["mailBoxSendSizelimitEnabled"];
- $this->mailBoxSendSizelimitValue = $callBackMap["mailBoxSendSizelimitValue"];
- $this->mailBoxHardSizelimitEnabled = $callBackMap["mailBoxHardSizelimitEnabled"];
- $this->mailBoxHardSizelimitValue = $callBackMap["mailBoxHardSizelimitValue"];
- $this->mailBoxAutomaticRemovalEnabled = $callBackMap["mailBoxAutomaticRemovalEnabled"];
- $this->mailBoxAutomaticRemovalValue = $callBackMap["mailBoxAutomaticRemovalValue"];
- $this->localDeliveryOnly = $callBackMap["localDeliveryOnly"];
- $this->dropOwnMails = $callBackMap["dropOwnMails"];
+ //dropdown
+ $this->mailLocations = $callBackMap["mailLocations"];
+ //data from the groupware
+ $this->mailAddress = $callBackMap["primaryMail"];
+ $this->mailLocation = $callBackMap["mailLocation"];
+ $this->quotaUsage = $callBackMap["quotaUsage"];
+ $this->quotaSize = $callBackMap["quotaSize"];
+ $this->alternateAddresses = $callBackMap["alternateAddresses"];
+ $this->forwardingAddresses = $callBackMap["forwardingAddresses"];
+ $this->vacationEnabled = $callBackMap["vacationEnabled"];
+ $this->vacationStart = $callBackMap["vacationStart"];
+ $this->vacationStop = $callBackMap["vacationStop"];
+ $this->vacationMessage = $callBackMap["vacationMessage"];
+ $this->mailBoxWarnLimitEnabled = $callBackMap["mailBoxWarnLimitEnabled"];
+ $this->mailBoxWarnLimitValue = $callBackMap["mailBoxWarnLimitValue"];
+ $this->mailBoxSendSizelimitEnabled = $callBackMap["mailBoxSendSizelimitEnabled"];
+ $this->mailBoxSendSizelimitValue = $callBackMap["mailBoxSendSizelimitValue"];
+ $this->mailBoxHardSizelimitEnabled = $callBackMap["mailBoxHardSizelimitEnabled"];
+ $this->mailBoxHardSizelimitValue = $callBackMap["mailBoxHardSizelimitValue"];
+ $this->mailBoxAutomaticRemovalEnabled = $callBackMap["mailBoxAutomaticRemovalEnabled"];
+ $this->mailBoxAutomaticRemovalValue = $callBackMap["mailBoxAutomaticRemovalValue"];
+ $this->localDeliveryOnly = $callBackMap["localDeliveryOnly"];
+ $this->dropOwnMails = $callBackMap["dropOwnMails"];
}
}
/*! \brief Data Access Object for groupwares
*/
class groupware_dao{
- /*
- * TODO: Remove the debug
- * use the debug functions fo the Gosa installation instead.
- * function_debug
- * (got ot remove the following variable, the function debug and all calls to it)
- */
- private $debug = true;
-
- private $availableMethods;
- private $availableProperties;
- private $accountLocations;
-
- private static $gwFeatures = array(
- "primaryMail" => array( "get"=>"gwAcctGetPrimaryMailAddress",
- "save"=>"gwAcctSetPrimaryMailAddress"),
- "mailLocations" => array("get"=>"gwGetMailboxLocations"),
- "quotaSize" =>array( "get"=>"gwAcctGetQuota",
- "save"=>"gwAcctSetQuota",
- "delete"=>"gwAcctSetQuota"),
- "mailFilter" =>array( "get"=>"gwAcctGetFilters",
- "save"=>"gwAcctSetFilters",
- "delete"=>"gwAcctDelFilter"),
- "alternateAddresses" =>array( "get"=>"gwAcctGetAlternateMailAddresses",
- "save"=>"gwAcctSetAlternateMailAddresses",
- "delete"=>"gwAcctDelAlternateMailAddress"),
- "forwardingAddresses" =>array( "get"=>"gwAcctGetMailForwardAddresses",
- "save"=>"gwAcctSetMailForwardAddresses",
- "delete"=>"gwAcctDelMailForwardAddress"),
- "vacationMessage" =>array( "get"=>"gwAcctGetOutOfOfficeReply",
- "save"=>"gwAcctSetOutOfOfficeReply",
- "delete"=>"gwAcctDelOutOfOfficeReply"),
- "mailBoxWarnLimit" =>array( "get"=>"",
- "save"=>"",
- "delete"=>""),
- "mailBoxSendSizelimit" =>array( "get"=>"gwAcctGetQuota",
- "save"=>"gwAcctSetQuota",
- "delete"=>"gwAcctDelQuota"),
- "mailBoxHardSizelimit" =>array( "get"=>"gwAcctGetMailLimit",
- "save"=>"gwAcctSetMailLimit",
- "delete"=>"gwAcctDelMailLimit"),
- "mailBoxAutomaticRemoval" =>array( "get"=>"",
- "save"=>"",
- "delete"=>""),
- "localDeliveryOnly" =>array( "get"=>"",
- "save"=>"",
- "delete"=>""),
- "dropOwnMails" =>array( "get"=>"",
- "save"=>"",
- "delete"=>""),
- "accountProperties" => array("get"=>"gwAcctGetProperties",
- "save"=>"gwAcctSetProperties",
- "delete"=>"gwAcctDelProperties")
-
- );
- private $groupwarePluginRef = False;
-
-
- /*! \brief Constructor sets the connection to the rpc service
- * initializes the class
- */
- function __construct(&$pluginRef)
- {
-
- $this->groupwarePluginRef = &$pluginRef;
-
- /*
- * TODO:
- * Remove all echos
- */
-
- $this->init();
- }
-
-
- /*! \brief gets the capabilities of the server
- * builds an array with availbale features and knows how to call get, save, delete functions of
- * groupware rpc.
- */
- public function init()
- {
-
- $this->availableMethods = $this->groupwarePluginRef->rpcExec('gwGetCapabilities');
- //$this->availableProperties = $this->groupwarePluginRef->rpcExec('gwGetSupportedProperties');
- //$this->debug("availableProperties on init:", $this->availableProperties);
-
- }
-
-
- /*! \brief generic saving method for all features defined in $gwFeatures
- * which are the available features.
- */
- public function save($feature, $uid, $valueArray)
- {
- $function = groupware_dao::$gwFeatures[$feature]["save"];
-
- if(is_array($valueArray)){
- $valueArray = array_merge(array($function, $uid), $valueArray);
- }
- else{
- $valueArray = array($function, $uid, $valueArray);
- }
- $this->debug("SAVING (feature, value)", $valueArray);
- $result = call_user_func_array(array($this->groupwarePluginRef, 'rpcExec'), $valueArray);
-
- return $result;
- }
-
-
- /*! \brief generic get method for all features defined in $gwFeatures
- * which are the available features.
- */
- public function get($feature, $valueArray)
- {
- /*
- * TODO:
- * check if feture available ?
- * get and return the result.
- */
- $function = groupware_dao::$gwFeatures[$feature]["get"];
- if(is_array($valueArray)){
- $valueArray = array_merge(array($function), $valueArray);
- }
- else{
- $valueArray = array($function, $valueArray);
- }
-
- $result = call_user_func_array(array($this->groupwarePluginRef, 'rpcExec'), $valueArray);
-
- return $result;
- }
-
-
- /*! \brief generic delete function for all features defined in $gwFeatures
- * which are the available features.
- *
- * NOT YET IMPLEMENTED
- */
- public function del($feature, $valueArray)
- {
- /*
- * TODO:
- * check if feture available
- * del and return the result.
- */
- echo "deletion of values is not implemented yet";
- /*
- $function = groupware_dao::$gwFeatures[$feature]["delete"];
-
- $valueArray = array_merge(array($function), $valueArray);
-
- $result = call_user_func_array(array($this->groupwarePluginRef, 'rpcExec'), $valueArray);
-
- return $result;
- */
- }
-
-
- /*! \brief determine availability of features.
- *
- * @param methodName
- * @return boolean
- */
- public function gwFeatureAvailable($methodName)
- {
-
- return $this->availableMethods[$methodName];
- }
-
-
- /*! \brief comprehensive user info will dessolve into one groupware call later
- * right now it will get all data of the features that are available in the plugin.
- * @param int $uid
- * @return assoc array "feature" => "gwValue";
- */
- public function getComprehensiverUser( $uid)
- {
- //$hi = $this->groupwarePluginRef->rpcExec('gwGetCapabilities');
- $resultArr = array();
-
- if($this->groupwarePluginRef->isFeatureEnabled("primaryMail")){
- $resultArr["primaryMail"] = $this->get("primaryMail", array($uid));
- }
-
- if($this->groupwarePluginRef->isFeatureEnabled("alternateAddresses")){
- $resultArr["alternateAddresses"] = $this->get("alternateAddresses", array($uid));
- }
-
- if($this->groupwarePluginRef->isFeatureEnabled("forwardingAddresses")){
- $resultArr["forwardingAddresses"] = $this->get("forwardingAddresses", array($uid));
- }
-
- if($this->groupwarePluginRef->isFeatureEnabled("forwardingAddresses")){
- $resultArr["forwardingAddresses"] = $this->get("forwardingAddresses", array($uid));
- }
-
- //location dropdownlist - only readable
- if($this->groupwarePluginRef->isFeatureEnabled("mailLocations")){
- $resultArr["mailLocations"] = $this->groupwarePluginRef->rpcExec('gwGetMailboxLocations');
- $resultArr["mailLocation"] = $this->groupwarePluginRef->rpcExec(array('gwAcctGetLocation',$uid));
- }
- /*
- * TODO:
- * getLocation muss ebenfalls geholt werden
- */
-
- //Quota quotaUsage, quotaSize
- if($this->groupwarePluginRef->isFeatureEnabled("quotaSize") ||
- $this->groupwarePluginRef->isFeatureEnabled("quotaUsage") ||
- $this->groupwarePluginRef->isFeatureEnabled("mailBoxWarnLimit") ||
- $this->groupwarePluginRef->isFeatureEnabled("mailBoxSendSizelimit") ||
- $this->groupwarePluginRef->isFeatureEnabled("mailBoxHardSizelimit")){
-
- //Usage is a Mapi function which is not yet
- /*
- * TODO:
- * remove the following dummy and enable the qota fetch from groupware
- */
- echo "Quota function not yet implemented on server side!!";
- //$quota = $this->get("quotaSize", array($uid));
- $quota = array( "warn_limit" => 1008,
- "send_limit" => 108,
- "hard_limit" => 1108,
- "hold" => 508,
- "usage" => 1108);
- $resultArr["quotaSize"] = $quota["usage"];
- $resultArr["quotaSize"] = $quota["hold"];
- if($quota["warn_limit"] > 0){
- $resultArr["mailBoxWarnLimitEnabled"] = true;
- $resultArr["mailBoxWarnLimitValue"] = $quota["warn_limit"];
- }
- else{
- $resultArr["mailBoxWarnLimitEnabled"] = false;
- $resultArr["mailBoxWarnLimitValue"] = 0;
- }
- if($quota["send_limit"] > 0){
- $resultArr["mailBoxSendSizelimitEnabled"] = True;
- $resultArr["mailBoxSendSizelimitValue"] = $quota["send_limit"];
- }
- else{
- $resultArr["mailBoxSendSizelimitEnabled"] = FALSE;
- $resultArr["mailBoxSendSizelimitValue"] = 0;
- }
- if($quota["hard_limit"] > 0){
- $resultArr["mailBoxHardSizelimitEnabled"] = True;
- $resultArr["mailBoxHardSizelimitValue"] = $quota["hard_limit"];
- }
- else{
- $resultArr["mailBoxHardSizelimitEnabled"] = FALSE;
- $resultArr["mailBoxHardSizelimitValue"] = 0;
- }
- }
-
- //this function seems to be broken on the server.
- //addding dummy
-
- if($this->groupwarePluginRef->isFeatureEnabled("vacationMessage")){
-
- $vacMessage = $this->get("vacationMessage", array($uid));
- //$resultArr["vacationMessage"] = "dummy Vacation message - (getOutOfOfficeReply currently throws errors )";
- }
-
- $this->debug("getComprehensiverUser:", $resultArr);
- return $resultArr;
- }
-
-
- /*
- * TODO: remove all debug functions.
- */
- public function debug($name, $message)
- {
- if($this->debug){
- echo"<b>".$name."</b>";
- if(is_array($message)){
- echo "<pre>";
- print_r($message);
- echo "</pre>";
- }
- else{
- echo "$message";
- }
- }
- }
+
+ /* TODO: Remove the debug
+ * use the debug functions fo the Gosa installation instead.
+ * function_debug
+ * (got ot remove the following variable, the function debug and all calls to it)
+ */
+ private $debug = true;
+
+ private $availableMethods;
+ private $availableProperties;
+ private $accountLocations;
+
+ private $groupwarePluginRef = False;
+
+ private static $gwFeatures = array(
+ "primaryMail" => array( "get"=>"gwAcctGetPrimaryMailAddress",
+ "save"=>"gwAcctSetPrimaryMailAddress"),
+ "mailLocations" => array("get"=>"gwGetMailboxLocations"),
+ "quotaSize" =>array( "get"=>"gwAcctGetQuota",
+ "save"=>"gwAcctSetQuota",
+ "delete"=>"gwAcctSetQuota"),
+ "mailFilter" =>array( "get"=>"gwAcctGetFilters",
+ "save"=>"gwAcctSetFilters",
+ "delete"=>"gwAcctDelFilter"),
+ "alternateAddresses" =>array( "get"=>"gwAcctGetAlternateMailAddresses",
+ "save"=>"gwAcctSetAlternateMailAddresses",
+ "delete"=>"gwAcctDelAlternateMailAddress"),
+ "forwardingAddresses" =>array( "get"=>"gwAcctGetMailForwardAddresses",
+ "save"=>"gwAcctSetMailForwardAddresses",
+ "delete"=>"gwAcctDelMailForwardAddress"),
+ "vacationMessage" =>array( "get"=>"gwAcctGetOutOfOfficeReply",
+ "save"=>"gwAcctSetOutOfOfficeReply",
+ "delete"=>"gwAcctDelOutOfOfficeReply"),
+ "mailBoxWarnLimit" =>array( "get"=>"",
+ "save"=>"",
+ "delete"=>""),
+ "mailBoxSendSizelimit" =>array( "get"=>"gwAcctGetQuota",
+ "save"=>"gwAcctSetQuota",
+ "delete"=>"gwAcctDelQuota"),
+ "mailBoxHardSizelimit" =>array( "get"=>"gwAcctGetMailLimit",
+ "save"=>"gwAcctSetMailLimit",
+ "delete"=>"gwAcctDelMailLimit"),
+ "mailBoxAutomaticRemoval" =>array( "get"=>"",
+ "save"=>"",
+ "delete"=>""),
+ "localDeliveryOnly" =>array( "get"=>"",
+ "save"=>"",
+ "delete"=>""),
+ "dropOwnMails" =>array( "get"=>"",
+ "save"=>"",
+ "delete"=>""),
+ "accountProperties" => array("get"=>"gwAcctGetProperties",
+ "save"=>"gwAcctSetProperties",
+ "delete"=>"gwAcctDelProperties")
+
+ );
+
+
+ /*! \brief Constructor sets the connection to the rpc service
+ * initializes the class
+ */
+ function __construct(&$pluginRef)
+ {
+ $this->groupwarePluginRef = &$pluginRef;
+
+ // TODO: Remove all echos
+
+ $this->init();
+ }
+
+
+ /*! \brief Gets the capabilities of the server
+ * builds an array with availbale features and knows how to call get, save, delete functions of
+ * groupware rpc.
+ */
+ public function init()
+ {
+ $this->availableMethods = $this->groupwarePluginRef->rpcExec('gwGetCapabilities');
+ //$this->availableProperties = $this->groupwarePluginRef->rpcExec('gwGetSupportedProperties');
+ //$this->debug("availableProperties on init:", $this->availableProperties);
+
+ }
+
+
+ /*! \brief Generic saving method for all features defined in $gwFeatures
+ * which are the available features.
+ */
+ public function save($feature, $uid, $valueArray)
+ {
+ $function = groupware_dao::$gwFeatures[$feature]["save"];
+ if(is_array($valueArray)){
+ $valueArray = array_merge(array($function, $uid), $valueArray);
+ }else{
+ $valueArray = array($function, $uid, $valueArray);
+ }
+ $this->debug("SAVING (feature, value)", $valueArray);
+ $result = call_user_func_array(array($this->groupwarePluginRef, 'rpcExec'), $valueArray);
+ return $result;
+ }
+
+
+ /*! \brief generic get method for all features defined in $gwFeatures
+ * which are the available features.
+ */
+ public function get($feature, $valueArray)
+ {
+ // TODO: Check if feture available ? get and return the result.
+ $function = groupware_dao::$gwFeatures[$feature]["get"];
+ if(is_array($valueArray)){
+ $valueArray = array_merge(array($function), $valueArray);
+ }else{
+ $valueArray = array($function, $valueArray);
+ }
+
+ $result = call_user_func_array(array($this->groupwarePluginRef, 'rpcExec'), $valueArray);
+ return $result;
+ }
+
+
+ /*! \brief generic delete function for all features defined in $gwFeatures
+ * which are the available features.
+ *
+ * NOT YET IMPLEMENTED
+ */
+ public function del($feature, $valueArray)
+ {
+ // TODO: check if feture available del and return the result.
+
+ echo "deletion of values is not implemented yet";
+ /*
+ $function = groupware_dao::$gwFeatures[$feature]["delete"];
+ $valueArray = array_merge(array($function), $valueArray);
+ $result = call_user_func_array(array($this->groupwarePluginRef, 'rpcExec'), $valueArray);
+ return $result;
+ */
+ }
+
+
+ /*! \brief determine availability of features.
+ *
+ * @param methodName
+ * @return boolean
+ */
+ public function gwFeatureAvailable($methodName)
+ {
+ return(isset($this->availableMethods[$methodName]) && ($this->availableMethods[$methodName]));
+ }
+
+
+ /*! \brief comprehensive user info will dessolve into one groupware call later
+ * right now it will get all data of the features that are available in the plugin.
+ * @param int $uid
+ * @return assoc array "feature" => "gwValue";
+ */
+ public function getComprehensiverUser( $uid)
+ {
+ //$hi = $this->groupwarePluginRef->rpcExec('gwGetCapabilities');
+ $resultArr = array();
+
+ if($this->groupwarePluginRef->isFeatureEnabled("primaryMail")){
+ $resultArr["primaryMail"] = $this->get("primaryMail", array($uid));
+ }
+
+ if($this->groupwarePluginRef->isFeatureEnabled("alternateAddresses")){
+ $resultArr["alternateAddresses"] = $this->get("alternateAddresses", array($uid));
+ }
+
+ if($this->groupwarePluginRef->isFeatureEnabled("forwardingAddresses")){
+ $resultArr["forwardingAddresses"] = $this->get("forwardingAddresses", array($uid));
+ }
+
+ if($this->groupwarePluginRef->isFeatureEnabled("forwardingAddresses")){
+ $resultArr["forwardingAddresses"] = $this->get("forwardingAddresses", array($uid));
+ }
+
+ // Location dropdownlist - only readable
+ if($this->groupwarePluginRef->isFeatureEnabled("mailLocations")){
+ $resultArr["mailLocations"] = $this->groupwarePluginRef->rpcExec('gwGetMailboxLocations');
+ $resultArr["mailLocation"] = $this->groupwarePluginRef->rpcExec(array('gwAcctGetLocation',$uid));
+ }
+
+
+ //TODO: getLocation muss ebenfalls geholt werden
+
+ // Quota quotaUsage, quotaSize
+ if($this->groupwarePluginRef->isFeatureEnabled("quotaSize") ||
+ $this->groupwarePluginRef->isFeatureEnabled("quotaUsage") ||
+ $this->groupwarePluginRef->isFeatureEnabled("mailBoxWarnLimit") ||
+ $this->groupwarePluginRef->isFeatureEnabled("mailBoxSendSizelimit") ||
+ $this->groupwarePluginRef->isFeatureEnabled("mailBoxHardSizelimit")){
+
+ // Usage is a Mapi function which is not yet
+
+ // TODO: Remove the following dummy and enable the qota fetch from groupware
+
+ echo "Quota function not yet implemented on server side!!";
+ //$quota = $this->get("quotaSize", array($uid));
+ $quota = array( "warn_limit" => 1008,
+ "send_limit" => 108,
+ "hard_limit" => 1108,
+ "hold" => 508,
+ "usage" => 1108);
+ $resultArr["quotaSize"] = $quota["usage"];
+ $resultArr["quotaSize"] = $quota["hold"];
+ if($quota["warn_limit"] > 0){
+ $resultArr["mailBoxWarnLimitEnabled"] = true;
+ $resultArr["mailBoxWarnLimitValue"] = $quota["warn_limit"];
+ }else{
+ $resultArr["mailBoxWarnLimitEnabled"] = false;
+ $resultArr["mailBoxWarnLimitValue"] = 0;
+ }
+ if($quota["send_limit"] > 0){
+ $resultArr["mailBoxSendSizelimitEnabled"] = True;
+ $resultArr["mailBoxSendSizelimitValue"] = $quota["send_limit"];
+ }else{
+ $resultArr["mailBoxSendSizelimitEnabled"] = FALSE;
+ $resultArr["mailBoxSendSizelimitValue"] = 0;
+ }
+ if($quota["hard_limit"] > 0){
+ $resultArr["mailBoxHardSizelimitEnabled"] = True;
+ $resultArr["mailBoxHardSizelimitValue"] = $quota["hard_limit"];
+ }else{
+ $resultArr["mailBoxHardSizelimitEnabled"] = FALSE;
+ $resultArr["mailBoxHardSizelimitValue"] = 0;
+ }
+ }
+
+ //this function seems to be broken on the server.
+ //addding dummy
+
+ if($this->groupwarePluginRef->isFeatureEnabled("vacationMessage")){
+
+ $vacMessage = $this->get("vacationMessage", array($uid));
+ //$resultArr["vacationMessage"] = "dummy Vacation message - (getOutOfOfficeReply currently throws errors )";
+ }
+
+ $this->debug("getComprehensiverUser:", $resultArr);
+ return $resultArr;
+ }
+
+
+ /*! \brief TODO: remove all debug functions.
+ */
+ public function debug($name, $message)
+ {
+ if($this->debug){
+ echo"<b>".$name."</b>";
+ if(is_array($message)){
+ echo "<pre>";
+ print_r($message);
+ echo "</pre>";
+ }else{
+ echo "$message";
+ }
+ }
+ }
}
?>