summaryrefslogtreecommitdiffstats
path: root/lib/private/user
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2014-12-04 14:15:55 +0100
committerLukas Reschke <lukas@owncloud.com>2014-12-08 12:11:01 +0100
commitfe7d9a7ca07bb21905c6483dee49bf37dd131674 (patch)
treef37a25e518c0ce38530a452d63386a525f5121f3 /lib/private/user
parente6908f8b890414451dfc32af4d76562016d75d0f (diff)
downloadnextcloud-server-fe7d9a7ca07bb21905c6483dee49bf37dd131674.tar.gz
nextcloud-server-fe7d9a7ca07bb21905c6483dee49bf37dd131674.zip
Add REST route for user & group management
First step of a somewhat testable user management. - I know, the JSON returns are in an ugly format but the JS expects it that way. So let's keep it that way until we have time to fix the JS in the future.
Diffstat (limited to 'lib/private/user')
-rw-r--r--lib/private/user/manager.php2
-rw-r--r--lib/private/user/user.php18
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index 0c01f957bd3..2403f45aa2f 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -220,7 +220,7 @@ class Manager extends PublicEmitter implements IUserManager {
* @param string $uid
* @param string $password
* @throws \Exception
- * @return bool|\OC\User\User the created user of false
+ * @return bool|\OC\User\User the created user or false
*/
public function createUser($uid, $password) {
$l = \OC::$server->getL10N('lib');
diff --git a/lib/private/user/user.php b/lib/private/user/user.php
index 9ad2f5f0d3a..ad85337f628 100644
--- a/lib/private/user/user.php
+++ b/lib/private/user/user.php
@@ -153,6 +153,24 @@ class User implements IUser {
$this->emitter->emit('\OC\User', 'preDelete', array($this));
}
$result = $this->backend->deleteUser($this->uid);
+ if ($result) {
+
+ // FIXME: Feels like an hack - suggestions?
+
+ // We have to delete the user from all groups
+ foreach (\OC_Group::getUserGroups($this->uid) as $i) {
+ \OC_Group::removeFromGroup($this->uid, $i);
+ }
+ // Delete the user's keys in preferences
+ \OC_Preferences::deleteUser($this->uid);
+
+ // Delete user files in /data/
+ \OC_Helper::rmdirr(\OC_User::getHome($this->uid));
+
+ // Delete the users entry in the storage table
+ \OC\Files\Cache\Storage::remove('home::' . $this->uid);
+ }
+
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'postDelete', array($this));
}