2013-10-28 23:14:23 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
|
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
|
|
* later.
|
|
|
|
* See the COPYING-README file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace OC\Files\Storage;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Specialized version of Local storage for home directory usage
|
|
|
|
*/
|
|
|
|
class Home extends Local {
|
2013-11-12 14:46:01 +00:00
|
|
|
/**
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $id;
|
|
|
|
|
2013-10-28 23:14:23 +00:00
|
|
|
/**
|
|
|
|
* @var \OC\User\User $user
|
|
|
|
*/
|
|
|
|
protected $user;
|
|
|
|
|
|
|
|
public function __construct($arguments) {
|
|
|
|
$this->user = $arguments['user'];
|
2013-11-02 19:22:12 +00:00
|
|
|
$datadir = $this->user->getHome();
|
2013-11-12 14:46:01 +00:00
|
|
|
if (isset($arguments['legacy']) && $arguments['legacy']) {
|
|
|
|
// legacy home id (<= 5.0.12)
|
|
|
|
$this->id = 'local::' . $datadir . '/';
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$this->id = 'home::' . $this->user->getUID();
|
|
|
|
}
|
2013-11-02 19:22:12 +00:00
|
|
|
|
|
|
|
parent::__construct(array('datadir' => $datadir));
|
2013-10-28 23:14:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getId() {
|
2013-11-12 14:46:01 +00:00
|
|
|
return $this->id;
|
2013-10-28 23:14:23 +00:00
|
|
|
}
|
2013-11-08 11:57:28 +00:00
|
|
|
|
|
|
|
public function getCache($path = '') {
|
|
|
|
if (!isset($this->cache)) {
|
|
|
|
$this->cache = new \OC\Files\Cache\HomeCache($this);
|
|
|
|
}
|
|
|
|
return $this->cache;
|
|
|
|
}
|
2013-10-28 23:14:23 +00:00
|
|
|
}
|