Code

Updated trunk, introduced gosa-core
[gosa.git] / plugins / personal / connectivity / class_phpgwAccount.inc
1 <?php
2 class phpgwAccount extends plugin
3 {
4   /* Definitions */
5   var $plHeadline= "PHPGroupware";
6   var $plDescription= "This does something";
8   /* GW attributes */
9   var $phpgwAccountExpires= "-1";
10   var $phpgwAccountStatus= "A";
11   var $phpgwAccountType= "u";
13   /* attribute list for save action */
14   var $attributes= array("phpgwAccountExpires", "phpgwAccountStatus", "phpgwAccountType");
15   var $objectclasses= array("phpgwAccount");
16   var $ReadOnly = false;
18   var $uid  = "";
19   var $view_logged = FALSE;
21   function phpgwAccount (&$config, $dn= NULL)
22   {
23     plugin::plugin ($config, $dn);
25     /* Setting uid to default */
26     if(isset($this->attrs['uid'][0])){
27       $this->uid = $this->attrs['uid'][0];
28     }
29   }
31   function execute()
32   {
33         /* Call parent execute */
34 //      plugin::execute();
35  
36     /* Log view */
37     if($this->is_account && !$this->view_logged){
38       $this->view_logged = TRUE;
39       new log("view","users/".get_class($this),$this->dn);
40     }
41  
42     /* Show tab dialog headers */
43     $display= "";
45     /* Show main page */
46     $smarty= get_smarty();
48     /* Load attributes */
49     foreach($this->attributes as $val){
50       $smarty->assign("$val", $this->$val);
51     }
52     if ($this->is_account){
53       $smarty->assign("phpgwState", "checked");
54     } else {
55       $smarty->assign("phpgwState", "");
56     }
58     if((!$this->ReadOnly)&&(($this->is_account && $this->acl_is_removeable()) || (!$this->is_account && $this->acl_is_createable()))) {
59       $smarty->assign('phpgwAccountACL', "");
60     }else{
61       $smarty->assign('phpgwAccountACL', " disabled ");
62     }
64     $display.= $smarty->fetch (get_template_path('phpgw.tpl', TRUE, dirname(__FILE__)));
65     return ($display);
66   }
68   function remove_from_parent()
69   {
70     if($this->acl_is_removeable()){
71       /* Cancel if there's nothing to do here */
72       if (!$this->initially_was_account){
73         return;
74       }
76       plugin::remove_from_parent();
77       $ldap= $this->config->get_ldap_link();
79       $ldap->cd($this->dn);
80       @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
81           $this->attributes, "Save");
82       $this->cleanup();
83       $ldap->modify ($this->attrs); 
85       show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/PHPgw account with dn '%s' failed."),$this->dn));
87       new log("remove","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
89       /* Optionally execute a command after we're done */
90       $this->handle_post_events('remove',array("uid" => $this->uid));
91     }
92   }
95   /* Save data to object */
96   function save_object()
97   {
98     /* Do we need to flip is_account state? */
99     if (isset($_POST['connectivityTab'])){
100       if (isset($_POST['phpgw'])){
101         if (!$this->is_account && $_POST['phpgw'] == "B"){
102           if($this->acl_is_createable()){
103             $this->is_account= TRUE;
104           }
105         }
106       } else {
107         if($this->acl_is_removeable()){
108           $this->is_account= FALSE;
109         }
110       }
111     }
113     plugin::save_object();
114     if (isset($_POST["phpgwStatus"])){
115       $this->phpgwStatus = "disabled";
116     } else {
117       $this->phpgwStatus = "enabled";
118     }
119   }
122   /* Save to LDAP */
123   function save()
124   {
125     plugin::save();
127     /* Write back to ldap */
128     $ldap= $this->config->get_ldap_link();
129     $ldap->cd($this->dn);
130     $this->cleanup();
131     $ldap->modify ($this->attrs); 
133     if($this->initially_was_account){
134       new log("modify","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
135     }else{
136       new log("create","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
137     }
139     show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/PHPgw account with dn '%s' failed."),$this->dn));
141     /* Optionally execute a command after we're done */
142     if ($this->initially_was_account == $this->is_account){
143       if ($this->is_modified){
144         $this->handle_post_events("modify",array("uid" => $this->uid));
145       }
146     } else {
147       $this->handle_post_events("add",array("uid" => $this->uid));
148     }
150   }
153   /* Return plugin informations for acl handling */
154   static function plInfo()
155   {
156     return (array(
157           "plShortName"     => _("PHP GW"),
158           "plDescription"   => _("PHP GW account settings")."&nbsp;:&nbsp;<u>"._("Connectivity addon")."</u>",
159           "plSelfModify"    => TRUE,
160           "plDepends"       => array("user"),
161           "plPriority"      => 24,                                 // Position in tabs
162           "plSection"     => array("personal" => _("My account")),
163           "plCategory"    => array("users"),
164           "plOptions"       => array(),
166           "plProvidedAcls"  => array()
167           ));
168   }
171 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
172 ?>