]> source.dussan.org Git - nextcloud-server.git/commitdiff
Revert "[WIP] fix retrieval of group members and cache group members"
authorVincent Petry <pvince81@owncloud.com>
Thu, 9 Oct 2014 09:06:48 +0000 (11:06 +0200)
committerVincent Petry <pvince81@owncloud.com>
Thu, 9 Oct 2014 09:06:48 +0000 (11:06 +0200)
apps/user_ldap/group_ldap.php

index b8ca041bce328e3746abbecb3d9ac4d2adef32ae..0d3a70575bae1e46922b5643242fe40471c3dd2f 100644 (file)
@@ -29,11 +29,6 @@ use OCA\user_ldap\lib\BackendUtility;
 class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
        protected $enabled = false;
 
-       /**
-        * @var string[] $cachedGroupMembers array of users with gid as key
-        */
-       protected $cachedGroupMembers = array();
-
        public function __construct(Access $access) {
                parent::__construct($access);
                $filter = $this->access->connection->ldapGroupFilter;
@@ -61,21 +56,6 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
                }
 
                $userDN = $this->access->username2dn($uid);
-
-               if(isset($this->cachedGroupMembers[$gid])) {
-                       $isInGroup = in_array($userDN, $this->cachedGroupMembers[$gid]);
-                       return $isInGroup;
-               }
-
-               $cacheKeyMembers = 'inGroup-members:'.$gid;
-               if($this->access->connection->isCached($cacheKeyMembers)) {
-                       $members = $this->access->connection->getFromCache($cacheKeyMembers);
-                       $this->cachedGroupMembers[$gid] = $members;
-                       $isInGroup = in_array($userDN, $members);
-                       $this->access->connection->writeToCache($cacheKey, $isInGroup);
-                       return $isInGroup;
-               }
-
                $groupDN = $this->access->groupname2dn($gid);
                // just in case
                if(!$groupDN || !$userDN) {
@@ -90,9 +70,8 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
                }
 
                //usually, LDAP attributes are said to be case insensitive. But there are exceptions of course.
-               $members = $this->_groupMembers($groupDN);
-               $members = array_keys($members); // uids are returned as keys
-               if(!is_array($members) || count($members) === 0) {
+               $members = array_keys($this->_groupMembers($groupDN));
+               if(!$members) {
                        $this->access->connection->writeToCache($cacheKey, false);
                        return false;
                }
@@ -114,8 +93,6 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
 
                $isInGroup = in_array($userDN, $members);
                $this->access->connection->writeToCache($cacheKey, $isInGroup);
-               $this->access->connection->writeToCache($cacheKeyMembers, $members);
-               $this->cachedGroupMembers[$gid] = $members;
 
                return $isInGroup;
        }