Use class vars.
authorGunnar Wrobel <p@rdus.de>
Wed, 18 Mar 2009 21:26:46 +0000 (21:26 +0000)
committerGunnar Wrobel <p@rdus.de>
Wed, 18 Mar 2009 21:26:46 +0000 (21:26 +0000)
Adapt to the way we handle Horde_Kolab_Server_Object instances now.

framework/Kolab_Server/lib/Horde/Kolab/Server/Object/address.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/adminrole.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/distlist.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/domainmaintainer.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/group.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/server.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/sharedfolder.php
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/user.php

index b33d8bd..e4d8ec6 100644 (file)
@@ -37,38 +37,13 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object
     public static $filter = '(&(objectclass=inetOrgPerson)(!(uid=*))(sn=*))';
 
     /**
-     * The attributes supported by this class
-     *
-     * @var array
-     */
-    public $supported_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_CN,
-        KOLAB_ATTR_GIVENNAME,
-        KOLAB_ATTR_FN,
-        KOLAB_ATTR_LNFN,
-        KOLAB_ATTR_MAIL,
-        KOLAB_ATTR_DELETED,
-    );
-
-    /**
      * Attributes derived from the LDAP values.
      *
      * @var array
      */
     public $derived_attributes = array(
-        KOLAB_ATTR_LNFN,
-        KOLAB_ATTR_FNLN,
-    );
-
-    /**
-     * The attributes required when creating an object of this class.
-     *
-     * @var array
-     */
-    public $required_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_GIVENNAME,
+        Horde_Kolab_Server_Object::ATTRIBUTE_LNFN,
+        Horde_Kolab_Server_Object::ATTRIBUTE_FNLN,
     );
 
     /**
@@ -77,9 +52,9 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object
      * @var array
      */
     protected $object_classes = array(
-        KOLAB_OC_TOP,
-        KOLAB_OC_INETORGPERSON,
-        KOLAB_OC_KOLABINETORGPERSON,
+        Horde_Kolab_Server_Object::OBJECTCLASS_TOP,
+        Horde_Kolab_Server_Object::OBJECTCLASS_INETORGPERSON,
+        Horde_Kolab_Server_Object::OBJECTCLASS_KOLABINETORGPERSON,
     );
 
     /**
@@ -93,7 +68,7 @@ class Horde_Kolab_Server_Object_address extends Horde_Kolab_Server_Object
     {
         if (!isset($attrs)) {
             $attrs = array(
-                KOLAB_ATTR_LNFN,
+                Horde_Kolab_Server_Object::ATTRIBUTE_LNFN,
             );
         }
         return parent::toHash($attrs);
index 1a914c5..5230e91 100644 (file)
@@ -36,40 +36,13 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object
     public static $filter = '(&(cn=*)(objectClass=inetOrgPerson)(!(uid=manager))(sn=*))';
 
     /**
-     * The attributes supported by this class
-     *
-     * @var array
-     */
-    public $supported_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_CN,
-        KOLAB_ATTR_GIVENNAME,
-        KOLAB_ATTR_FN,
-        KOLAB_ATTR_SID,
-        KOLAB_ATTR_USERPASSWORD,
-        KOLAB_ATTR_DELETED,
-    );
-
-    /**
-     * The attributes required when creating an object of this class.
-     *
-     * @var array
-     */
-    public $required_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_GIVENNAME,
-        KOLAB_ATTR_USERPASSWORD,
-        KOLAB_ATTR_SID,
-    );
-
-    /**
      * Attributes derived from the LDAP values.
      *
      * @var array
      */
     public $derived_attributes = array(
-        KOLAB_ATTR_ID,
-        KOLAB_ATTR_LNFN,
+        Horde_Kolab_Server_Object::ATTRIBUTE_ID,
+        Horde_Kolab_Server_Object::ATTRIBUTE_LNFN,
     );
 
     /**
@@ -78,9 +51,9 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object
      * @var array
      */
     protected $object_classes = array(
-        KOLAB_OC_TOP,
-        KOLAB_OC_INETORGPERSON,
-        KOLAB_OC_KOLABINETORGPERSON,
+        Horde_Kolab_Server_Object::OBJECTCLASS_TOP,
+        Horde_Kolab_Server_Object::OBJECTCLASS_INETORGPERSON,
+        Horde_Kolab_Server_Object::OBJECTCLASS_KOLABINETORGPERSON,
     );
 
     /**
@@ -102,8 +75,8 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object
     {
         if (!isset($attrs)) {
             $attrs = array(
-                KOLAB_ATTR_SID,
-                KOLAB_ATTR_LNFN,
+                Horde_Kolab_Server_Object::ATTRIBUTE_SID,
+                Horde_Kolab_Server_Object::ATTRIBUTE_LNFN,
             );
         }
         return parent::toHash($attrs);
@@ -138,10 +111,10 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object
             $parts           = split(',', $this->required_group);
             list($groupname) = sscanf($parts[0], 'cn=%s');
 
-            $result = $this->db->add(array(KOLAB_ATTR_CN => $groupname,
-                                            'type' => 'Horde_Kolab_Server_Object_group',
-                                            KOLAB_ATTR_MEMBER => $members,
-                                            KOLAB_ATTR_VISIBILITY => false));
+            $result = $this->db->add(array(Horde_Kolab_Server_Object::ATTRIBUTE_CN => $groupname,
+                                           'type' => 'Horde_Kolab_Server_Object_group',
+                                           Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER => $members,
+                                           Horde_Kolab_Server_Object::ATTRIBUTE_VISIBILITY => false));
             if (is_a($result, 'PEAR_Error')) {
                 return $result;
             }
@@ -153,7 +126,7 @@ class Horde_Kolab_Server_Object_adminrole extends Horde_Kolab_Server_Object
             if ($result === false) {
                 $members   = $admin_group->getMembers();
                 $members[] = $this->uid;
-                $admin_group->save(array(KOLAB_ATTR_MEMBER => $members));
+                $admin_group->save(array(Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER => $members));
             }
         }
         return parent::save($info);
index 3afc3cf..f27985c 100644 (file)
@@ -34,14 +34,4 @@ class Horde_Kolab_Server_Object_distlist extends Horde_Kolab_Server_Object_group
      * @var string
      */
     public static $filter = '(&(objectClass=kolabGroupOfNames)(mail=*))';
