|
|
|
|
@ -30,6 +30,7 @@
|
|
|
|
|
|
|
|
|
|
namespace OC\User;
|
|
|
|
|
|
|
|
|
|
use OC\Files\Cache\Storage;
|
|
|
|
|
use OC\Hooks\Emitter;
|
|
|
|
|
use OC_Helper;
|
|
|
|
|
use OCP\IAvatarManager;
|
|
|
|
|
@ -38,6 +39,7 @@ use OCP\IURLGenerator;
|
|
|
|
|
use OCP\IUser;
|
|
|
|
|
use OCP\IConfig;
|
|
|
|
|
use OCP\UserInterface;
|
|
|
|
|
use \OCP\IUserBackend;
|
|
|
|
|
|
|
|
|
|
class User implements IUser {
|
|
|
|
|
/** @var string $uid */
|
|
|
|
|
@ -111,7 +113,7 @@ class User implements IUser {
|
|
|
|
|
public function getDisplayName() {
|
|
|
|
|
if (!isset($this->displayName)) {
|
|
|
|
|
$displayName = '';
|
|
|
|
|
if ($this->backend and $this->backend->implementsActions(\OC\User\Backend::GET_DISPLAYNAME)) {
|
|
|
|
|
if ($this->backend and $this->backend->implementsActions(Backend::GET_DISPLAYNAME)) {
|
|
|
|
|
// get display name and strip whitespace from the beginning and end of it
|
|
|
|
|
$backendDisplayName = $this->backend->getDisplayName($this->uid);
|
|
|
|
|
if (is_string($backendDisplayName)) {
|
|
|
|
|
@ -136,7 +138,7 @@ class User implements IUser {
|
|
|
|
|
*/
|
|
|
|
|
public function setDisplayName($displayName) {
|
|
|
|
|
$displayName = trim($displayName);
|
|
|
|
|
if ($this->backend->implementsActions(\OC\User\Backend::SET_DISPLAYNAME) && !empty($displayName)) {
|
|
|
|
|
if ($this->backend->implementsActions(Backend::SET_DISPLAYNAME) && !empty($displayName)) {
|
|
|
|
|
$result = $this->backend->setDisplayName($this->uid, $displayName);
|
|
|
|
|
if ($result) {
|
|
|
|
|
$this->displayName = $displayName;
|
|
|
|
|
@ -208,7 +210,7 @@ class User implements IUser {
|
|
|
|
|
\OC_Helper::rmdirr(\OC_User::getHome($this->uid));
|
|
|
|
|
|
|
|
|
|
// Delete the users entry in the storage table
|
|
|
|
|
\OC\Files\Cache\Storage::remove('home::' . $this->uid);
|
|
|
|
|
Storage::remove('home::' . $this->uid);
|
|
|
|
|
|
|
|
|
|
\OC::$server->getCommentsManager()->deleteReferencesOfActor('users', $this->uid);
|
|
|
|
|
\OC::$server->getCommentsManager()->deleteReadMarksFromUser($this);
|
|
|
|
|
@ -231,7 +233,7 @@ class User implements IUser {
|
|
|
|
|
if ($this->emitter) {
|
|
|
|
|
$this->emitter->emit('\OC\User', 'preSetPassword', array($this, $password, $recoveryPassword));
|
|
|
|
|
}
|
|
|
|
|
if ($this->backend->implementsActions(\OC\User\Backend::SET_PASSWORD)) {
|
|
|
|
|
if ($this->backend->implementsActions(Backend::SET_PASSWORD)) {
|
|
|
|
|
$result = $this->backend->setPassword($this->uid, $password);
|
|
|
|
|
if ($this->emitter) {
|
|
|
|
|
$this->emitter->emit('\OC\User', 'postSetPassword', array($this, $password, $recoveryPassword));
|
|
|
|
|
@ -249,7 +251,7 @@ class User implements IUser {
|
|
|
|
|
*/
|
|
|
|
|
public function getHome() {
|
|
|
|
|
if (!$this->home) {
|
|
|
|
|
if ($this->backend->implementsActions(\OC\User\Backend::GET_HOME) and $home = $this->backend->getHome($this->uid)) {
|
|
|
|
|
if ($this->backend->implementsActions(Backend::GET_HOME) and $home = $this->backend->getHome($this->uid)) {
|
|
|
|
|
$this->home = $home;
|
|
|
|
|
} elseif ($this->config) {
|
|
|
|
|
$this->home = $this->config->getSystemValue('datadirectory') . '/' . $this->uid;
|
|
|
|
|
@ -266,7 +268,7 @@ class User implements IUser {
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getBackendClassName() {
|
|
|
|
|
if($this->backend instanceof \OCP\IUserBackend) {
|
|
|
|
|
if($this->backend instanceof IUserBackend) {
|
|
|
|
|
return $this->backend->getBackendName();
|
|
|
|
|
}
|
|
|
|
|
return get_class($this->backend);
|
|
|
|
|
@ -278,7 +280,7 @@ class User implements IUser {
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function canChangeAvatar() {
|
|
|
|
|
if ($this->backend->implementsActions(\OC\User\Backend::PROVIDE_AVATAR)) {
|
|
|
|
|
if ($this->backend->implementsActions(Backend::PROVIDE_AVATAR)) {
|
|
|
|
|
return $this->backend->canChangeAvatar($this->uid);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
@ -290,7 +292,7 @@ class User implements IUser {
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function canChangePassword() {
|
|
|
|
|
return $this->backend->implementsActions(\OC\User\Backend::SET_PASSWORD);
|
|
|
|
|
return $this->backend->implementsActions(Backend::SET_PASSWORD);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -302,7 +304,7 @@ class User implements IUser {
|
|
|
|
|
if ($this->config->getSystemValue('allow_user_to_change_display_name') === false) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return $this->backend->implementsActions(\OC\User\Backend::SET_DISPLAYNAME);
|
|
|
|
|
return $this->backend->implementsActions(Backend::SET_DISPLAYNAME);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|