Only try to load avatars in the user list if there is any

This commit is contained in:
Roeland Jago Douma 2015-12-04 14:30:12 +01:00
parent e91eba4b5b
commit a619629ac0
3 changed files with 64 additions and 13 deletions

View File

@ -136,7 +136,8 @@ class Application extends App {
$c->query('Mailer'), $c->query('Mailer'),
$c->query('DefaultMailAddress'), $c->query('DefaultMailAddress'),
$c->query('URLGenerator'), $c->query('URLGenerator'),
$c->query('OCP\\App\\IAppManager') $c->query('OCP\\App\\IAppManager'),
$c->query('OCP\\IAvatarManager')
); );
}); });
$container->registerService('LogSettingsController', function(IContainer $c) { $container->registerService('LogSettingsController', function(IContainer $c) {

View File

@ -43,6 +43,7 @@ use OCP\IUser;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IUserSession; use OCP\IUserSession;
use OCP\Mail\IMailer; use OCP\Mail\IMailer;
use OCP\IAvatarManager;
/** /**
* @package OC\Settings\Controller * @package OC\Settings\Controller
@ -74,6 +75,8 @@ class UsersController extends Controller {
private $isEncryptionAppEnabled; private $isEncryptionAppEnabled;
/** @var bool contains the state of the admin recovery setting */ /** @var bool contains the state of the admin recovery setting */
private $isRestoreEnabled = false; private $isRestoreEnabled = false;
/** @var IAvatarManager */
private $avatarManager;
/** /**
* @param string $appName * @param string $appName
@ -104,7 +107,8 @@ class UsersController extends Controller {
IMailer $mailer, IMailer $mailer,
$fromMailAddress, $fromMailAddress,
IURLGenerator $urlGenerator, IURLGenerator $urlGenerator,
IAppManager $appManager) { IAppManager $appManager,
IAvatarManager $avatarManager) {
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->userManager = $userManager; $this->userManager = $userManager;
$this->groupManager = $groupManager; $this->groupManager = $groupManager;
@ -117,6 +121,7 @@ class UsersController extends Controller {
$this->mailer = $mailer; $this->mailer = $mailer;
$this->fromMailAddress = $fromMailAddress; $this->fromMailAddress = $fromMailAddress;
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->avatarManager = $avatarManager;
// check for encryption state - TODO see formatUserForIndex // check for encryption state - TODO see formatUserForIndex
$this->isEncryptionAppEnabled = $appManager->isEnabledForUser('encryption'); $this->isEncryptionAppEnabled = $appManager->isEnabledForUser('encryption');
@ -168,6 +173,12 @@ class UsersController extends Controller {
if (is_null($displayName)) { if (is_null($displayName)) {
$displayName = ''; $displayName = '';
} }
$avatarAvailable = false;
if ($this->config->getSystemValue('enable_avatars', true) === true) {
$avatarAvailable = $this->avatarManager->getAvatar($user->getUID())->exists();
}
return [ return [
'name' => $user->getUID(), 'name' => $user->getUID(),
'displayname' => $user->getDisplayName(), 'displayname' => $user->getDisplayName(),
@ -179,6 +190,7 @@ class UsersController extends Controller {
'backend' => $user->getBackendClassName(), 'backend' => $user->getBackendClassName(),
'email' => $displayName, 'email' => $displayName,
'isRestoreDisabled' => !$restorePossible, 'isRestoreDisabled' => !$restorePossible,
'isAvatarAvailable' => $avatarAvailable,
]; ];
} }

View File

@ -54,6 +54,30 @@ class UsersControllerTest extends \Test\TestCase {
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$this->container['OCP\\App\\IAppManager'] = $this->getMockBuilder('OCP\\App\\IAppManager') $this->container['OCP\\App\\IAppManager'] = $this->getMockBuilder('OCP\\App\\IAppManager')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
/*
* Set default avtar behaviour for whole testsuite
*/
$this->container['OCP\\IAvatarManager'] = $this->getMock('OCP\IAvatarManager');
$avatarExists = $this->getMock('OCP\IAvatar');
$avatarExists->method('exists')->willReturn(true);
$avatarNotExists = $this->getMock('OCP\IAvatar');
$avatarNotExists->method('exists')->willReturn(false);
$this->container['OCP\\IAvatarManager']
->method('getAvatar')
->will($this->returnValueMap([
['foo', $avatarExists],
['bar', $avatarExists],
['admin', $avatarNotExists],
]));
$this->container['Config']
->method('getSystemValue')
->with('enable_avatars', true)
->willReturn(true);
} }
public function testIndexAdmin() { public function testIndexAdmin() {
@ -62,7 +86,7 @@ class UsersControllerTest extends \Test\TestCase {
$foo = $this->getMockBuilder('\OC\User\User') $foo = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$foo $foo
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('foo')); ->will($this->returnValue('foo'));
$foo $foo
@ -86,7 +110,7 @@ class UsersControllerTest extends \Test\TestCase {
$admin = $this->getMockBuilder('\OC\User\User') $admin = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$admin $admin
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('admin')); ->will($this->returnValue('admin'));
$admin $admin
@ -112,7 +136,7 @@ class UsersControllerTest extends \Test\TestCase {
$bar = $this->getMockBuilder('\OC\User\User') $bar = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$bar $bar
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('bar')); ->will($this->returnValue('bar'));
$bar $bar
@ -188,7 +212,6 @@ class UsersControllerTest extends \Test\TestCase {
->method('getSubAdmin') ->method('getSubAdmin')
->will($this->returnValue($subadmin)); ->will($this->returnValue($subadmin));
$expectedResponse = new DataResponse( $expectedResponse = new DataResponse(
array( array(
0 => array( 0 => array(
@ -202,6 +225,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => 'OC_User_Database', 'backend' => 'OC_User_Database',
'email' => 'foo@bar.com', 'email' => 'foo@bar.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
1 => array( 1 => array(
'name' => 'admin', 'name' => 'admin',
@ -214,6 +238,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => '\Test\Util\User\Dummy', 'backend' => '\Test\Util\User\Dummy',
'email' => 'admin@bar.com', 'email' => 'admin@bar.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => false,
), ),
2 => array( 2 => array(
'name' => 'bar', 'name' => 'bar',
@ -226,6 +251,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => '\Test\Util\User\Dummy', 'backend' => '\Test\Util\User\Dummy',
'email' => 'bar@dummy.com', 'email' => 'bar@dummy.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
) )
); );
@ -246,7 +272,7 @@ class UsersControllerTest extends \Test\TestCase {
$foo = $this->getMockBuilder('\OC\User\User') $foo = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$foo $foo
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('foo')); ->will($this->returnValue('foo'));
$foo $foo
@ -270,7 +296,7 @@ class UsersControllerTest extends \Test\TestCase {
$admin = $this->getMockBuilder('\OC\User\User') $admin = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$admin $admin
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('admin')); ->will($this->returnValue('admin'));
$admin $admin
@ -296,7 +322,7 @@ class UsersControllerTest extends \Test\TestCase {
$bar = $this->getMockBuilder('\OC\User\User') $bar = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$bar $bar
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('bar')); ->will($this->returnValue('bar'));
$bar $bar
@ -401,6 +427,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => '\Test\Util\User\Dummy', 'backend' => '\Test\Util\User\Dummy',
'email' => 'bar@dummy.com', 'email' => 'bar@dummy.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
], ],
1=> [ 1=> [
'name' => 'foo', 'name' => 'foo',
@ -413,6 +440,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => 'OC_User_Database', 'backend' => 'OC_User_Database',
'email' => 'foo@bar.com', 'email' => 'foo@bar.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
], ],
2 => [ 2 => [
'name' => 'admin', 'name' => 'admin',
@ -425,6 +453,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => '\Test\Util\User\Dummy', 'backend' => '\Test\Util\User\Dummy',
'email' => 'admin@bar.com', 'email' => 'admin@bar.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => false,
], ],
] ]
); );
@ -443,7 +472,7 @@ class UsersControllerTest extends \Test\TestCase {
$foo = $this->getMockBuilder('\OC\User\User') $foo = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$foo $foo
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('foo')); ->will($this->returnValue('foo'));
$foo $foo
@ -467,7 +496,7 @@ class UsersControllerTest extends \Test\TestCase {
$admin = $this->getMockBuilder('\OC\User\User') $admin = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$admin $admin
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('admin')); ->will($this->returnValue('admin'));
$admin $admin
@ -493,7 +522,7 @@ class UsersControllerTest extends \Test\TestCase {
$bar = $this->getMockBuilder('\OC\User\User') $bar = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$bar $bar
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('bar')); ->will($this->returnValue('bar'));
$bar $bar
@ -553,6 +582,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => 'OC_User_Database', 'backend' => 'OC_User_Database',
'email' => 'foo@bar.com', 'email' => 'foo@bar.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
1 => array( 1 => array(
'name' => 'admin', 'name' => 'admin',
@ -565,6 +595,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => '\Test\Util\User\Dummy', 'backend' => '\Test\Util\User\Dummy',
'email' => 'admin@bar.com', 'email' => 'admin@bar.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => false,
), ),
2 => array( 2 => array(
'name' => 'bar', 'name' => 'bar',
@ -577,6 +608,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => '\Test\Util\User\Dummy', 'backend' => '\Test\Util\User\Dummy',
'email' => 'bar@dummy.com', 'email' => 'bar@dummy.com',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
) )
); );
@ -590,7 +622,7 @@ class UsersControllerTest extends \Test\TestCase {
$user = $this->getMockBuilder('\OC\User\User') $user = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock(); ->disableOriginalConstructor()->getMock();
$user $user
->expects($this->exactly(2)) ->expects($this->exactly(3))
->method('getUID') ->method('getUID')
->will($this->returnValue('foo')); ->will($this->returnValue('foo'));
$user $user
@ -648,6 +680,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => 'OC_User_Database', 'backend' => 'OC_User_Database',
'email' => null, 'email' => null,
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
) )
) )
); );
@ -719,6 +752,7 @@ class UsersControllerTest extends \Test\TestCase {
'subadmin' => array(), 'subadmin' => array(),
'email' => null, 'email' => null,
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
Http::STATUS_CREATED Http::STATUS_CREATED
); );
@ -807,6 +841,7 @@ class UsersControllerTest extends \Test\TestCase {
'subadmin' => [], 'subadmin' => [],
'email' => null, 'email' => null,
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
Http::STATUS_CREATED Http::STATUS_CREATED
); );
@ -889,6 +924,7 @@ class UsersControllerTest extends \Test\TestCase {
'subadmin' => array(), 'subadmin' => array(),
'email' => null, 'email' => null,
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
Http::STATUS_CREATED Http::STATUS_CREATED
); );
@ -984,6 +1020,7 @@ class UsersControllerTest extends \Test\TestCase {
'subadmin' => [], 'subadmin' => [],
'email' => null, 'email' => null,
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
), ),
Http::STATUS_CREATED Http::STATUS_CREATED
); );
@ -1480,6 +1517,7 @@ class UsersControllerTest extends \Test\TestCase {
'backend' => $backend, 'backend' => $backend,
'email' => null, 'email' => null,
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true,
]; ];
return [$user, $result]; return [$user, $result];