-
-
-    /**
-     * The attributes required when creating an object of this class.
-     *
-     * @var array
-     */
-    public $required_attributes = array(
-        KOLAB_ATTR_MAIL,
-    );
 };
index 17565ac..c04fa67 100644 (file)
@@ -29,27 +29,14 @@ class Horde_Kolab_Server_Object_domainmaintainer extends Horde_Kolab_Server_Obje
 {
 
     /**
-     * The attributes required when creating an object of this class.
-     *
-     * @var array
-     */
-    public $required_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_GIVENNAME,
-        KOLAB_ATTR_USERPASSWORD,
-        KOLAB_ATTR_SID,
-        KOLAB_ATTR_DOMAIN,
-    );
-
-    /**
      * Attributes derived from the LDAP values.
      *
      * @var array
      */
     public $derived_attributes = array(
-        KOLAB_ATTR_ID,
-        KOLAB_ATTR_LNFN,
-        KOLAB_ATTR_DOMAIN,
+        Horde_Kolab_Server_Object::ATTRIBUTE_ID,
+        Horde_Kolab_Server_Object::ATTRIBUTE_LNFN,
+        Horde_Kolab_Server_Object::ATTRIBUTE_DOMAIN,
     );
 
     /**
@@ -71,9 +58,9 @@ class Horde_Kolab_Server_Object_domainmaintainer extends Horde_Kolab_Server_Obje
     {
         if (!isset($attrs)) {
             $attrs = array(
-                KOLAB_ATTR_SID,
-                KOLAB_ATTR_LNFN,
-                KOLAB_ATTR_DOMAIN,
+                Horde_Kolab_Server_Object::ATTRIBUTE_SID,
+                Horde_Kolab_Server_Object::ATTRIBUTE_LNFN,
+                Horde_Kolab_Server_Object::ATTRIBUTE_DOMAIN,
             );
         }
         return parent::toHash($attrs);
@@ -88,7 +75,7 @@ class Horde_Kolab_Server_Object_domainmaintainer extends Horde_Kolab_Server_Obje
      */
     public function save($info)
     {
-        foreach ($info[KOLAB_ATTR_DOMAIN] as $domain) {
+        foreach ($info[Horde_Kolab_Server_Object::ATTRIBUTE_DOMAIN] as $domain) {
             $domain_uid = sprintf('cn=%s,cn=domain,cn=internal,%s',
                                   $domain, $this->db->getBaseUid());
 
@@ -100,8 +87,8 @@ class Horde_Kolab_Server_Object_domainmaintainer extends Horde_Kolab_Server_Obje
             }
             if (!$domain_group->exists()) {
                 $members = array($this->uid);
-                $domain_group->save(array(KOLAB_ATTR_CN => $domain,
-                                          KOLAB_ATTR_MEMBER => $members));
+                $domain_group->save(array(Horde_Kolab_Server_Object::ATTRIBUTE_CN => $domain,
+                                          Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER => $members));
             } else {
                 $result = $domain_group->isMember($this->uid);
                 if (is_a($result, 'PEAR_Error')) {
@@ -110,7 +97,7 @@ class Horde_Kolab_Server_Object_domainmaintainer extends Horde_Kolab_Server_Obje
                 if ($result === false) {
                     $members   = $domain_group->getMembers();
                     $members[] = $this->uid;
-                    $domain_group->save(array(KOLAB_ATTR_MEMBER => $members));
+                    $domain_group->save(array(Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER => $members));
                 }
             }
         }
index 39c4fc8..3578c55 100644 (file)
@@ -36,34 +36,13 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
     public static $filter = '(objectClass=kolabGroupOfNames)';
 
     /**
-     * The attributes supported by this class
-     *
-     * @var array
-     */
-    public $supported_attributes = array(
-        KOLAB_ATTR_CN,
-        KOLAB_ATTR_MAIL,
-        KOLAB_ATTR_MEMBER,
-        KOLAB_ATTR_DELETED,
-    );
-
-    /**
      * Attributes derived from the LDAP values.
      *
      * @var array
      */
     public $derived_attributes = array(
-        KOLAB_ATTR_ID,
-        KOLAB_ATTR_VISIBILITY,
-    );
-
-    /**
-     * The attributes required when creating an object of this class.
-     *
-     * @var array
-     */
-    public $required_attributes = array(
-        KOLAB_ATTR_CN,
+        Horde_Kolab_Server_Object::ATTRIBUTE_ID,
+        Horde_Kolab_Server_Object::ATTRIBUTE_VISIBILITY,
     );
 
     /**
@@ -72,8 +51,9 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
      * @var array
      */
     protected $object_classes = array(
-        KOLAB_OC_TOP,
-        KOLAB_OC_KOLABGROUPOFNAMES,
+        Horde_Kolab_Server_Object::OBJECTCLASS_TOP,
+        Horde_Kolab_Server_Object::OBJECTCLASS_INETORGPERSON,
+        Horde_Kolab_Server_Object::OBJECTCLASS_KOLABGROUPOFNAMES,
     );
 
     /**
@@ -81,7 +61,7 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
      *
      * @var string
      */
-    public $sort_by = KOLAB_ATTR_MAIL;
+    public $sort_by = Horde_Kolab_Server_Object::ATTRIBUTE_MAIL;
 
     /**
      * Derive an attribute value.
@@ -93,7 +73,7 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
     protected function derive($attr)
     {
         switch ($attr) {
-        case KOLAB_ATTR_VISIBILITY:
+        case self::ATTRIBUTE_VISIBILITY:
             return strpos($this->_uid, 'cn=internal') === false;
         default:
             return parent::derive($attr);
@@ -111,9 +91,9 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
     {
         if (!isset($attrs)) {
             $attrs = array(
-                KOLAB_ATTR_ID,
-                KOLAB_ATTR_MAIL,
-                KOLAB_ATTR_VISIBILITY,
+                Horde_Kolab_Server_Object::ATTRIBUTE_ID,
+                Horde_Kolab_Server_Object::ATTRIBUTE_MAIL,
+                Horde_Kolab_Server_Object::ATTRIBUTE_VISIBILITY,
             );
         }
         return parent::toHash($attrs);
@@ -163,7 +143,7 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
      */
     public function getMembers()
     {
-        return $this->_get(KOLAB_ATTR_MEMBER, false);
+        return $this->_get(Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER, false);
     }
 
     /**
@@ -180,7 +160,7 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
             return $members;
         }
         if (!in_array($member, $members)) {
-            $this->_cache[KOLAB_ATTR_MEMBER][] = $member;
+            $this->_cache[Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER][] = $member;
         } else {
             return PEAR::raiseError(_("The UID %s is already a member of the group %s!"),
                                     $member, $this->_uid);
@@ -202,8 +182,9 @@ class Horde_Kolab_Server_Object_group extends Horde_Kolab_Server_Object
             return $members;
         }
         if (in_array($member, $members)) {
-            $this->_cache[KOLAB_ATTR_MEMBER] = array_diff($this->_cache[KOLAB_ATTR_MEMBER],
-                                                          array($member));
+            $this->_cache[Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER] =
+                array_diff($this->_cache[Horde_Kolab_Server_Object::ATTRIBUTE_MEMBER],
+                           array($member));
         } else {
             return PEAR::raiseError(_("The UID %s is no member of the group %s!"),
                                     $member, $this->_uid);
index be20004..42a7f12 100644 (file)
@@ -41,7 +41,7 @@ class Horde_Kolab_Server_Object_server extends Horde_Kolab_Server_Object
      * @var array
      */
     public $supported_attributes = array(
-        KOLAB_ATTR_FBPAST,
+        Horde_Kolab_Server_Object::ATTRIBUTE_FBPAST,
     );
 
 }
\ No newline at end of file
index 7c0ec41..e904ebd 100644 (file)
@@ -37,38 +37,13 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object
     public static $filter = '(objectClass=kolabSharedFolder)';
 
     /**
-     * The attributes supported by this class
-     *
-     * @var array
-     */
-    public $supported_attributes = array(
-        KOLAB_ATTR_CN,
-        KOLAB_ATTR_DELETED,
-        KOLAB_ATTR_FOLDERTYPE,
-        KOLAB_ATTR_HOMESERVER,
-        KOLAB_ATTR_IMAPHOST,
-        KOLAB_ATTR_QUOTA,
-        KOLAB_ATTR_ACL,
-    );
-
-    /**
-     * The attributes required when creating an object of this class.
-     *
-     * @var array
-     */
-    public $required_attributes = array(
-        KOLAB_ATTR_CN,
-        KOLAB_ATTR_HOMESERVER,
-    );
-
-    /**
      * The ldap classes for this type of object.
      *
      * @var array
      */
     protected $object_classes = array(
-        KOLAB_OC_TOP,
-        KOLAB_OC_KOLABSHAREDFOLDER,
+        Horde_Kolab_Server_Object::OBJECTCLASS_TOP,
+        Horde_Kolab_Server_Object::OBJECTCLASS_KOLABSHAREDFOLDER,
     );
 
     /**
@@ -96,9 +71,9 @@ class Horde_Kolab_Server_Object_sharedfolder extends Horde_Kolab_Server_Object
     {
         if (!isset($attrs)) {
             $attrs = array(
-                KOLAB_ATTR_CN,
-                KOLAB_ATTR_HOMESERVER,
-                KOLAB_ATTR_FOLDERTYPE,
+                Horde_Kolab_Server_Object::ATTRIBUTE_CN,
+                Horde_Kolab_Server_Object::ATTRIBUTE_HOMESERVER,
+                Horde_Kolab_Server_Object::ATTRIBUTE_FOLDERTYPE,
             );
         }
         return parent::toHash($attrs);
index 56d1cc4..85beac2 100644 (file)
 class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
 {
 
+    /** Define attributes specific to this object type */
+    const ATTRIBUTE_USERTYPE = 'usertype';
+
+    /** Define the possible Kolab user types */
+    const USERTYPE_STANDARD = 0;
+    const USERTYPE_INTERNAL = 1;
+    const USERTYPE_GROUP    = 2;
+    const USERTYPE_RESOURCE = 3;
+
     /**
      * The LDAP filter to retrieve this object type
      *
@@ -41,22 +50,7 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
      *
      * @var array
      */
-    public $supported_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_CN,
-        KOLAB_ATTR_GIVENNAME,
-        KOLAB_ATTR_FN,
-        KOLAB_ATTR_SID,
-        KOLAB_ATTR_USERPASSWORD,
-        KOLAB_ATTR_MAIL,
-        KOLAB_ATTR_DELETED,
-        KOLAB_ATTR_IMAPHOST,
-        KOLAB_ATTR_FREEBUSYHOST,
-        KOLAB_ATTR_HOMESERVER,
-        KOLAB_ATTR_KOLABDELEGATE,
-        KOLAB_ATTR_IPOLICY,
-        KOLAB_ATTR_FBFUTURE,
-    );
+    public $supported_attributes = false;
 
     /**
      * Attributes derived from the LDAP values.
@@ -64,10 +58,11 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
      * @var array
      */
     public $derived_attributes = array(
-        KOLAB_ATTR_ID,
-        KOLAB_ATTR_USERTYPE,
-        KOLAB_ATTR_LNFN,
-        KOLAB_ATTR_FNLN,
+        'id',
+        'usertype',
+        //FIXME: Do we really want to have this type of functionality within this library?
+        'lnfn',
+        'fnln',
     );
 
     /**
@@ -75,13 +70,7 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
      *
      * @var array
      */
