Skip to content
Snippets Groups Projects
Commit dad6470b authored by Thomas Müller's avatar Thomas Müller
Browse files

Add IUser::getAvatarImage() for easy access

parent c91192fb
No related branches found
No related tags found
No related merge requests found
...@@ -70,20 +70,25 @@ class SyncSystemAddressBook extends Command { ...@@ -70,20 +70,25 @@ class SyncSystemAddressBook extends Command {
$name = $user->getBackendClassName(); $name = $user->getBackendClassName();
$userId = $user->getUID(); $userId = $user->getUID();
$displayName = $user->getDisplayName(); $displayName = $user->getDisplayName();
//$emailAddress = $user->getEMailAddress();
$image = $user->getAvatarImage(-1);
$cardId = "$name:$userId.vcf"; $cardId = "$name:$userId.vcf";
$card = $this->backend->getCard($systemAddressBook['id'], $cardId); $card = $this->backend->getCard($systemAddressBook['id'], $cardId);
if ($card === false) { if ($card === false) {
$vCard = new VCard(); $vCard = new VCard();
$vCard->add(new Text($vCard, 'UID', $user->getUID())); $vCard->add(new Text($vCard, 'UID', $userId));
$vCard->add(new Text($vCard, 'FN', $displayName)); $vCard->add(new Text($vCard, 'FN', $displayName));
// $vCard->add(new Text($vCard, 'EMAIL', $user->getEMailAddress())); // $vCard->add(new Text($vCard, 'EMAIL', $emailAddress));
//$vCard->add(new Binary($vCard, 'PHOTO', $user->getAvatar())); if ($image) {
$vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType()]);
}
$vCard->validate(); $vCard->validate();
$this->backend->createCard($systemAddressBook['id'], $cardId, $vCard->serialize()); $this->backend->createCard($systemAddressBook['id'], $cardId, $vCard->serialize());
} else { } else {
$updated = false; $updated = false;
$vCard = Reader::read($card['carddata']); $vCard = Reader::read($card['carddata']);
if($vCard->FN !== $user->getDisplayName()) { if($vCard->FN !== $displayName) {
$vCard->FN = new Text($vCard, 'FN', $displayName); $vCard->FN = new Text($vCard, 'FN', $displayName);
$updated = true; $updated = true;
} }
......
...@@ -79,7 +79,9 @@ class Avatar implements \OCP\IAvatar { ...@@ -79,7 +79,9 @@ class Avatar implements \OCP\IAvatar {
/** @var File $node */ /** @var File $node */
$node = $this->folder->get('avatar.' . $ext); $node = $this->folder->get('avatar.' . $ext);
$avatar->loadFromData($node->getContent()); $avatar->loadFromData($node->getContent());
$avatar->resize($size); if ($size > 0) {
$avatar->resize($size);
}
$this->folder->newFile('avatar.' . $size . '.' . $ext)->putContent($avatar->data()); $this->folder->newFile('avatar.' . $size . '.' . $ext)->putContent($avatar->data());
} }
return $avatar; return $avatar;
......
...@@ -30,6 +30,8 @@ ...@@ -30,6 +30,8 @@
namespace OC\User; namespace OC\User;
use OC\Hooks\Emitter; use OC\Hooks\Emitter;
use OCP\IAvatarManager;
use OCP\IImage;
use OCP\IUser; use OCP\IUser;
use OCP\IConfig; use OCP\IConfig;
...@@ -74,17 +76,21 @@ class User implements IUser { ...@@ -74,17 +76,21 @@ class User implements IUser {
*/ */
private $config; private $config;
/** @var IAvatarManager */
private $avatarManager;
/** /**
* @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 \OCP\IConfig $config
*/ */
public function __construct($uid, $backend, $emitter = null, IConfig $config = null) { public function __construct($uid, $backend, $emitter = null, IConfig $config = null, $avatarManager = 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;
if ($this->config) { if ($this->config) {
$enabled = $this->config->getUserValue($uid, 'core', 'enabled', 'true'); $enabled = $this->config->getUserValue($uid, 'core', 'enabled', 'true');
$this->enabled = ($enabled === 'true'); $this->enabled = ($enabled === 'true');
...@@ -93,6 +99,9 @@ class User implements IUser { ...@@ -93,6 +99,9 @@ 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();
}
} }
/** /**
...@@ -316,4 +325,21 @@ class User implements IUser { ...@@ -316,4 +325,21 @@ class User implements IUser {
public function getEMailAddress() { public function getEMailAddress() {
return $this->config->getUserValue($this->uid, 'settings', 'email'); return $this->config->getUserValue($this->uid, 'settings', 'email');
} }
/**
* get the avatar image if it exists
*
* @param int $size
* @return IImage|null
* @since 9.0.0
*/
public function getAvatarImage($size) {
$avatar = $this->avatarManager->getAvatar($this->uid);
$image = $avatar->get(-1);
if ($image) {
return $image;
}
return null;
}
} }
...@@ -152,4 +152,13 @@ interface IUser { ...@@ -152,4 +152,13 @@ interface IUser {
* @since 9.0.0 * @since 9.0.0
*/ */
public function getEMailAddress(); public function getEMailAddress();
/**
* get the avatar image if it exists
*
* @param int $size
* @return IImage|null
* @since 9.0.0
*/
public function getAvatarImage($size);
} }
...@@ -98,6 +98,8 @@ class SimpleUserForTesting implements IUser { ...@@ -98,6 +98,8 @@ class SimpleUserForTesting implements IUser {
} }
public function getEMailAddress() { public function getEMailAddress() {
// TODO: Implement getEMailAddress() method. }
public function getAvatarImage($size) {
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment