]> source.dussan.org Git - nextcloud-server.git/commitdiff
Remove confusingly names \OC\User\Manager::delete and fix the automatic cache cleanup...
authorRobin Appelman <icewind@owncloud.com>
Wed, 5 Nov 2014 14:45:58 +0000 (15:45 +0100)
committerRobin Appelman <icewind@owncloud.com>
Wed, 5 Nov 2014 14:45:58 +0000 (15:45 +0100)
lib/private/user.php
lib/private/user/manager.php
tests/lib/app.php
tests/lib/user/manager.php

index 3c23c19b015cd87487d8ec90f12f03dabe2b476f..2358f4a14e43290dedd88ad64f3361b9130d74c4 100644 (file)
@@ -211,9 +211,6 @@ class OC_User {
 
                                // Delete the users entry in the storage table
                                \OC\Files\Cache\Storage::remove('home::' . $uid);
-
-                               // Remove it from the Cache
-                               self::getManager()->delete($uid);
                        }
 
                        return true;
index 5c155c27abab6cd4a1ea3ef8672ab7d8a52e24a1..4d1612a35cec0df0828dcf35593a5d38cbc596cd 100644 (file)
@@ -46,17 +46,17 @@ class Manager extends PublicEmitter implements IUserManager {
         */
        public function __construct($config = null) {
                $this->config = $config;
-               $cachedUsers = $this->cachedUsers;
+               $cachedUsers = &$this->cachedUsers;
                $this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
-                       $i = array_search($user, $cachedUsers);
-                       if ($i !== false) {
-                               unset($cachedUsers[$i]);
-                       }
+                       /** @var \OC\User\User $user */
+                       unset($cachedUsers[$user->getUID()]);
                });
                $this->listen('\OC\User', 'postLogin', function ($user) {
+                       /** @var \OC\User\User $user */
                        $user->updateLastLoginTimestamp();
                });
                $this->listen('\OC\User', 'postRememberedLogin', function ($user) {
+                       /** @var \OC\User\User $user */
                        $user->updateLastLoginTimestamp();
                });
        }
@@ -134,20 +134,6 @@ class Manager extends PublicEmitter implements IUserManager {
                return ($user !== null);
        }
 
-       /**
-        * remove deleted user from cache
-        *
-        * @param string $uid
-        * @return bool
-        */
-       public function delete($uid) {
-               if (isset($this->cachedUsers[$uid])) {
-                       unset($this->cachedUsers[$uid]);
-                       return true;
-               }
-               return false;
-       }
-
        /**
         * Check if the password is valid for the user
         *
index e538ebec8a0fb2f66cb487e34167ae26272783a4..5bce3b8c3e62a314a63b8fd5eeaf15757ca31040 100644 (file)
@@ -360,10 +360,7 @@ class Test_App extends PHPUnit_Framework_TestCase {
                $user1->delete();
                $user2->delete();
                $user3->delete();
-               // clear user cache...
-               $userManager->delete(self::TEST_USER1);
-               $userManager->delete(self::TEST_USER2);
-               $userManager->delete(self::TEST_USER3);
+
                $group1->delete();
                $group2->delete();
        }
@@ -399,8 +396,6 @@ class Test_App extends PHPUnit_Framework_TestCase {
                \OC_User::setUserId(null);
 
                $user1->delete();
-               // clear user cache...
-               $userManager->delete(self::TEST_USER1);
        }
 
        /**
index fd0931af7e4ef834fed1b80097733f80c3fef073..15b28e61bd5aa2c4e8dd84994204ceb5a81fe753 100644 (file)
@@ -416,6 +416,17 @@ class Manager extends \PHPUnit_Framework_TestCase {
 
                $users = array_shift($result);
                //users from backends shall be summed up
-               $this->assertEquals(7+16, $users);
+               $this->assertEquals(7 + 16, $users);
+       }
+
+       public function testDeleteUser() {
+               $manager = new \OC\User\Manager();
+               $backend = new \OC_User_Dummy();
+
+               $backend->createUser('foo', 'bar');
+               $manager->registerBackend($backend);
+               $this->assertTrue($manager->userExists('foo'));
+               $manager->get('foo')->delete();
+               $this->assertFalse($manager->userExists('foo'));
        }
 }