Code

Made kolabAccount compatible with connectivity tab
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 4 Jul 2006 04:22:56 +0000 (04:22 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 4 Jul 2006 04:22:56 +0000 (04:22 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4018 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/personal/connectivity/class_kolabAccount.inc
plugins/personal/connectivity/kolab.tpl

index 389bc753d8d0e1a02757c56a73175376a1fe3523..3c0056eb1cfaf0074770030260110a6e5e667878 100644 (file)
@@ -2,28 +2,29 @@
 class kolabAccount extends plugin
 {
   /* Definitions */
-  var $plHeadline= "Kolab";
-  var $plDescription= "This does something";
+  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 $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");
 
   /* 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);
@@ -42,12 +43,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= "";
@@ -153,9 +165,9 @@ 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');
+      $smarty->assign('mail_account', 'true');
     } else {
-      $smarty->assign('is_account', '');
+      $smarty->assign('mail_account', '');
     }
 
     /* Transfer delegation list */
@@ -212,14 +224,31 @@ class kolabAccount extends plugin
     }
     $smarty->assign("invitation", $invitation);
 
+    $smarty->assign("kolabState",$this->is_account);
     $display.= $smarty->fetch (get_template_path('kolab.tpl', TRUE, dirname(__FILE__)));
+
+
     return ($display);
   }
 
   function remove_from_parent()
   {
     /* Optionally execute a command after we're done */
+    plugin::remove_from_parent();
+    
+    if(!in_array("kolabInetOrgPerson",$this->attrs['objectClass'])){
+      $this->attrs['objectClass'][] = "kolabInetOrgPerson";
+    }
+
+    $ldap = $this->config->get_ldap_linK(); 
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->cd ($this->dn);
+    $ldap->modify($this->attrs);
+
+    print_a($this->attrs);
+
     $this->handle_post_events('remove');
+    show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/kolab account with dn '%s' failed."),$this->dn));
   }
 
 
@@ -272,6 +301,13 @@ class kolabAccount extends plugin
   {
     /* Do we need to flip is_account state? */
     if (isset($_POST['connectivityTab'])){
+
+      if(isset($_POST["kolabState"])){
+        $this->is_account = true;
+      }else{
+        $this->is_account = false;
+      }
+
       if (chkacl('unrestrictedMailSize', $this->acl == "")){
         if (isset($_POST['unrestrictedMailSize']) && $_POST['unrestrictedMailSize'] == 1){
           $this->unrestrictedMailSize= 1;
@@ -322,7 +358,9 @@ class kolabAccount extends plugin
     $this->cleanup();
     $ldap->modify ($this->attrs); 
 
-    show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/kolav account with dn '%s' failed."),$this->dn));
+    print_a($this->attrs);
+
+    show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/kolab account with dn '%s' failed."),$this->dn));
 
     /* Optionally execute a command after we're done */
     if ($this->initially_was_account == $this->is_account){
index f5d8c10753f7673b3b53acabcd5a9915be08f3fb..5a1522566cb158fb1e7be363b94b00b6056b0b94 100644 (file)
@@ -1,27 +1,40 @@
-<h2>{t}Kolab account{/t}</h2>
 
-{if $is_account ne 'true'}
+{if $mail_account ne 'true'}
+       <h2>{t}Kolab account{/t}</h2>
        {t}The kolab account is currently disabled. It's features can be adjusted if you add a mail account.{/t}
 {else}
-
+<input type="checkbox" id="kolabState" name="kolabState" value="1" {if $kolabState} checked {/if} 
+       onClick="
+       changeState('delegate_list');
+       changeState('delegate_address');
+       changeState('add_delegation');
+       changeState('delete_delegation');
+       changeState('unrestrictedMailSize');
+       changeState('calFBURL');
+       changeState('kolabFreeBusyFuture');
+">
+<b>{t}Kolab account{/t}</b>
+<br>
+<br>
 <table summary="" style="width:100%">
  <tr>
   <td style="width:50%; vertical-align:top;">
    <b><LABEL for="delegate_list">{t}Delegations{/t}</LABEL></b><br>
-   <select id="delegate_list" style="width:350px; height:100px;" name="delegate_list[]" size=15 multiple>
+   <select id="delegate_list" style="width:350px; height:100px;" name="delegate_list[]" size=15 multiple  {if !$kolabState} disabled {/if} >
     {html_options values=$kolabDelegate output=$kolabDelegate}
        <option disabled>&nbsp;</option>
    </select>
    <br>
-   <input name="delegate_address" size=30 align=middle maxlength=60
-        {$kolabDelegateACL} value="">
-   <input type=submit value="{t}Add{/t}" name="add_delegation"
-        {$kolabDelegateACL}>&nbsp;
-   <input type=submit value="{t}Delete{/t}" name="delete_delegation"
-        {$kolabDelegateACL}>
+   <input name="delegate_address" size=30 align=middle maxlength=60 {if !$kolabState} disabled {/if}
+        {$kolabDelegateACL} value="" id="delegate_address">
+   <input type=submit value="{t}Add{/t}" name="add_delegation" {if !$kolabState} disabled {/if}
+        {$kolabDelegateACL} id="add_delegation">&nbsp;
+   <input type=submit value="{t}Delete{/t}" name="delete_delegation" {if !$kolabState} disabled {/if}
+        {$kolabDelegateACL} id="delete_delegation">
    <p>
     <b>{t}Mail size{/t}</b><br>
-     &nbsp;<input type="checkbox" name="unrestrictedMailSize" value="1" {$unrestrictedMailSizeACL} {$unrestrictedMailSizeState}> {t}No mail size restriction for this account{/t}
+     &nbsp;<input type="checkbox" id='unrestrictedMailSize' name="unrestrictedMailSize" value="1" {if !$kolabState} disabled {/if}
+       {$unrestrictedMailSizeACL} {$unrestrictedMailSizeState}> {t}No mail size restriction for this account{/t}
     </p>
   </td>
   <td rowspan=2 style="border-left:1px solid #A0A0A0">
  <table summary="">
   <tr>
    <td><LABEL for="calFBURL">{t}URL{/t}</LABEL></td>
-   <td><input id="calFBURL" name="calFBURL" size=30 maxlength=60 {$calFBURLACL} value="{$calFBURL}"></td>
+   <td><input id="calFBURL" name="calFBURL" size=30 maxlength=60 {$calFBURLACL} value="{$calFBURL}" {if !$kolabState} disabled {/if}></td>
   </tr>
   <tr>
   <td><LABEL for="kolabFreeBusyFuture">{t}Future{/t}</LABEL></td>
-   <td><input id="kolabFreeBusyFuture" name="kolabFreeBusyFuture" size=5 maxlength=6 {$kolabFreeBusyFutureACL} value="{$kolabFreeBusyFuture}"> {t}days{/t}</td>
+   <td><input id="kolabFreeBusyFuture" name="kolabFreeBusyFuture" size=5 maxlength=6 i {if !$kolabState} disabled {/if}{$kolabFreeBusyFutureACL} value="{$kolabFreeBusyFuture}"> {t}days{/t}</td>
   </tr>
  </table>