From bcc2f4949c451d6f7d4ada0e0ba210ea6eea1d48 Mon Sep 17 00:00:00 2001 From: hickert Date: Wed, 26 Jul 2006 04:40:41 +0000 Subject: [PATCH] Made intranet Account compatible with new acls git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4296 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../connectivity/class_intranetAccount.inc | 232 +++++++++--------- 1 file changed, 118 insertions(+), 114 deletions(-) diff --git a/plugins/personal/connectivity/class_intranetAccount.inc b/plugins/personal/connectivity/class_intranetAccount.inc index 76ef17186..49c540d27 100644 --- a/plugins/personal/connectivity/class_intranetAccount.inc +++ b/plugins/personal/connectivity/class_intranetAccount.inc @@ -1,12 +1,12 @@ - \version 1.00 - \date 1.07.2005 + \author Harald Falk + \version 1.00 + \date 1.07.2005 - \brief Enables Apache authentification for Intranet through openldap with .htaccess files -*/ + \brief Enables Apache authentification for Intranet through openldap with .htaccess files + */ class intranetAccount extends plugin { @@ -21,158 +21,162 @@ class intranetAccount extends plugin var $objectclasses= array("gosaIntranetAccount"); /*! \brief Konstructor - - \param $config The Config Object used to initialise plugin - \param $dn The DN of the currently edited entry - \author Harald Falk - \version 1.00 - \date 1.07.2005 - */ + + \param $config The Config Object used to initialise plugin + \param $dn The DN of the currently edited entry + \author Harald Falk + \version 1.00 + \date 1.07.2005 + */ function intranetAccount ($config, $dn= NULL) { - plugin::plugin ($config, $dn); + plugin::plugin ($config, $dn); } /*! - \brief General execution - \author Harald Falk - \version 1.00 - \date 1.07.2005 - - Load smarty Template and assign needed smarty vars - */ - - - function execute() - { - /* Call parent execute */ -// plugin::execute(); - - $display= ""; + \brief General execution + \author Harald Falk + \version 1.00 + \date 1.07.2005 - $smarty= get_smarty(); + Load smarty Template and assign needed smarty vars + */ - if ($this->is_account){ - $smarty->assign("intranetState", "checked"); - $smarty->assign("wstate", ""); - } else { - $smarty->assign("wstate", "disabled"); - $smarty->assign("intranetState", ""); - } - //! Ever assign vars to smarty in both cases, to avoid php errors (missing variable aso. ) - if ($this->parent != NULL){ - $smarty->assign("tabbed", 1); - }else{ - $smarty->assign("tabbed", 0); - } - - $smarty->assign('gosaIntranetACL', chkacl($this->acl, 'intranetAccount')); - - $display.= $smarty->fetch (get_template_path('intranet.tpl', TRUE, dirname(__FILE__))); - return ($display); + function execute() + { + /* Call parent execute */ + // plugin::execute(); + + $display= ""; + + $smarty= get_smarty(); + + if ($this->is_account){ + $smarty->assign("intranetState", "checked"); + $smarty->assign("wstate", ""); + } else { + $smarty->assign("wstate", "disabled"); + $smarty->assign("intranetState", ""); + } + + //! Ever assign vars to smarty in both cases, to avoid php errors (missing variable aso. ) + if ($this->parent != NULL){ + $smarty->assign("tabbed", 1); + }else{ + $smarty->assign("tabbed", 0); + } + + if(($this->is_account && $this->acl_is_removeable()) || (!$this->is_account && $this->acl_is_createable())) { + $smarty->assign('gosaIntranetACL', ""); + }else{ + $smarty->assign('gosaIntranetACL', " disabled "); + } + + $display.= $smarty->fetch (get_template_path('intranet.tpl', TRUE, dirname(__FILE__))); + return ($display); } /*! - \brief Delete ext from User - \author Harald Falk - \version 1.00 - \date 1.07.2005 - Handles deletion of this object - */ + \brief Delete ext from User + \author Harald Falk + \version 1.00 + \date 1.07.2005 + Handles deletion of this object + */ function remove_from_parent() { - if(chkacl($this->acl, 'intranetAccount') == ""){ - plugin::remove_from_parent(); - $ldap= $this->config->get_ldap_link(); + if($this->acl_is_removeable()){ + 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"); + $this->cleanup(); + $ldap->modify ($this->attrs); - show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/intranet account with dn '%s' failed."),$this->dn)); + show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/intranet account with dn '%s' failed."),$this->dn)); - /* Optionally execute a command after we're done */ - $this->postremove(); - } + /* Optionally execute a command after we're done */ + $this->postremove(); + } } /*! - \brief handles Post data - \author Harald Falk - \version 1.00 - \date 1.07.2005 - Save data to object - */ + \brief handles Post data + \author Harald Falk + \version 1.00 + \date 1.07.2005 + Save data to object + */ function save_object() { - /* Do we need to flip is_account state? */ - if (isset($_POST['connectivityTab'])){ - if (isset($_POST['intranet'])){ - if (!$this->is_account && $_POST['intranet'] == "B"){ - $this->is_account= TRUE; - } - } else { - $this->is_account= FALSE; - } + /* Do we need to flip is_account state? */ + if (isset($_POST['connectivityTab'])){ + if (isset($_POST['intranet'])){ + if (!$this->is_account && $_POST['intranet'] == "B"){ + if($this->acl_is_createable()){ + $this->is_account= TRUE; + } } - - plugin::save_object(); - if (isset($_POST["INTRANETStatus"])){ - $this->INTRANETStatus = "disabled"; - } else { - $this->INTRANETStatus = "enabled"; - } + } else { + if($this->acl_is_removeable()){ + $this->is_account= FALSE; + } + } + } + + plugin::save_object(); + if (isset($_POST["INTRANETStatus"])){ + $this->INTRANETStatus = "disabled"; + } else { + $this->INTRANETStatus = "enabled"; + } } /*! \brief Handles LDAP saves - \author Harald Falk - \version 1.00 - \date 1.07.2005 - Save objectClass for User in LDAP - - */ + \author Harald Falk + \version 1.00 + \date 1.07.2005 + Save objectClass for User in LDAP + + */ function save() { - if(chkacl($this->acl, 'intranetAccount') == ""){ - 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/intranet account with dn '%s' failed."),$this->dn)); - - /* Optionally execute a command after we're done */ - $this->postcreate(); - } + 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/intranet account with dn '%s' failed."),$this->dn)); + + /* Optionally execute a command after we're done */ + $this->postcreate(); } - /* 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 */ + /* Return plugin informations for acl handling */ function plInfo() { return (array( "plShortName" => _("Intranet"), - "plDepends" => array("connectivity"), + "plDepends" => array("user"), "plPriority" => 1, // Position in tabs "plSection" => "personal", // This belongs to personal - "plCategory" => array("gosaAccount"), + "plCategory" => array("users"), "plOptions" => array(), "plDescription" => _("Intranet account settings"), "plSelfModify" => TRUE, - "plProvidedAcls" => array( - "gosaIntranetAccount" => "!!! FIXME "._("GOsa intranet account"))) - ); + "plProvidedAcls" => array() + )); } } -- 2.30.2