Changeset 6057 in subversion
- Timestamp:
- Apr 10, 2012 4:39:36 AM (14 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/program/include/rcube_ldap.php
r6055 r6057 1674 1674 $groups[$group_id]['dn'] = $ldap_data[$i]['dn']; 1675 1675 $groups[$group_id]['name'] = $group_name; 1676 $groups[$group_id]['member_attr'] = $this->prop['member_attr']; 1677 1678 // check objectClass attributes of group and act accordingly 1679 for ($j=0; $j < $ldap_data[$i]['objectclass']['count']; $j++) { 1680 switch (strtolower($ldap_data[$i]['objectclass'][$j])) { 1681 case 'group': 1682 case 'groupofnames': 1683 case 'kolabgroupofnames': 1684 $groups[$group_id]['member_attr'] = 'member'; 1685 break; 1686 1687 case 'groupofuniquenames': 1688 case 'kolabgroupofuniquenames': 1689 $groups[$group_id]['member_attr'] = 'uniqueMember'; 1690 break; 1691 } 1692 } 1676 $groups[$group_id]['member_attr'] = $this->get_group_member_attr($ldap_data[$i]['objectclass']); 1693 1677 1694 1678 // list email attributes of a group … … 1751 1735 $new_dn = "cn=$group_name,$base_dn"; 1752 1736 $new_gid = self::dn_encode($group_name); 1753 $member_attr = $this-> prop['groups']['member_attr'];1754 $name_attr = $this->prop['groups']['name_attr'] ;1737 $member_attr = $this->get_group_member_attr(); 1738 $name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn'; 1755 1739 1756 1740 $new_entry = array( … … 1904 1888 $base_dn = $this->groups_base_dn; 1905 1889 $contact_dn = self::dn_decode($contact_id); 1906 $name_attr = $this->prop['groups']['name_attr'] ;1907 $member_attr = $this-> prop['member_attr'];1890 $name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn'; 1891 $member_attr = $this->get_group_member_attr(); 1908 1892 $add_filter = ''; 1909 1893 if ($member_attr != 'member' && $member_attr != 'uniqueMember') … … 1930 1914 } 1931 1915 return $groups; 1916 } 1917 1918 /** 1919 * Detects group member attribute name 1920 */ 1921 private function get_group_member_attr($object_classes = array()) 1922 { 1923 if (empty($object_classes)) { 1924 $object_classes = $this->prop['groups']['object_classes']; 1925 } 1926 if (!empty($object_classes)) { 1927 foreach ((array)$object_classes as $oc) { 1928 switch (strtolower($oc)) { 1929 case 'group': 1930 case 'groupofnames': 1931 case 'kolabgroupofnames': 1932 $member_attr = 'member'; 1933 break; 1934 1935 case 'groupofuniquenames': 1936 case 'kolabgroupofuniquenames': 1937 $member_attr = 'uniqueMember'; 1938 break; 1939 } 1940 } 1941 } 1942 1943 if (!empty($member_attr)) { 1944 return $member_attr; 1945 } 1946 1947 if (!empty($this->prop['groups']['member_attr'])) { 1948 return $this->prop['groups']['member_attr']; 1949 } 1950 1951 return 'member'; 1932 1952 } 1933 1953
Note: See TracChangeset
for help on using the changeset viewer.
