X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fpersonal%2Fconnectivity%2Fclass_webdavAccount.inc;h=088f0103035bd5f9f0f6d4baba0040b2cebd4e72;hb=e7b70ce242b052c5e0d0dfd45dfac5e6f9f36ba3;hp=0f4bf36bb13fa77d78b9ac0a72d46785d9512821;hpb=2bbe8bf456e82e3d603fa56bb9f169ea1a0718d8;p=gosa.git diff --git a/plugins/personal/connectivity/class_webdavAccount.inc b/plugins/personal/connectivity/class_webdavAccount.inc index 0f4bf36bb..088f01030 100644 --- a/plugins/personal/connectivity/class_webdavAccount.inc +++ b/plugins/personal/connectivity/class_webdavAccount.inc @@ -6,11 +6,6 @@ class webdavAccount extends plugin var $plHeadline= "WebDAV"; var $plDescription= "This does something"; - /* CLI vars */ - var $cli_summary= "Manage users webdav account"; - var $cli_description= "Some longer text\nfor help"; - var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); - /* attribute list for save action */ var $attributes= array(); var $objectclasses= array("gosaWebdavAccount"); @@ -42,7 +37,7 @@ class webdavAccount extends plugin $smarty->assign("tabbed", 1); } - $smarty->assign('gosaWebdavACL', chkacl($this->acl, 'gosaWebdav')); + $smarty->assign('webdavAccountACL', chkacl($this->acl, 'webdavAccount')); $display.= $smarty->fetch (get_template_path('webdav.tpl', TRUE, dirname(__FILE__))); return ($display); @@ -50,22 +45,26 @@ class webdavAccount extends plugin function remove_from_parent() { - /* Cancel if there's nothing to do here */ - if (!$this->initially_was_account){ - return; - } + if(chkacl($this->acl,"webdavAccount")==""){ + /* Cancel if there's nothing to do here */ + if (!$this->initially_was_account){ + return; + } + + plugin::remove_from_parent(); + $ldap= $this->config->get_ldap_link(); - plugin::remove_from_parent(); - $ldap= $this->config->get_ldap_link(); + $ldap->cd($this->dn); + @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, + $this->attributes, "Save"); + $this->cleanup(); + $ldap->modify ($this->attrs); - $ldap->cd($this->dn); - @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, - $this->attributes, "Save"); - $ldap->modify($this->attrs); - show_ldap_error($ldap->get_error()); + show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/webDAV account with dn '%s' failed."),$this->dn)); - /* Optionally execute a command after we're done */ - $this->handle_post_events('remove'); + /* Optionally execute a command after we're done */ + $this->handle_post_events('remove'); + } } @@ -95,25 +94,38 @@ class webdavAccount extends plugin /* Save to LDAP */ function save() { - plugin::save(); - - /* Write back to ldap */ - $ldap= $this->config->get_ldap_link(); - $ldap->cd($this->dn); - $ldap->modify($this->attrs); - show_ldap_error($ldap->get_error()); - - /* Optionally execute a command after we're done */ - if ($this->initially_was_account == $this->is_account){ - if ($this->is_modified){ - $this->handle_post_events("mofify"); + if(chkacl($this->acl,"webdavAccount")==""){ + plugin::save(); + + /* Write back to ldap */ + $ldap= $this->config->get_ldap_link(); + $ldap->cd($this->dn); + $this->cleanup(); + $ldap->modify ($this->attrs); + + show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/webDAV account with dn '%s' failed."),$this->dn)); + + /* Optionally execute a command after we're done */ + if ($this->initially_was_account == $this->is_account){ + if ($this->is_modified){ + $this->handle_post_events("mofify"); + } + } else { + $this->handle_post_events("add"); } - } else { - $this->handle_post_events("add"); } - } + /* Return plugin informations for acl handling + #FIXME This is only an enable/disable checkbox for this account, there is possibly a better solution available later */ + function plInfo() + { + return (array( + "plDescription" => _("Intranet account settings"), + "plSelfModify" => TRUE, + "plDepends" => array("objectClass" => "gosaAccount"), + "gosaWebdavAccount" => "!!! FIXME "._("WebDAV account"))); + } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: