Fix endless recursion

remotes/origin/share-copy-source-mounts
Thomas Müller 2015-12-02 14:25:07 +07:00
parent f558ac7dd5
commit 28ceab2f61
3 changed files with 25 additions and 11 deletions

@ -28,9 +28,10 @@ use Sabre\VObject\Property\Text;
class Converter { class Converter {
public function __construct() { /**
} * @param IUser $user
* @return VCard
*/
public function createCardFromUser(IUser $user) { public function createCardFromUser(IUser $user) {
$uid = $user->getUID(); $uid = $user->getUID();
@ -60,6 +61,11 @@ class Converter {
return $vCard; return $vCard;
} }
/**
* @param VCard $vCard
* @param IUser $user
* @return bool
*/
public function updateCard(VCard $vCard, IUser $user) { public function updateCard(VCard $vCard, IUser $user) {
$uid = $user->getUID(); $uid = $user->getUID();
$displayName = $user->getDisplayName(); $displayName = $user->getDisplayName();
@ -105,6 +111,12 @@ class Converter {
return $updated; return $updated;
} }
/**
* @param VCard $vCard
* @param string $name
* @param string|IImage $newValue
* @return bool
*/
private function propertyNeedsUpdate(VCard $vCard, $name, $newValue) { private function propertyNeedsUpdate(VCard $vCard, $name, $newValue) {
if (is_null($newValue)) { if (is_null($newValue)) {
return false; return false;

@ -71,14 +71,14 @@ class User implements IUser {
* @param string $uid * @param string $uid
* @param \OC_User_Interface $backend * @param \OC_User_Interface $backend
* @param \OC\Hooks\Emitter $emitter * @param \OC\Hooks\Emitter $emitter
* @param \OCP\IConfig $config * @param IConfig|null $config
* @param IURLGenerator $urlGenerator
*/ */
public function __construct($uid, $backend, $emitter = null, IConfig $config = null, $avatarManager = null, $urlGenerator = null) { public function __construct($uid, $backend, $emitter = null, IConfig $config = null, $urlGenerator = null) {
$this->uid = $uid; $this->uid = $uid;
$this->backend = $backend; $this->backend = $backend;
$this->emitter = $emitter; $this->emitter = $emitter;
$this->config = $config; $this->config = $config;
$this->avatarManager = $avatarManager;
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
if ($this->config) { if ($this->config) {
$enabled = $this->config->getUserValue($uid, 'core', 'enabled', 'true'); $enabled = $this->config->getUserValue($uid, 'core', 'enabled', 'true');
@ -88,9 +88,6 @@ class User implements IUser {
$this->enabled = true; $this->enabled = true;
$this->lastLogin = \OC::$server->getConfig()->getUserValue($uid, 'login', 'lastLogin', 0); $this->lastLogin = \OC::$server->getConfig()->getUserValue($uid, 'login', 'lastLogin', 0);
} }
if (is_null($this->avatarManager)) {
$this->avatarManager = \OC::$server->getAvatarManager();
}
if (is_null($this->urlGenerator)) { if (is_null($this->urlGenerator)) {
$this->urlGenerator = \OC::$server->getURLGenerator(); $this->urlGenerator = \OC::$server->getURLGenerator();
} }
@ -106,7 +103,7 @@ class User implements IUser {
} }
/** /**
* get the displayname for the user, if no specific displayname is set it will fallback to the user id * get the display name for the user, if no specific display name is set it will fallback to the user id
* *
* @return string * @return string
*/ */
@ -326,6 +323,11 @@ class User implements IUser {
* @since 9.0.0 * @since 9.0.0
*/ */
public function getAvatarImage($size) { public function getAvatarImage($size) {
// delay the initialization
if (is_null($this->avatarManager)) {
$this->avatarManager = \OC::$server->getAvatarManager();
}
$avatar = $this->avatarManager->getAvatar($this->uid); $avatar = $this->avatarManager->getAvatar($this->uid);
$image = $avatar->get(-1); $image = $avatar->get(-1);
if ($image) { if ($image) {

@ -475,7 +475,7 @@ class User extends \Test\TestCase {
->method('getAbsoluteURL') ->method('getAbsoluteURL')
->withAnyParameters() ->withAnyParameters()
->willReturn('http://localhost:8888/owncloud'); ->willReturn('http://localhost:8888/owncloud');
$user = new \OC\User\User('foo', $backend, null, null, null, $urlGenerator); $user = new \OC\User\User('foo', $backend, null, null, $urlGenerator);
$this->assertEquals("foo@localhost:8888/owncloud", $user->getCloudId()); $this->assertEquals("foo@localhost:8888/owncloud", $user->getCloudId());
} }
} }