Completed
Push — stable10 ( d1b390...0bd063 )
by Lukas
27:03 queued 26:40
created
apps/files_versions/ajax/rollbackVersion.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -34,8 +34,8 @@
 block discarded – undo
34 34
 $revision=(int)$_GET['revision'];
35 35
 
36 36
 if(OCA\Files_Versions\Storage::rollback( $file, $revision )) {
37
-	OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file )));
37
+    OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file )));
38 38
 }else{
39
-	$l = \OC::$server->getL10N('files_versions');
40
-	OCP\JSON::error(array("data" => array( "message" => $l->t("Could not revert: %s", array($file) ))));
39
+    $l = \OC::$server->getL10N('files_versions');
40
+    OCP\JSON::error(array("data" => array( "message" => $l->t("Could not revert: %s", array($file) ))));
41 41
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/AppInfo/Application.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -27,24 +27,24 @@
 block discarded – undo
27 27
 use OCA\Files_Versions\Expiration;
28 28
 
29 29
 class Application extends App {
30
-	public function __construct(array $urlParams = array()) {
31
-		parent::__construct('files_versions', $urlParams);
30
+    public function __construct(array $urlParams = array()) {
31
+        parent::__construct('files_versions', $urlParams);
32 32
 
33
-		$container = $this->getContainer();
33
+        $container = $this->getContainer();
34 34
 
35
-		/*
35
+        /*
36 36
 		 * Register capabilities
37 37
 		 */
38
-		$container->registerCapability('OCA\Files_Versions\Capabilities');
38
+        $container->registerCapability('OCA\Files_Versions\Capabilities');
39 39
 
40
-		/*
40
+        /*
41 41
 		 * Register expiration
42 42
 		 */
43
-		$container->registerService('Expiration', function($c) {
44
-			return  new Expiration(
45
-				$c->query('ServerContainer')->getConfig(),
46
-				$c->query('OCP\AppFramework\Utility\ITimeFactory')
47
-			);
48
-		});
49
-	}
43
+        $container->registerService('Expiration', function($c) {
44
+            return  new Expiration(
45
+                $c->query('ServerContainer')->getConfig(),
46
+                $c->query('OCP\AppFramework\Utility\ITimeFactory')
47
+            );
48
+        });
49
+    }
50 50
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Command/Expire.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -29,37 +29,37 @@
 block discarded – undo
29 29
 use OCP\Command\ICommand;
30 30
 
31 31
 class Expire implements ICommand {
32
-	use FileAccess;
32
+    use FileAccess;
33 33
 
34
-	/**
35
-	 * @var string
36
-	 */
37
-	private $fileName;
34
+    /**
35
+     * @var string
36
+     */
37
+    private $fileName;
38 38
 
39
-	/**
40
-	 * @var string
41
-	 */
42
-	private $user;
39
+    /**
40
+     * @var string
41
+     */
42
+    private $user;
43 43
 
44
-	/**
45
-	 * @param string $user
46
-	 * @param string $fileName
47
-	 */
48
-	function __construct($user, $fileName) {
49
-		$this->user = $user;
50
-		$this->fileName = $fileName;
51
-	}
44
+    /**
45
+     * @param string $user
46
+     * @param string $fileName
47
+     */
48
+    function __construct($user, $fileName) {
49
+        $this->user = $user;
50
+        $this->fileName = $fileName;
51
+    }
52 52
 
53 53
 
54
-	public function handle() {
55
-		$userManager = \OC::$server->getUserManager();
56
-		if (!$userManager->userExists($this->user)) {
57
-			// User has been deleted already
58
-			return;
59
-		}
54
+    public function handle() {
55
+        $userManager = \OC::$server->getUserManager();
56
+        if (!$userManager->userExists($this->user)) {
57
+            // User has been deleted already
58
+            return;
59
+        }
60 60
 
61
-		\OC_Util::setupFS($this->user);
62
-		Storage::expire($this->fileName);
63
-		\OC_Util::tearDownFS();
64
-	}
61
+        \OC_Util::setupFS($this->user);
62
+        Storage::expire($this->fileName);
63
+        \OC_Util::tearDownFS();
64
+    }
65 65
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Command/CleanUp.php 1 patch
Indentation   +78 added lines, -78 removed lines patch added patch discarded remove patch
@@ -33,83 +33,83 @@
 block discarded – undo
33 33
 
34 34
 class CleanUp extends Command {
35 35
 
36
-	/** @var IUserManager */
37
-	protected $userManager;
38
-
39
-	/** @var IRootFolder */
40
-	protected $rootFolder;
41
-
42
-	/**
43
-	 * @param IRootFolder $rootFolder
44
-	 * @param IUserManager $userManager
45
-	 */
46
-	function __construct(IRootFolder $rootFolder, IUserManager $userManager) {
47
-		parent::__construct();
48
-		$this->userManager = $userManager;
49
-		$this->rootFolder = $rootFolder;
50
-	}
51
-
52
-	protected function configure() {
53
-		$this
54
-			->setName('versions:cleanup')
55
-			->setDescription('Delete versions')
56
-			->addArgument(
57
-				'user_id',
58
-				InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
59
-				'delete versions of the given user(s), if no user is given all versions will be deleted'
60
-			);
61
-	}
62
-
63
-
64
-	protected function execute(InputInterface $input, OutputInterface $output) {
65
-
66
-		$users = $input->getArgument('user_id');
67
-		if (!empty($users)) {
68
-			foreach ($users as $user) {
69
-				if ($this->userManager->userExists($user)) {
70
-					$output->writeln("Delete versions of   <info>$user</info>");
71
-					$this->deleteVersions($user);
72
-				} else {
73
-					$output->writeln("<error>Unknown user $user</error>");
74
-				}
75
-			}
76
-		} else {
77
-			$output->writeln('Delete all versions');
78
-			foreach ($this->userManager->getBackends() as $backend) {
79
-				$name = get_class($backend);
80
-
81
-				if ($backend instanceof IUserBackend) {
82
-					$name = $backend->getBackendName();
83
-				}
84
-
85
-				$output->writeln("Delete versions for users on backend <info>$name</info>");
86
-
87
-				$limit = 500;
88
-				$offset = 0;
89
-				do {
90
-					$users = $backend->getUsers('', $limit, $offset);
91
-					foreach ($users as $user) {
92
-						$output->writeln("   <info>$user</info>");
93
-						$this->deleteVersions($user);
94
-					}
95
-					$offset += $limit;
96
-				} while (count($users) >= $limit);
97
-			}
98
-		}
99
-	}
100
-
101
-
102
-	/**
103
-	 * delete versions for the given user
104
-	 *
105
-	 * @param string $user
106
-	 */
107
-	protected function deleteVersions($user) {
108
-		\OC_Util::tearDownFS();
109
-		\OC_Util::setupFS($user);
110
-		if ($this->rootFolder->nodeExists('/' . $user . '/files_versions')) {
111
-			$this->rootFolder->get('/' . $user . '/files_versions')->delete();
112
-		}
113
-	}
36
+    /** @var IUserManager */
37
+    protected $userManager;
38
+
39
+    /** @var IRootFolder */
40
+    protected $rootFolder;
41
+
42
+    /**
43
+     * @param IRootFolder $rootFolder
44
+     * @param IUserManager $userManager
45
+     */
46
+    function __construct(IRootFolder $rootFolder, IUserManager $userManager) {
47
+        parent::__construct();
48
+        $this->userManager = $userManager;
49
+        $this->rootFolder = $rootFolder;
50
+    }
51
+
52
+    protected function configure() {
53
+        $this
54
+            ->setName('versions:cleanup')
55
+            ->setDescription('Delete versions')
56
+            ->addArgument(
57
+                'user_id',
58
+                InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
59
+                'delete versions of the given user(s), if no user is given all versions will be deleted'
60
+            );
61
+    }
62
+
63
+
64
+    protected function execute(InputInterface $input, OutputInterface $output) {
65
+
66
+        $users = $input->getArgument('user_id');
67
+        if (!empty($users)) {
68
+            foreach ($users as $user) {
69
+                if ($this->userManager->userExists($user)) {
70
+                    $output->writeln("Delete versions of   <info>$user</info>");
71
+                    $this->deleteVersions($user);
72
+                } else {
73
+                    $output->writeln("<error>Unknown user $user</error>");
74
+                }
75
+            }
76
+        } else {
77
+            $output->writeln('Delete all versions');
78
+            foreach ($this->userManager->getBackends() as $backend) {
79
+                $name = get_class($backend);
80
+
81
+                if ($backend instanceof IUserBackend) {
82
+                    $name = $backend->getBackendName();
83
+                }
84
+
85
+                $output->writeln("Delete versions for users on backend <info>$name</info>");
86
+
87
+                $limit = 500;
88
+                $offset = 0;
89
+                do {
90
+                    $users = $backend->getUsers('', $limit, $offset);
91
+                    foreach ($users as $user) {
92
+                        $output->writeln("   <info>$user</info>");
93
+                        $this->deleteVersions($user);
94
+                    }
95
+                    $offset += $limit;
96
+                } while (count($users) >= $limit);
97
+            }
98
+        }
99
+    }
100
+
101
+
102
+    /**
103
+     * delete versions for the given user
104
+     *
105
+     * @param string $user
106
+     */
107
+    protected function deleteVersions($user) {
108
+        \OC_Util::tearDownFS();
109
+        \OC_Util::setupFS($user);
110
+        if ($this->rootFolder->nodeExists('/' . $user . '/files_versions')) {
111
+            $this->rootFolder->get('/' . $user . '/files_versions')->delete();
112
+        }
113
+    }
114 114
 
115 115
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Capabilities.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -29,16 +29,16 @@
 block discarded – undo
29 29
 
30 30
 class Capabilities implements ICapability {
31 31
 	
32
-	/**
33
-	 * Return this classes capabilities
34
-	 *
35
-	 * @return array
36
-	 */
37
-	public function getCapabilities() {
38
-		return [
39
-			'files' => [
40
-				'versioning' => true
41
-			]
42
-		];
43
-	}
32
+    /**
33
+     * Return this classes capabilities
34
+     *
35
+     * @return array
36
+     */
37
+    public function getCapabilities() {
38
+        return [
39
+            'files' => [
40
+                'versioning' => true
41
+            ]
42
+        ];
43
+    }
44 44
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Hooks.php 1 patch
Indentation   +133 added lines, -133 removed lines patch added patch discarded remove patch
@@ -35,137 +35,137 @@
 block discarded – undo
35 35
 
36 36
 class Hooks {
37 37
 
38
-	public static function connectHooks() {
39
-		// Listen to write signals
40
-		\OCP\Util::connectHook('OC_Filesystem', 'write', 'OCA\Files_Versions\Hooks', 'write_hook');
41
-		// Listen to delete and rename signals
42
-		\OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Files_Versions\Hooks', 'remove_hook');
43
-		\OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Versions\Hooks', 'pre_remove_hook');
44
-		\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Files_Versions\Hooks', 'rename_hook');
45
-		\OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Files_Versions\Hooks', 'copy_hook');
46
-		\OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Files_Versions\Hooks', 'pre_renameOrCopy_hook');
47
-		\OCP\Util::connectHook('OC_Filesystem', 'copy', 'OCA\Files_Versions\Hooks', 'pre_renameOrCopy_hook');
48
-
49
-		$eventDispatcher = \OC::$server->getEventDispatcher();
50
-		$eventDispatcher->addListener('OCA\Files::loadAdditionalScripts', ['OCA\Files_Versions\Hooks', 'onLoadFilesAppScripts']);
51
-	}
52
-
53
-	/**
54
-	 * listen to write event.
55
-	 */
56
-	public static function write_hook( $params ) {
57
-
58
-		if (\OCP\App::isEnabled('files_versions')) {
59
-			$path = $params[\OC\Files\Filesystem::signal_param_path];
60
-			if($path<>'') {
61
-				Storage::store($path);
62
-			}
63
-		}
64
-	}
65
-
66
-
67
-	/**
68
-	 * Erase versions of deleted file
69
-	 * @param array $params
70
-	 *
71
-	 * This function is connected to the delete signal of OC_Filesystem
72
-	 * cleanup the versions directory if the actual file gets deleted
73
-	 */
74
-	public static function remove_hook($params) {
75
-
76
-		if (\OCP\App::isEnabled('files_versions')) {
77
-			$path = $params[\OC\Files\Filesystem::signal_param_path];
78
-			if($path<>'') {
79
-				Storage::delete($path);
80
-			}
81
-		}
82
-	}
83
-
84
-	/**
85
-	 * mark file as "deleted" so that we can clean up the versions if the file is gone
86
-	 * @param array $params
87
-	 */
88
-	public static function pre_remove_hook($params) {
89
-		$path = $params[\OC\Files\Filesystem::signal_param_path];
90
-			if($path<>'') {
91
-				Storage::markDeletedFile($path);
92
-			}
93
-	}
94
-
95
-	/**
96
-	 * rename/move versions of renamed/moved files
97
-	 * @param array $params array with oldpath and newpath
98
-	 *
99
-	 * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
100
-	 * of the stored versions along the actual file
101
-	 */
102
-	public static function rename_hook($params) {
103
-
104
-		if (\OCP\App::isEnabled('files_versions')) {
105
-			$oldpath = $params['oldpath'];
106
-			$newpath = $params['newpath'];
107
-			if($oldpath<>'' && $newpath<>'') {
108
-				Storage::renameOrCopy($oldpath, $newpath, 'rename');
109
-			}
110
-		}
111
-	}
112
-
113
-	/**
114
-	 * copy versions of copied files
115
-	 * @param array $params array with oldpath and newpath
116
-	 *
117
-	 * This function is connected to the copy signal of OC_Filesystem and copies the
118
-	 * the stored versions to the new location
119
-	 */
120
-	public static function copy_hook($params) {
121
-
122
-		if (\OCP\App::isEnabled('files_versions')) {
123
-			$oldpath = $params['oldpath'];
124
-			$newpath = $params['newpath'];
125
-			if($oldpath<>'' && $newpath<>'') {
126
-				Storage::renameOrCopy($oldpath, $newpath, 'copy');
127
-			}
128
-		}
129
-	}
130
-
131
-	/**
132
-	 * Remember owner and the owner path of the source file.
133
-	 * If the file already exists, then it was a upload of a existing file
134
-	 * over the web interface and we call Storage::store() directly
135
-	 *
136
-	 * @param array $params array with oldpath and newpath
137
-	 *
138
-	 */
139
-	public static function pre_renameOrCopy_hook($params) {
140
-		if (\OCP\App::isEnabled('files_versions')) {
141
-
142
-			// if we rename a movable mount point, then the versions don't have
143
-			// to be renamed
144
-			$absOldPath = \OC\Files\Filesystem::normalizePath('/' . \OCP\User::getUser() . '/files' . $params['oldpath']);
145
-			$manager = \OC\Files\Filesystem::getMountManager();
146
-			$mount = $manager->find($absOldPath);
147
-			$internalPath = $mount->getInternalPath($absOldPath);
148
-			if ($internalPath === '' and $mount instanceof \OC\Files\Mount\MoveableMount) {
149
-				return;
150
-			}
151
-
152
-			$view = new \OC\Files\View(\OCP\User::getUser() . '/files');
153
-			if ($view->file_exists($params['newpath'])) {
154
-				Storage::store($params['newpath']);
155
-			} else {
156
-				Storage::setSourcePathAndUser($params['oldpath']);
157
-			}
158
-
159
-		}
160
-	}
161
-
162
-	/**
163
-	 * Load additional scripts when the files app is visible
164
-	 */
165
-	public static function onLoadFilesAppScripts() {
166
-		\OCP\Util::addScript('files_versions', 'versionmodel');
167
-		\OCP\Util::addScript('files_versions', 'versioncollection');
168
-		\OCP\Util::addScript('files_versions', 'versionstabview');
169
-		\OCP\Util::addScript('files_versions', 'filesplugin');
170
-	}
38
+    public static function connectHooks() {
39
+        // Listen to write signals
40
+        \OCP\Util::connectHook('OC_Filesystem', 'write', 'OCA\Files_Versions\Hooks', 'write_hook');
41
+        // Listen to delete and rename signals
42
+        \OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Files_Versions\Hooks', 'remove_hook');
43
+        \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Versions\Hooks', 'pre_remove_hook');
44
+        \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Files_Versions\Hooks', 'rename_hook');
45
+        \OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Files_Versions\Hooks', 'copy_hook');
46
+        \OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Files_Versions\Hooks', 'pre_renameOrCopy_hook');
47
+        \OCP\Util::connectHook('OC_Filesystem', 'copy', 'OCA\Files_Versions\Hooks', 'pre_renameOrCopy_hook');
48
+
49
+        $eventDispatcher = \OC::$server->getEventDispatcher();
50
+        $eventDispatcher->addListener('OCA\Files::loadAdditionalScripts', ['OCA\Files_Versions\Hooks', 'onLoadFilesAppScripts']);
51
+    }
52
+
53
+    /**
54
+     * listen to write event.
55
+     */
56
+    public static function write_hook( $params ) {
57
+
58
+        if (\OCP\App::isEnabled('files_versions')) {
59
+            $path = $params[\OC\Files\Filesystem::signal_param_path];
60
+            if($path<>'') {
61
+                Storage::store($path);
62
+            }
63
+        }
64
+    }
65
+
66
+
67
+    /**
68
+     * Erase versions of deleted file
69
+     * @param array $params
70
+     *
71
+     * This function is connected to the delete signal of OC_Filesystem
72
+     * cleanup the versions directory if the actual file gets deleted
73
+     */
74
+    public static function remove_hook($params) {
75
+
76
+        if (\OCP\App::isEnabled('files_versions')) {
77
+            $path = $params[\OC\Files\Filesystem::signal_param_path];
78
+            if($path<>'') {
79
+                Storage::delete($path);
80
+            }
81
+        }
82
+    }
83
+
84
+    /**
85
+     * mark file as "deleted" so that we can clean up the versions if the file is gone
86
+     * @param array $params
87
+     */
88
+    public static function pre_remove_hook($params) {
89
+        $path = $params[\OC\Files\Filesystem::signal_param_path];
90
+            if($path<>'') {
91
+                Storage::markDeletedFile($path);
92
+            }
93
+    }
94
+
95
+    /**
96
+     * rename/move versions of renamed/moved files
97
+     * @param array $params array with oldpath and newpath
98
+     *
99
+     * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
100
+     * of the stored versions along the actual file
101
+     */
102
+    public static function rename_hook($params) {
103
+
104
+        if (\OCP\App::isEnabled('files_versions')) {
105
+            $oldpath = $params['oldpath'];
106
+            $newpath = $params['newpath'];
107
+            if($oldpath<>'' && $newpath<>'') {
108
+                Storage::renameOrCopy($oldpath, $newpath, 'rename');
109
+            }
110
+        }
111
+    }
112
+
113
+    /**
114
+     * copy versions of copied files
115
+     * @param array $params array with oldpath and newpath
116
+     *
117
+     * This function is connected to the copy signal of OC_Filesystem and copies the
118
+     * the stored versions to the new location
119
+     */
120
+    public static function copy_hook($params) {
121
+
122
+        if (\OCP\App::isEnabled('files_versions')) {
123
+            $oldpath = $params['oldpath'];
124
+            $newpath = $params['newpath'];
125
+            if($oldpath<>'' && $newpath<>'') {
126
+                Storage::renameOrCopy($oldpath, $newpath, 'copy');
127
+            }
128
+        }
129
+    }
130
+
131
+    /**
132
+     * Remember owner and the owner path of the source file.
133
+     * If the file already exists, then it was a upload of a existing file
134
+     * over the web interface and we call Storage::store() directly
135
+     *
136
+     * @param array $params array with oldpath and newpath
137
+     *
138
+     */
139
+    public static function pre_renameOrCopy_hook($params) {
140
+        if (\OCP\App::isEnabled('files_versions')) {
141
+
142
+            // if we rename a movable mount point, then the versions don't have
143
+            // to be renamed
144
+            $absOldPath = \OC\Files\Filesystem::normalizePath('/' . \OCP\User::getUser() . '/files' . $params['oldpath']);
145
+            $manager = \OC\Files\Filesystem::getMountManager();
146
+            $mount = $manager->find($absOldPath);
147
+            $internalPath = $mount->getInternalPath($absOldPath);
148
+            if ($internalPath === '' and $mount instanceof \OC\Files\Mount\MoveableMount) {
149
+                return;
150
+            }
151
+
152
+            $view = new \OC\Files\View(\OCP\User::getUser() . '/files');
153
+            if ($view->file_exists($params['newpath'])) {
154
+                Storage::store($params['newpath']);
155
+            } else {
156
+                Storage::setSourcePathAndUser($params['oldpath']);
157
+            }
158
+
159
+        }
160
+    }
161
+
162
+    /**
163
+     * Load additional scripts when the files app is visible
164
+     */
165
+    public static function onLoadFilesAppScripts() {
166
+        \OCP\Util::addScript('files_versions', 'versionmodel');
167
+        \OCP\Util::addScript('files_versions', 'versioncollection');
168
+        \OCP\Util::addScript('files_versions', 'versionstabview');
169
+        \OCP\Util::addScript('files_versions', 'filesplugin');
170
+    }
171 171
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Expiration.php 1 patch
Indentation   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -27,173 +27,173 @@
 block discarded – undo
27 27
 
28 28
 class Expiration {
29 29
 
30
-	// how long do we keep files a version if no other value is defined in the config file (unit: days)
31
-	const NO_OBLIGATION = -1;
32
-
33
-	/** @var ITimeFactory */
34
-	private $timeFactory;
35
-
36
-	/** @var string */
37
-	private $retentionObligation;
38
-
39
-	/** @var int */
40
-	private $minAge;
41
-
42
-	/** @var int */
43
-	private $maxAge;
44
-
45
-	/** @var bool */
46
-	private $canPurgeToSaveSpace;
47
-
48
-	public function __construct(IConfig $config,ITimeFactory $timeFactory){
49
-		$this->timeFactory = $timeFactory;
50
-		$this->retentionObligation = $config->getSystemValue('versions_retention_obligation', 'auto');
51
-
52
-		if ($this->retentionObligation !== 'disabled') {
53
-			$this->parseRetentionObligation();
54
-		}
55
-	}
56
-
57
-	/**
58
-	 * Is versions expiration enabled
59
-	 * @return bool
60
-	 */
61
-	public function isEnabled(){
62
-		return $this->retentionObligation !== 'disabled';
63
-	}
64
-
65
-	/**
66
-	 * Is default expiration active
67
-	 */
68
-	public function shouldAutoExpire(){
69
-		return $this->minAge === self::NO_OBLIGATION
70
-				|| $this->maxAge === self::NO_OBLIGATION;
71
-	}
72
-
73
-	/**
74
-	 * Check if given timestamp in expiration range
75
-	 * @param int $timestamp
76
-	 * @param bool $quotaExceeded
77
-	 * @return bool
78
-	 */
79
-	public function isExpired($timestamp, $quotaExceeded = false){
80
-		// No expiration if disabled
81
-		if (!$this->isEnabled()) {
82
-			return false;
83
-		}
84
-
85
-		// Purge to save space (if allowed)
86
-		if ($quotaExceeded && $this->canPurgeToSaveSpace) {
87
-			return true;
88
-		}
89
-
90
-		$time = $this->timeFactory->getTime();
91
-		// Never expire dates in future e.g. misconfiguration or negative time
92
-		// adjustment
93
-		if ($time<$timestamp) {
94
-			return false;
95
-		}
96
-
97
-		// Purge as too old
98
-		if ($this->maxAge !== self::NO_OBLIGATION) {
99
-			$maxTimestamp = $time - ($this->maxAge * 86400);
100
-			$isOlderThanMax = $timestamp < $maxTimestamp;
101
-		} else {
102
-			$isOlderThanMax = false;
103
-		}
104
-
105
-		if ($this->minAge !== self::NO_OBLIGATION) {
106
-			// older than Min obligation and we are running out of quota?
107
-			$minTimestamp = $time - ($this->minAge * 86400);
108
-			$isMinReached = ($timestamp < $minTimestamp) && $quotaExceeded;
109
-		} else {
110
-			$isMinReached = false;
111
-		}
112
-
113
-		return $isOlderThanMax || $isMinReached;
114
-	}
115
-
116
-	/**
117
-	 * Get maximal retention obligation as a timestamp
118
-	 * @return int
119
-	 */
120
-	public function getMaxAgeAsTimestamp(){
121
-		$maxAge = false;
122
-		if ($this->isEnabled() && $this->maxAge !== self::NO_OBLIGATION) {
123
-			$time = $this->timeFactory->getTime();
124
-			$maxAge = $time - ($this->maxAge * 86400);
125
-		}
126
-		return $maxAge;
127
-	}
128
-
129
-	/**
130
-	* Read versions_retention_obligation, validate it 
131
-	* and set private members accordingly
132
-	*/
133
-	private function parseRetentionObligation(){
134
-		$splitValues = explode(',', $this->retentionObligation);
135
-		if (!isset($splitValues[0])) {
136
-			$minValue = 'auto';
137
-		} else {
138
-			$minValue = trim($splitValues[0]);
139
-		}
140
-
141
-		if (!isset($splitValues[1])) {
142
-			$maxValue = 'auto';
143
-		} else {
144
-			$maxValue = trim($splitValues[1]);
145
-		}
146
-
147
-		$isValid = true;
148
-		// Validate
149
-		if (!ctype_digit($minValue) && $minValue !== 'auto') {
150
-			$isValid = false;
151
-			\OC::$server->getLogger()->warning(
152
-					$minValue . ' is not a valid value for minimal versions retention obligation. Check versions_retention_obligation in your config.php. Falling back to auto.',
153
-					['app'=>'files_versions']
154
-			);
155
-		}
156
-
157
-		if (!ctype_digit($maxValue) && $maxValue !== 'auto') {
158
-			$isValid = false;
159
-			\OC::$server->getLogger()->warning(
160
-					$maxValue . ' is not a valid value for maximal versions retention obligation. Check versions_retention_obligation in your config.php. Falling back to auto.',
161
-					['app'=>'files_versions']
162
-			);
163
-		}
164
-
165
-		if (!$isValid){
166
-			$minValue = 'auto';
167
-			$maxValue = 'auto';
168
-		}
169
-
170
-
171
-		if ($minValue === 'auto' && $maxValue === 'auto') {
172
-			// Default: Delete anytime if space needed
173
-			$this->minAge = self::NO_OBLIGATION;
174
-			$this->maxAge = self::NO_OBLIGATION;
175
-			$this->canPurgeToSaveSpace = true;
176
-		} elseif ($minValue !== 'auto' && $maxValue === 'auto') {
177
-			// Keep for X days but delete anytime if space needed
178
-			$this->minAge = intval($minValue);
179
-			$this->maxAge = self::NO_OBLIGATION;
180
-			$this->canPurgeToSaveSpace = true;
181
-		} elseif ($minValue === 'auto' && $maxValue !== 'auto') {
182
-			// Delete anytime if space needed, Delete all older than max automatically
183
-			$this->minAge = self::NO_OBLIGATION;
184
-			$this->maxAge = intval($maxValue);
185
-			$this->canPurgeToSaveSpace = true;
186
-		} elseif ($minValue !== 'auto' && $maxValue !== 'auto') {
187
-			// Delete all older than max OR older than min if space needed
188
-
189
-			// Max < Min as per https://github.com/owncloud/core/issues/16301
190
-			if ($maxValue < $minValue) {
191
-				$maxValue = $minValue;
192
-			}
193
-
194
-			$this->minAge = intval($minValue);
195
-			$this->maxAge = intval($maxValue);
196
-			$this->canPurgeToSaveSpace = false;
197
-		}
198
-	}
30
+    // how long do we keep files a version if no other value is defined in the config file (unit: days)
31
+    const NO_OBLIGATION = -1;
32
+
33
+    /** @var ITimeFactory */
34
+    private $timeFactory;
35
+
36
+    /** @var string */
37
+    private $retentionObligation;
38
+
39
+    /** @var int */
40
+    private $minAge;
41
+
42
+    /** @var int */
43
+    private $maxAge;
44
+
45
+    /** @var bool */
46
+    private $canPurgeToSaveSpace;
47
+
48
+    public function __construct(IConfig $config,ITimeFactory $timeFactory){
49
+        $this->timeFactory = $timeFactory;
50
+        $this->retentionObligation = $config->getSystemValue('versions_retention_obligation', 'auto');
51
+
52
+        if ($this->retentionObligation !== 'disabled') {
53
+            $this->parseRetentionObligation();
54
+        }
55
+    }
56
+
57
+    /**
58
+     * Is versions expiration enabled
59
+     * @return bool
60
+     */
61
+    public function isEnabled(){
62
+        return $this->retentionObligation !== 'disabled';
63
+    }
64
+
65
+    /**
66
+     * Is default expiration active
67
+     */
68
+    public function shouldAutoExpire(){
69
+        return $this->minAge === self::NO_OBLIGATION
70
+                || $this->maxAge === self::NO_OBLIGATION;
71
+    }
72
+
73
+    /**
74
+     * Check if given timestamp in expiration range
75
+     * @param int $timestamp
76
+     * @param bool $quotaExceeded
77
+     * @return bool
78
+     */
79
+    public function isExpired($timestamp, $quotaExceeded = false){
80
+        // No expiration if disabled
81
+        if (!$this->isEnabled()) {
82
+            return false;
83
+        }
84
+
85
+        // Purge to save space (if allowed)
86
+        if ($quotaExceeded && $this->canPurgeToSaveSpace) {
87
+            return true;
88
+        }
89
+
90
+        $time = $this->timeFactory->getTime();
91
+        // Never expire dates in future e.g. misconfiguration or negative time
92
+        // adjustment
93
+        if ($time<$timestamp) {
94
+            return false;
95
+        }
96
+
97
+        // Purge as too old
98
+        if ($this->maxAge !== self::NO_OBLIGATION) {
99
+            $maxTimestamp = $time - ($this->maxAge * 86400);
100
+            $isOlderThanMax = $timestamp < $maxTimestamp;
101
+        } else {
102
+            $isOlderThanMax = false;
103
+        }
104
+
105
+        if ($this->minAge !== self::NO_OBLIGATION) {
106
+            // older than Min obligation and we are running out of quota?
107
+            $minTimestamp = $time - ($this->minAge * 86400);
108
+            $isMinReached = ($timestamp < $minTimestamp) && $quotaExceeded;
109
+        } else {
110
+            $isMinReached = false;
111
+        }
112
+
113
+        return $isOlderThanMax || $isMinReached;
114
+    }
115
+
116
+    /**
117
+     * Get maximal retention obligation as a timestamp
118
+     * @return int
119
+     */
120
+    public function getMaxAgeAsTimestamp(){
121
+        $maxAge = false;
122
+        if ($this->isEnabled() && $this->maxAge !== self::NO_OBLIGATION) {
123
+            $time = $this->timeFactory->getTime();
124
+            $maxAge = $time - ($this->maxAge * 86400);
125
+        }
126
+        return $maxAge;
127
+    }
128
+
129
+    /**
130
+     * Read versions_retention_obligation, validate it 
131
+     * and set private members accordingly
132
+     */
133
+    private function parseRetentionObligation(){
134
+        $splitValues = explode(',', $this->retentionObligation);
135
+        if (!isset($splitValues[0])) {
136
+            $minValue = 'auto';
137
+        } else {
138
+            $minValue = trim($splitValues[0]);
139
+        }
140
+
141
+        if (!isset($splitValues[1])) {
142
+            $maxValue = 'auto';
143
+        } else {
144
+            $maxValue = trim($splitValues[1]);
145
+        }
146
+
147
+        $isValid = true;
148
+        // Validate
149
+        if (!ctype_digit($minValue) && $minValue !== 'auto') {
150
+            $isValid = false;
151
+            \OC::$server->getLogger()->warning(
152
+                    $minValue . ' is not a valid value for minimal versions retention obligation. Check versions_retention_obligation in your config.php. Falling back to auto.',
153
+                    ['app'=>'files_versions']
154
+            );
155
+        }
156
+
157
+        if (!ctype_digit($maxValue) && $maxValue !== 'auto') {
158
+            $isValid = false;
159
+            \OC::$server->getLogger()->warning(
160
+                    $maxValue . ' is not a valid value for maximal versions retention obligation. Check versions_retention_obligation in your config.php. Falling back to auto.',
161
+                    ['app'=>'files_versions']
162
+            );
163
+        }
164
+
165
+        if (!$isValid){
166
+            $minValue = 'auto';
167
+            $maxValue = 'auto';
168
+        }
169
+
170
+
171
+        if ($minValue === 'auto' && $maxValue === 'auto') {
172
+            // Default: Delete anytime if space needed
173
+            $this->minAge = self::NO_OBLIGATION;
174
+            $this->maxAge = self::NO_OBLIGATION;
175
+            $this->canPurgeToSaveSpace = true;
176
+        } elseif ($minValue !== 'auto' && $maxValue === 'auto') {
177
+            // Keep for X days but delete anytime if space needed
178
+            $this->minAge = intval($minValue);
179
+            $this->maxAge = self::NO_OBLIGATION;
180
+            $this->canPurgeToSaveSpace = true;
181
+        } elseif ($minValue === 'auto' && $maxValue !== 'auto') {
182
+            // Delete anytime if space needed, Delete all older than max automatically
183
+            $this->minAge = self::NO_OBLIGATION;
184
+            $this->maxAge = intval($maxValue);
185
+            $this->canPurgeToSaveSpace = true;
186
+        } elseif ($minValue !== 'auto' && $maxValue !== 'auto') {
187
+            // Delete all older than max OR older than min if space needed
188
+
189
+            // Max < Min as per https://github.com/owncloud/core/issues/16301
190
+            if ($maxValue < $minValue) {
191
+                $maxValue = $minValue;
192
+            }
193
+
194
+            $this->minAge = intval($minValue);
195
+            $this->maxAge = intval($maxValue);
196
+            $this->canPurgeToSaveSpace = false;
197
+        }
198
+    }
199 199
 }
Please login to merge, or discard this patch.
lib/public/Authentication/IApacheBackend.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -38,28 +38,28 @@
 block discarded – undo
38 38
  */
39 39
 interface IApacheBackend {
40 40
 
41
-	/**
42
-	 * In case the user has been authenticated by Apache true is returned.
43
-	 *
44
-	 * @return boolean whether Apache reports a user as currently logged in.
45
-	 * @since 6.0.0
46
-	 */
47
-	public function isSessionActive();
41
+    /**
42
+     * In case the user has been authenticated by Apache true is returned.
43
+     *
44
+     * @return boolean whether Apache reports a user as currently logged in.
45
+     * @since 6.0.0
46
+     */
47
+    public function isSessionActive();
48 48
 
49
-	/**
50
-	 * Creates an attribute which is added to the logout hyperlink. It can
51
-	 * supply any attribute(s) which are valid for <a>.
52
-	 *
53
-	 * @return string with one or more HTML attributes.
54
-	 * @since 6.0.0
55
-	 */
56
-	public function getLogoutAttribute();
49
+    /**
50
+     * Creates an attribute which is added to the logout hyperlink. It can
51
+     * supply any attribute(s) which are valid for <a>.
52
+     *
53
+     * @return string with one or more HTML attributes.
54
+     * @since 6.0.0
55
+     */
56
+    public function getLogoutAttribute();
57 57
 
58
-	/**
59
-	 * Return the id of the current user
60
-	 * @return string
61
-	 * @since 6.0.0
62
-	 */
63
-	public function getCurrentUserId();
58
+    /**
59
+     * Return the id of the current user
60
+     * @return string
61
+     * @since 6.0.0
62
+     */
63
+    public function getCurrentUserId();
64 64
 
65 65
 }
Please login to merge, or discard this patch.
lib/public/Authentication/TwoFactorAuth/IProvider.php 1 patch
Indentation   +55 added lines, -55 removed lines patch added patch discarded remove patch
@@ -30,64 +30,64 @@
 block discarded – undo
30 30
  */
31 31
 interface IProvider {
32 32
 
33
-	/**
34
-	 * Get unique identifier of this 2FA provider
35
-	 *
36
-	 * @since 9.1.0
37
-	 *
38
-	 * @return string
39
-	 */
40
-	public function getId();
33
+    /**
34
+     * Get unique identifier of this 2FA provider
35
+     *
36
+     * @since 9.1.0
37
+     *
38
+     * @return string
39
+     */
40
+    public function getId();
41 41
 
42
-	/**
43
-	 * Get the display name for selecting the 2FA provider
44
-	 *
45
-	 * Example: "Email"
46
-	 *
47
-	 * @since 9.1.0
48
-	 *
49
-	 * @return string
50
-	 */
51
-	public function getDisplayName();
42
+    /**
43
+     * Get the display name for selecting the 2FA provider
44
+     *
45
+     * Example: "Email"
46
+     *
47
+     * @since 9.1.0
48
+     *
49
+     * @return string
50
+     */
51
+    public function getDisplayName();
52 52
 
53
-	/**
54
-	 * Get the description for selecting the 2FA provider
55
-	 *
56
-	 * Example: "Get a token via e-mail"
57
-	 *
58
-	 * @since 9.1.0
59
-	 *
60
-	 * @return string
61
-	 */
62
-	public function getDescription();
53
+    /**
54
+     * Get the description for selecting the 2FA provider
55
+     *
56
+     * Example: "Get a token via e-mail"
57
+     *
58
+     * @since 9.1.0
59
+     *
60
+     * @return string
61
+     */
62
+    public function getDescription();
63 63
 
64
-	/**
65
-	 * Get the template for rending the 2FA provider view
66
-	 *
67
-	 * @since 9.1.0
68
-	 *
69
-	 * @param IUser $user
70
-	 * @return Template
71
-	 */
72
-	public function getTemplate(IUser $user);
64
+    /**
65
+     * Get the template for rending the 2FA provider view
66
+     *
67
+     * @since 9.1.0
68
+     *
69
+     * @param IUser $user
70
+     * @return Template
71
+     */
72
+    public function getTemplate(IUser $user);
73 73
 
74
-	/**
75
-	 * Verify the given challenge
76
-	 *
77
-	 * @since 9.1.0
78
-	 *
79
-	 * @param IUser $user
80
-	 * @param string $challenge
81
-	 */
82
-	public function verifyChallenge(IUser $user, $challenge);
74
+    /**
75
+     * Verify the given challenge
76
+     *
77
+     * @since 9.1.0
78
+     *
79
+     * @param IUser $user
80
+     * @param string $challenge
81
+     */
82
+    public function verifyChallenge(IUser $user, $challenge);
83 83
 
84
-	/**
85
-	 * Decides whether 2FA is enabled for the given user
86
-	 *
87
-	 * @since 9.1.0
88
-	 *
89
-	 * @param IUser $user
90
-	 * @return boolean
91
-	 */
92
-	public function isTwoFactorAuthEnabledForUser(IUser $user);
84
+    /**
85
+     * Decides whether 2FA is enabled for the given user
86
+     *
87
+     * @since 9.1.0
88
+     *
89
+     * @param IUser $user
90
+     * @return boolean
91
+     */
92
+    public function isTwoFactorAuthEnabledForUser(IUser $user);
93 93
 }
Please login to merge, or discard this patch.