lib/api lib/Auth

Aleksander Machniak machniak at kolabsys.com
Thu Mar 5 11:24:55 CET 2015


 lib/Auth/LDAP.php                    |   12 ++++++++----
 lib/api/kolab_api_service_domain.php |    6 +++---
 2 files changed, 11 insertions(+), 7 deletions(-)

New commits:
commit 56a0b8eb70e4567ca7f973409321a031297f96a6
Author: Aleksander Machniak <machniak at kolabsys.com>
Date:   Thu Mar 5 05:24:09 2015 -0500

    Fix "illegal offset" error and small perf. issue in domain_is_empty() (#4791)

diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php
index ce0762e..2e28c1e 100644
--- a/lib/Auth/LDAP.php
+++ b/lib/Auth/LDAP.php
@@ -448,25 +448,29 @@ class LDAP extends Net_LDAP3 {
     /**
      * Checkes if specified domain is empty (no users assigned)
      *
-     * @param string $domain Domain name
+     * @param string|array $domain Domain name or domain_info() result
      *
      * @return bool True if domain is empty, False otherwise
      */
     public function domain_is_empty($domain)
     {
-        $this->_log(LOG_DEBUG, "Auth::LDAP::domain_is_empty($domain)");
-
         $domain_name_attribute = $this->conf->get('ldap', 'domain_name_attribute');
 
         if (empty($domain_name_attribute)) {
             $domain_name_attribute = 'associateddomain';
         }
 
-        $domain = $this->domain_info($domain);
+        if (!is_array($domain)) {
+            $domain = $this->domain_info($domain);
+        }
 
         if (!empty($domain)) {
             $domain_dn   = key($domain);
             $domain_name = $domain[$domain_dn][$domain_name_attribute];
+
+            if (is_array($domain_name)) {
+                $domain_name = $domain_name[0];
+            }
         }
         else {
             return false;
diff --git a/lib/api/kolab_api_service_domain.php b/lib/api/kolab_api_service_domain.php
index dcc8778..f9910df 100644
--- a/lib/api/kolab_api_service_domain.php
+++ b/lib/api/kolab_api_service_domain.php
@@ -160,13 +160,13 @@ class kolab_api_service_domain extends kolab_api_service
             && (empty($postdata['force']) || strtolower($postdata['force']) == 'false')
         ) {
             $domain = $auth->domain_info($postdata['id']);
-
-            if ($domain['inetdomainstatus'] != 'deleted' && !$auth->domain_is_empty($postdata['id'])) {
+            if (!empty($domain) && $domain[key($domain)]['inetdomainstatus'] != 'deleted'
+                && !$auth->domain_is_empty($domain)
+            ) {
                 throw new kolab_api_exception(kolab_api_exception::DOMAIN_NOT_EMPTY);
             }
         }
 
-
         $attributes = $this->parse_input_attributes('domain', $postdata);
         $result     = $auth->domain_edit($postdata['id'], $attributes, $postdata['type_id']);
 




More information about the commits mailing list