From b799e42b4e4f9ec1dd1fa9b93dd036581fbf2e92 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20M=C3=BCller?= Date: Tue, 24 Nov 2015 23:28:24 +0100 Subject: [PATCH] Introduce \OCP\IUser::getEMailAddress() --- apps/dav/lib/connector/sabre/principal.php | 2 +- .../tests/unit/connector/sabre/principal.php | 58 +++++++------------ lib/private/user/user.php | 10 ++++ lib/public/iuser.php | 8 +++ tests/lib/contacts/localadressbook.php | 7 ++- 5 files changed, 45 insertions(+), 40 deletions(-) diff --git a/apps/dav/lib/connector/sabre/principal.php b/apps/dav/lib/connector/sabre/principal.php index cd3b14b6841..cc9c1c40d59 100644 --- a/apps/dav/lib/connector/sabre/principal.php +++ b/apps/dav/lib/connector/sabre/principal.php @@ -203,7 +203,7 @@ class Principal implements \Sabre\DAVACL\PrincipalBackend\BackendInterface { '{DAV:}displayname' => is_null($displayName) ? $userId : $displayName, ]; - $email = $this->config->getUserValue($user->getUID(), 'settings', 'email'); + $email = $user->getEMailAddress(); if (!empty($email)) { $principal['{http://sabredav.org/ns}email-address'] = $email; return $principal; diff --git a/apps/dav/tests/unit/connector/sabre/principal.php b/apps/dav/tests/unit/connector/sabre/principal.php index 1d7721c546d..9a6ae545b58 100644 --- a/apps/dav/tests/unit/connector/sabre/principal.php +++ b/apps/dav/tests/unit/connector/sabre/principal.php @@ -41,34 +41,32 @@ class Principal extends \Test\TestCase { $fooUser = $this->getMockBuilder('\OC\User\User') ->disableOriginalConstructor()->getMock(); $fooUser - ->expects($this->exactly(2)) + ->expects($this->exactly(1)) ->method('getUID') ->will($this->returnValue('foo')); $fooUser ->expects($this->exactly(1)) ->method('getDisplayName') ->will($this->returnValue('Dr. Foo-Bar')); + $fooUser + ->expects($this->exactly(1)) + ->method('getEMailAddress') + ->will($this->returnValue('')); $barUser = $this->getMockBuilder('\OC\User\User') ->disableOriginalConstructor()->getMock(); $barUser - ->expects($this->exactly(2)) + ->expects($this->exactly(1)) ->method('getUID') ->will($this->returnValue('bar')); + $barUser + ->expects($this->exactly(1)) + ->method('getEMailAddress') + ->will($this->returnValue('bar@owncloud.org')); $this->userManager ->expects($this->once()) ->method('search') ->with('') ->will($this->returnValue([$fooUser, $barUser])); - $this->config - ->expects($this->at(0)) - ->method('getUserValue') - ->with('foo', 'settings', 'email') - ->will($this->returnValue('')); - $this->config - ->expects($this->at(1)) - ->method('getUserValue') - ->with('bar', 'settings', 'email') - ->will($this->returnValue('bar@owncloud.org')); $expectedResponse = [ 0 => [ @@ -100,7 +98,7 @@ class Principal extends \Test\TestCase { $fooUser = $this->getMockBuilder('\OC\User\User') ->disableOriginalConstructor()->getMock(); $fooUser - ->expects($this->exactly(2)) + ->expects($this->exactly(1)) ->method('getUID') ->will($this->returnValue('foo')); $this->userManager @@ -108,11 +106,6 @@ class Principal extends \Test\TestCase { ->method('get') ->with('foo') ->will($this->returnValue($fooUser)); - $this->config - ->expects($this->once()) - ->method('getUserValue') - ->with('foo', 'settings', 'email') - ->will($this->returnValue('')); $expectedResponse = [ 'uri' => 'principals/users/foo', @@ -126,19 +119,18 @@ class Principal extends \Test\TestCase { $fooUser = $this->getMockBuilder('\OC\User\User') ->disableOriginalConstructor()->getMock(); $fooUser - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('foo')); + ->expects($this->exactly(1)) + ->method('getEMailAddress') + ->will($this->returnValue('foo@owncloud.org')); + $fooUser + ->expects($this->exactly(1)) + ->method('getUID') + ->will($this->returnValue('foo')); $this->userManager ->expects($this->once()) ->method('get') ->with('foo') ->will($this->returnValue($fooUser)); - $this->config - ->expects($this->once()) - ->method('getUserValue') - ->with('foo', 'settings', 'email') - ->will($this->returnValue('foo@owncloud.org')); $expectedResponse = [ 'uri' => 'principals/users/foo', @@ -164,7 +156,7 @@ class Principal extends \Test\TestCase { $fooUser = $this->getMockBuilder('\OC\User\User') ->disableOriginalConstructor()->getMock(); $fooUser - ->expects($this->exactly(2)) + ->expects($this->exactly(1)) ->method('getUID') ->will($this->returnValue('foo')); $this->userManager @@ -172,11 +164,6 @@ class Principal extends \Test\TestCase { ->method('get') ->with('foo') ->will($this->returnValue($fooUser)); - $this->config - ->expects($this->once()) - ->method('getUserValue') - ->with('foo', 'settings', 'email') - ->will($this->returnValue('foo@owncloud.org')); $response = $this->connector->getGroupMemberSet('principals/users/foo'); $this->assertSame(['principals/users/foo'], $response); @@ -200,7 +187,7 @@ class Principal extends \Test\TestCase { $fooUser = $this->getMockBuilder('\OC\User\User') ->disableOriginalConstructor()->getMock(); $fooUser - ->expects($this->exactly(2)) + ->expects($this->exactly(1)) ->method('getUID') ->will($this->returnValue('foo')); $this->userManager @@ -208,11 +195,6 @@ class Principal extends \Test\TestCase { ->method('get') ->with('foo') ->will($this->returnValue($fooUser)); - $this->config - ->expects($this->once()) - ->method('getUserValue') - ->with('foo', 'settings', 'email') - ->will($this->returnValue('foo@owncloud.org')); $expectedResponse = [ 'principals/users/foo/calendar-proxy-read', diff --git a/lib/private/user/user.php b/lib/private/user/user.php index 28b66d7f5ba..2740b25d5d3 100644 --- a/lib/private/user/user.php +++ b/lib/private/user/user.php @@ -306,4 +306,14 @@ class User implements IUser { $this->config->setUserValue($this->uid, 'core', 'enabled', $enabled); } } + + /** + * get the users email address + * + * @return string|null + * @since 9.0.0 + */ + public function getEMailAddress() { + return $this->config->getUserValue($this->uid, 'settings', 'email'); + } } diff --git a/lib/public/iuser.php b/lib/public/iuser.php index 6cbcfbf2312..1e52cd59036 100644 --- a/lib/public/iuser.php +++ b/lib/public/iuser.php @@ -144,4 +144,12 @@ interface IUser { * @since 8.0.0 */ public function setEnabled($enabled); + + /** + * get the users email address + * + * @return string|null + * @since 9.0.0 + */ + public function getEMailAddress(); } diff --git a/tests/lib/contacts/localadressbook.php b/tests/lib/contacts/localadressbook.php index a34d45bf3d0..6bfcf3d890a 100644 --- a/tests/lib/contacts/localadressbook.php +++ b/tests/lib/contacts/localadressbook.php @@ -1,5 +1,6 @@