-    public $required_attributes = array(
-        KOLAB_ATTR_SN,
-        KOLAB_ATTR_GIVENNAME,
-        KOLAB_ATTR_USERPASSWORD,
-        KOLAB_ATTR_MAIL,
-        KOLAB_ATTR_HOMESERVER,
-    );
+    public $required_attributes = false;
 
     /**
      * The ldap classes for this type of object.
@@ -89,10 +78,10 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
      * @var array
      */
     protected $object_classes = array(
-        KOLAB_OC_TOP,
-        KOLAB_OC_INETORGPERSON,
-        KOLAB_OC_KOLABINETORGPERSON,
-        KOLAB_OC_HORDEPERSON,
+        self::OBJECTCLASS_TOP,
+        self::OBJECTCLASS_INETORGPERSON,
+        self::OBJECTCLASS_KOLABINETORGPERSON,
+        self::OBJECTCLASS_HORDEPERSON,
     );
 
     /**
@@ -135,15 +124,15 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
     protected function derive($attr)
     {
         switch ($attr) {
-        case KOLAB_ATTR_USERTYPE:
+        case self::ATTRIBUTE_USERTYPE:
             if (strpos($this->_uid, 'cn=internal')) {
-                return KOLAB_UT_INTERNAL;
+                return self::USERTYPE_INTERNAL;
             } else if (strpos($this->_uid, 'cn=group')) {
-                return KOLAB_UT_GROUP;
+                return self::USERTYPE_GROUP;
             } else if (strpos($this->_uid, 'cn=resource')) {
-                return KOLAB_UT_RESOURCE;
+                return self::USERTYPE_RESOURCE;
             } else {
-                return KOLAB_UT_STANDARD;
+                return self::USERTYPE_STANDARD;
             }
         default:
             return parent::derive($attr);
@@ -161,10 +150,10 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
     {
         if (!isset($attrs)) {
             $attrs = array(
-                KOLAB_ATTR_SID,
-                KOLAB_ATTR_FN,
-                KOLAB_ATTR_MAIL,
-                KOLAB_ATTR_USERTYPE,
+                self::ATTRIBUTE_SID,
+                self::ATTRIBUTE_FN,
+                self::ATTRIBUTE_MAIL,
+                self::ATTRIBUTE_USERTYPE,
             );
         }
         return parent::toHash($attrs);
@@ -178,7 +167,7 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
      */
     public function getGroups()
     {
-        return $this->_db->getGroups($this->_uid);
+        return $this->db->getGroups($this->uid);
     }
 
     /**
@@ -196,7 +185,7 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
 
         switch ($server_type) {
         case 'freebusy':
-            $server = $this->get(KOLAB_ATTR_FREEBUSYHOST);
+            $server = $this->get(self::ATTRIBUTE_FREEBUSYHOST);
             if (!empty($server)) {
                 return $server;
             }
@@ -214,13 +203,13 @@ class Horde_Kolab_Server_Object_user extends Horde_Kolab_Server_Object
                 return 'https://' . $server . '/freebusy';
             }
         case 'imap':
-            $server = $this->get(KOLAB_ATTR_IMAPHOST);
+            $server = $this->get(self::ATTRIBUTE_IMAPHOST);
             if (!empty($server)) {
                 return $server;
             }
         case 'homeserver':
         default:
-            $server = $this->get(KOLAB_ATTR_HOMESERVER);
+            $server = $this->get(self::ATTRIBUTE_HOMESERVER);
             if (empty($server)) {
                 $server = $_SERVER['SERVER_NAME'];
             }