X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fpersonal%2Fconnectivity%2Fclass_kolabAccount.inc;h=9f08ea9110e4bdad8c1c550f80f08d79ec042c9e;hb=e7b70ce242b052c5e0d0dfd45dfac5e6f9f36ba3;hp=2b5ae71c864e4d6a8fca2f7367dc92493ea134f6;hpb=33ce29bacccb3c71756e148077440bdcfa6b08e1;p=gosa.git diff --git a/plugins/personal/connectivity/class_kolabAccount.inc b/plugins/personal/connectivity/class_kolabAccount.inc index 2b5ae71c8..9f08ea911 100644 --- a/plugins/personal/connectivity/class_kolabAccount.inc +++ b/plugins/personal/connectivity/class_kolabAccount.inc @@ -2,28 +2,24 @@ class kolabAccount extends plugin { /* Definitions */ - var $plHeadline= "Kolab"; - var $plDescription= "This does something"; - - /* CLI vars */ - var $cli_summary= "Manage users Kolab account"; - var $cli_description= "Some longer text\nfor help"; - var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); + var $plHeadline = "Kolab"; + var $plDescription = "This does something"; /* Kolab attributes */ - var $kolabInvitationPolicy= array(); - var $kolabFreeBusyFuture= 60; - var $unrestrictedMailSize= 0; - var $calFBURL= ""; - var $kolabDelegate= array(); + var $kolabInvitationPolicy = array(); + var $kolabFreeBusyFuture = 60; + var $unrestrictedMailSize = 0; + var $calFBURL = ""; + var $kolabDelegate = array(); /* attribute list for save action */ - var $attributes= array( "kolabFreeBusyFuture", "unrestrictedMailSize", "calFBURL"); - var $objectclasses= array("kolab"); + var $attributes = array("kolabFreeBusyFuture", "unrestrictedMailSize", "calFBURL","kolabDelegate"); + var $objectclasses = array("kolabInetOrgPerson"); /* Helper */ var $imapping= array(); + function kolabAccount ($config, $dn= NULL) { plugin::plugin ($config, $dn); @@ -31,9 +27,11 @@ class kolabAccount extends plugin /* Pull arrays */ foreach(array("kolabDelegate", "kolabInvitationPolicy") as $attr){ if (isset($this->attrs["$attr"]["count"])){ + $tmp = array(); for ($i= 0; $i<$this->attrs["$attr"]["count"]; $i++){ - array_push($this->$attr, $this->attrs["$attr"][$i]); + $tmp[]=$this->attrs["$attr"][$i]; } + $this->$attr = $tmp; } } @@ -42,12 +40,23 @@ class kolabAccount extends plugin $this->kolabInvitationPolicy= array("ACT_MANUAL"); } + /* Check is account state */ + $this->is_account = false; + if(count($this->kolabDelegate)){ + $this->is_account = true; + } + foreach(array("calFBURL","unrestrictedMailSize") as $attr){ + if(!empty($this->$attr)){ + $this->is_account = true; + } + } } + function execute() { /* Call parent execute */ -// plugin::execute(); + plugin::execute(); /* Show tab dialog headers */ $display= ""; @@ -60,6 +69,7 @@ class kolabAccount extends plugin $smarty->assign("$val", $this->$val); $smarty->assign($val."ACL", chkacl($this->acl, "$val")); } + $smarty->assign("kolabAccountACL", chkacl($this->acl, "kolabAccountACL")); /* Check for invitation action */ $nr= 0; @@ -82,9 +92,6 @@ class kolabAccount extends plugin /* Unify addresses */ $new= array(); foreach($this->kolabInvitationPolicy as $value){ - if (preg_match('/^:/', $value)){ - continue; - } $address= preg_replace('/^([^:]+:).*$/', '\1', $value); $new[$address]= $value; } @@ -153,9 +160,11 @@ class kolabAccount extends plugin /* Transfer account states for this union */ if (isset($this->parent) && $this->parent->by_object['mailAccount']->is_account){ - $smarty->assign('is_account', 'true'); - } else { - $smarty->assign('is_account', ''); + $smarty->assign('mail_account', 'true'); + } elseif($this-> initially_was_account && (isset($this->attrs['objectClass']) && (in_array("kolabInetOrgPerson",$this->attrs['objectClass'])))){ + $smarty->assign('mail_account', 'true'); + }else{ + $smarty->assign('mail_account', ''); } /* Transfer delegation list */ @@ -172,8 +181,19 @@ class kolabAccount extends plugin $this->imapping= array(); $nr= 0; $acl= chkacl($this->acl, "kolabInvitationPolicy"); + $changeState = ""; foreach ($this->kolabInvitationPolicy as $entry){ + + $changeState .= "changeState('address".$nr."'); \n changeState('policy".$nr."'); \n + changeState('add".$nr."'); \n changeState('remove".$nr."'); \n"; + $invitation.= "