Passed
Push — master ( f1b940...81ea28 )
by Joas
14:36 queued 15s
created
lib/private/Authentication/Exceptions/ExpiredTokenException.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -26,16 +26,16 @@
 block discarded – undo
26 26
 use OC\Authentication\Token\IToken;
27 27
 
28 28
 class ExpiredTokenException extends InvalidTokenException {
29
-	/** @var IToken */
30
-	private $token;
29
+    /** @var IToken */
30
+    private $token;
31 31
 
32
-	public function __construct(IToken $token) {
33
-		parent::__construct();
32
+    public function __construct(IToken $token) {
33
+        parent::__construct();
34 34
 
35
-		$this->token = $token;
36
-	}
35
+        $this->token = $token;
36
+    }
37 37
 
38
-	public function getToken(): IToken {
39
-		return $this->token;
40
-	}
38
+    public function getToken(): IToken {
39
+        return $this->token;
40
+    }
41 41
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Versions/IVersionManager.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -25,12 +25,12 @@
 block discarded – undo
25 25
  * @since 15.0.0
26 26
  */
27 27
 interface IVersionManager extends IVersionBackend {
28
-	/**
29
-	 * Register a new backend
30
-	 *
31
-	 * @param string $storageType
32
-	 * @param IVersionBackend $backend
33
-	 * @since 15.0.0
34
-	 */
35
-	public function registerBackend(string $storageType, IVersionBackend $backend);
28
+    /**
29
+     * Register a new backend
30
+     *
31
+     * @param string $storageType
32
+     * @param IVersionBackend $backend
33
+     * @since 15.0.0
34
+     */
35
+    public function registerBackend(string $storageType, IVersionBackend $backend);
36 36
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Sabre/VersionRoot.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -71,7 +71,7 @@
 block discarded – undo
71 71
 	public function getChild($name) {
72 72
 		$userFolder = $this->rootFolder->getUserFolder($this->user->getUID());
73 73
 
74
-		$fileId = (int)$name;
74
+		$fileId = (int) $name;
75 75
 		$nodes = $userFolder->getById($fileId);
76 76
 
77 77
 		if ($nodes === []) {
Please login to merge, or discard this patch.
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -36,74 +36,74 @@
 block discarded – undo
36 36
 
37 37
 class VersionRoot implements ICollection {
38 38
 
39
-	/** @var IUser */
40
-	private $user;
39
+    /** @var IUser */
40
+    private $user;
41 41
 
42
-	/** @var IRootFolder */
43
-	private $rootFolder;
42
+    /** @var IRootFolder */
43
+    private $rootFolder;
44 44
 
45
-	/** @var IVersionManager */
46
-	private $versionManager;
45
+    /** @var IVersionManager */
46
+    private $versionManager;
47 47
 
48
-	public function __construct(IUser $user, IRootFolder $rootFolder, IVersionManager $versionManager) {
49
-		$this->user = $user;
50
-		$this->rootFolder = $rootFolder;
51
-		$this->versionManager = $versionManager;
52
-	}
48
+    public function __construct(IUser $user, IRootFolder $rootFolder, IVersionManager $versionManager) {
49
+        $this->user = $user;
50
+        $this->rootFolder = $rootFolder;
51
+        $this->versionManager = $versionManager;
52
+    }
53 53
 
54
-	public function delete() {
55
-		throw new Forbidden();
56
-	}
54
+    public function delete() {
55
+        throw new Forbidden();
56
+    }
57 57
 
58
-	public function getName(): string {
59
-		return 'versions';
60
-	}
58
+    public function getName(): string {
59
+        return 'versions';
60
+    }
61 61
 
62
-	public function setName($name) {
63
-		throw new Forbidden();
64
-	}
62
+    public function setName($name) {
63
+        throw new Forbidden();
64
+    }
65 65
 
66
-	public function createFile($name, $data = null) {
67
-		throw new Forbidden();
68
-	}
66
+    public function createFile($name, $data = null) {
67
+        throw new Forbidden();
68
+    }
69 69
 
70
-	public function createDirectory($name) {
71
-		throw new Forbidden();
72
-	}
70
+    public function createDirectory($name) {
71
+        throw new Forbidden();
72
+    }
73 73
 
74
-	public function getChild($name) {
75
-		$userFolder = $this->rootFolder->getUserFolder($this->user->getUID());
74
+    public function getChild($name) {
75
+        $userFolder = $this->rootFolder->getUserFolder($this->user->getUID());
76 76
 
77
-		$fileId = (int)$name;
78
-		$nodes = $userFolder->getById($fileId);
77
+        $fileId = (int)$name;
78
+        $nodes = $userFolder->getById($fileId);
79 79
 
80
-		if ($nodes === []) {
81
-			throw new NotFound();
82
-		}
80
+        if ($nodes === []) {
81
+            throw new NotFound();
82
+        }
83 83
 
84
-		$node = array_pop($nodes);
84
+        $node = array_pop($nodes);
85 85
 
86
-		if (!$node instanceof File) {
87
-			throw new NotFound();
88
-		}
86
+        if (!$node instanceof File) {
87
+            throw new NotFound();
88
+        }
89 89
 
90
-		return new VersionCollection($node, $this->user, $this->versionManager);
91
-	}
90
+        return new VersionCollection($node, $this->user, $this->versionManager);
91
+    }
92 92
 
93
-	public function getChildren(): array {
94
-		return [];
95
-	}
93
+    public function getChildren(): array {
94
+        return [];
95
+    }
96 96
 
97
-	public function childExists($name): bool {
98
-		try {
99
-			$this->getChild($name);
100
-			return true;
101
-		} catch (NotFound $e) {
102
-			return false;
103
-		}
104
-	}
97
+    public function childExists($name): bool {
98
+        try {
99
+            $this->getChild($name);
100
+            return true;
101
+        } catch (NotFound $e) {
102
+            return false;
103
+        }
104
+    }
105 105
 
106
-	public function getLastModified(): int {
107
-		return 0;
108
-	}
106
+    public function getLastModified(): int {
107
+        return 0;
108
+    }
109 109
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Sabre/VersionFile.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
 	}
61 61
 
62 62
 	public function getETag(): string {
63
-		return (string)$this->version->getRevisionId();
63
+		return (string) $this->version->getRevisionId();
64 64
 	}
65 65
 
66 66
 	public function getSize(): int {
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
 	}
73 73
 
74 74
 	public function getName(): string {
75
-		return (string)$this->version->getRevisionId();
75
+		return (string) $this->version->getRevisionId();
76 76
 	}
77 77
 
78 78
 	public function setName($name) {
Please login to merge, or discard this patch.
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -32,62 +32,62 @@
 block discarded – undo
32 32
 use Sabre\DAV\IFile;
33 33
 
34 34
 class VersionFile implements IFile {
35
-	/** @var IVersion */
36
-	private $version;
37
-
38
-	/** @var IVersionManager */
39
-	private $versionManager;
40
-
41
-	public function __construct(IVersion $version, IVersionManager $versionManager) {
42
-		$this->version = $version;
43
-		$this->versionManager = $versionManager;
44
-	}
45
-
46
-	public function put($data) {
47
-		throw new Forbidden();
48
-	}
49
-
50
-	public function get() {
51
-		try {
52
-			return $this->versionManager->read($this->version);
53
-		} catch (NotFoundException $e) {
54
-			throw new NotFound();
55
-		}
56
-	}
57
-
58
-	public function getContentType(): string {
59
-		return $this->version->getMimeType();
60
-	}
61
-
62
-	public function getETag(): string {
63
-		return (string)$this->version->getRevisionId();
64
-	}
65
-
66
-	public function getSize(): int {
67
-		return $this->version->getSize();
68
-	}
69
-
70
-	public function delete() {
71
-		throw new Forbidden();
72
-	}
73
-
74
-	public function getName(): string {
75
-		return (string)$this->version->getRevisionId();
76
-	}
77
-
78
-	public function setName($name) {
79
-		throw new Forbidden();
80
-	}
81
-
82
-	public function getLastModified(): int {
83
-		return $this->version->getTimestamp();
84
-	}
85
-
86
-	public function rollBack() {
87
-		$this->versionManager->rollback($this->version);
88
-	}
89
-
90
-	public function getVersion(): IVersion {
91
-		return $this->version;
92
-	}
35
+    /** @var IVersion */
36
+    private $version;
37
+
38
+    /** @var IVersionManager */
39
+    private $versionManager;
40
+
41
+    public function __construct(IVersion $version, IVersionManager $versionManager) {
42
+        $this->version = $version;
43
+        $this->versionManager = $versionManager;
44
+    }
45
+
46
+    public function put($data) {
47
+        throw new Forbidden();
48
+    }
49
+
50
+    public function get() {
51
+        try {
52
+            return $this->versionManager->read($this->version);
53
+        } catch (NotFoundException $e) {
54
+            throw new NotFound();
55
+        }
56
+    }
57
+
58
+    public function getContentType(): string {
59
+        return $this->version->getMimeType();
60
+    }
61
+
62
+    public function getETag(): string {
63
+        return (string)$this->version->getRevisionId();
64
+    }
65
+
66
+    public function getSize(): int {
67
+        return $this->version->getSize();
68
+    }
69
+
70
+    public function delete() {
71
+        throw new Forbidden();
72
+    }
73
+
74
+    public function getName(): string {
75
+        return (string)$this->version->getRevisionId();
76
+    }
77
+
78
+    public function setName($name) {
79
+        throw new Forbidden();
80
+    }
81
+
82
+    public function getLastModified(): int {
83
+        return $this->version->getTimestamp();
84
+    }
85
+
86
+    public function rollBack() {
87
+        $this->versionManager->rollback($this->version);
88
+    }
89
+
90
+    public function getVersion(): IVersion {
91
+        return $this->version;
92
+    }
93 93
 }
Please login to merge, or discard this patch.
apps/files_versions/lib/Sabre/VersionCollection.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
 	public function getChildren(): array {
79 79
 		$versions = $this->versionManager->getVersionsForFile($this->user, $this->file);
80 80
 
81
-		return array_map(function (IVersion $version) {
81
+		return array_map(function(IVersion $version) {
82 82
 			return new VersionFile($version, $this->versionManager);
83 83
 		}, $versions);
84 84
 	}
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 	}
98 98
 
99 99
 	public function getName(): string {
100
-		return (string)$this->file->getId();
100
+		return (string) $this->file->getId();
101 101
 	}
102 102
 
103 103
 	public function setName($name) {
Please login to merge, or discard this patch.
Indentation   +68 added lines, -68 removed lines patch added patch discarded remove patch
@@ -36,72 +36,72 @@
 block discarded – undo
36 36
 
37 37
 class VersionCollection implements ICollection {
38 38
 
39
-	/** @var File */
40
-	private $file;
41
-
42
-	/** @var IUser */
43
-	private $user;
44
-
45
-	/** @var IVersionManager */
46
-	private $versionManager;
47
-
48
-	public function __construct(File $file, IUser $user, IVersionManager $versionManager) {
49
-		$this->file = $file;
50
-		$this->user = $user;
51
-		$this->versionManager = $versionManager;
52
-	}
53
-
54
-	public function createFile($name, $data = null) {
55
-		throw new Forbidden();
56
-	}
57
-
58
-	public function createDirectory($name) {
59
-		throw new Forbidden();
60
-	}
61
-
62
-	public function getChild($name) {
63
-		/** @var VersionFile[] $versions */
64
-		$versions = $this->getChildren();
65
-
66
-		foreach ($versions as $version) {
67
-			if ($version->getName() === $name) {
68
-				return $version;
69
-			}
70
-		}
71
-
72
-		throw new NotFound();
73
-	}
74
-
75
-	public function getChildren(): array {
76
-		$versions = $this->versionManager->getVersionsForFile($this->user, $this->file);
77
-
78
-		return array_map(function (IVersion $version) {
79
-			return new VersionFile($version, $this->versionManager);
80
-		}, $versions);
81
-	}
82
-
83
-	public function childExists($name): bool {
84
-		try {
85
-			$this->getChild($name);
86
-			return true;
87
-		} catch (NotFound $e) {
88
-			return false;
89
-		}
90
-	}
91
-
92
-	public function delete() {
93
-		throw new Forbidden();
94
-	}
95
-
96
-	public function getName(): string {
97
-		return (string)$this->file->getId();
98
-	}
99
-
100
-	public function setName($name) {
101
-		throw new Forbidden();
102
-	}
103
-
104
-	public function getLastModified(): int {
105
-		return 0;
106
-	}
39
+    /** @var File */
40
+    private $file;
41
+
42
+    /** @var IUser */
43
+    private $user;
44
+
45
+    /** @var IVersionManager */
46
+    private $versionManager;
47
+
48
+    public function __construct(File $file, IUser $user, IVersionManager $versionManager) {
49
+        $this->file = $file;
50
+        $this->user = $user;
51
+        $this->versionManager = $versionManager;
52
+    }
53
+
54
+    public function createFile($name, $data = null) {
55
+        throw new Forbidden();
56
+    }
57
+
58
+    public function createDirectory($name) {
59
+        throw new Forbidden();
60
+    }
61
+
62
+    public function getChild($name) {
63
+        /** @var VersionFile[] $versions */
64
+        $versions = $this->getChildren();
65
+
66
+        foreach ($versions as $version) {
67
+            if ($version->getName() === $name) {
68
+                return $version;
69
+            }
70
+        }
71
+
72
+        throw new NotFound();
73
+    }
74
+
75
+    public function getChildren(): array {
76
+        $versions = $this->versionManager->getVersionsForFile($this->user, $this->file);
77
+
78
+        return array_map(function (IVersion $version) {
79
+            return new VersionFile($version, $this->versionManager);
80
+        }, $versions);
81
+    }
82
+
83
+    public function childExists($name): bool {
84
+        try {
85
+            $this->getChild($name);
86
+            return true;
87
+        } catch (NotFound $e) {
88
+            return false;
89
+        }
90
+    }
91
+
92
+    public function delete() {
93
+        throw new Forbidden();
94
+    }
95
+
96
+    public function getName(): string {
97
+        return (string)$this->file->getId();
98
+    }
99
+
100
+    public function setName($name) {
101
+        throw new Forbidden();
102
+    }
103
+
104
+    public function getLastModified(): int {
105
+        return 0;
106
+    }
107 107
 }
Please login to merge, or discard this patch.
core/Migrations/Version15000Date20181029084625.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -31,23 +31,23 @@
 block discarded – undo
31 31
 
32 32
 class Version15000Date20181029084625 extends SimpleMigrationStep {
33 33
 
34
-	/**
35
-	 * @param IOutput $output
36
-	 * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
37
-	 * @param array $options
38
-	 * @return null|ISchemaWrapper
39
-	 */
40
-	public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
41
-		/** @var ISchemaWrapper $schema */
42
-		$schema = $schemaClosure();
34
+    /**
35
+     * @param IOutput $output
36
+     * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
37
+     * @param array $options
38
+     * @return null|ISchemaWrapper
39
+     */
40
+    public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
41
+        /** @var ISchemaWrapper $schema */
42
+        $schema = $schemaClosure();
43 43
 
44
-		$table = $schema->getTable('share');
45
-		$table->addColumn('label', 'string', [
46
-			'notnull' => false,
47
-			'length' => 255,
48
-		]);
44
+        $table = $schema->getTable('share');
45
+        $table->addColumn('label', 'string', [
46
+            'notnull' => false,
47
+            'length' => 255,
48
+        ]);
49 49
 
50
-		return $schema;
51
-	}
50
+        return $schema;
51
+    }
52 52
 
53 53
 }
Please login to merge, or discard this patch.
private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -32,60 +32,60 @@
 block discarded – undo
32 32
 use OCP\User\Backend\IPasswordConfirmationBackend;
33 33
 
34 34
 class PasswordConfirmationMiddleware extends Middleware {
35
-	/** @var ControllerMethodReflector */
36
-	private $reflector;
37
-	/** @var ISession */
38
-	private $session;
39
-	/** @var IUserSession */
40
-	private $userSession;
41
-	/** @var ITimeFactory */
42
-	private $timeFactory;
43
-	/** @var array */
44
-	private $excludedUserBackEnds = ['user_saml' => true, 'user_globalsiteselector' => true];
35
+    /** @var ControllerMethodReflector */
36
+    private $reflector;
37
+    /** @var ISession */
38
+    private $session;
39
+    /** @var IUserSession */
40
+    private $userSession;
41
+    /** @var ITimeFactory */
42
+    private $timeFactory;
43
+    /** @var array */
44
+    private $excludedUserBackEnds = ['user_saml' => true, 'user_globalsiteselector' => true];
45 45
 
46
-	/**
47
-	 * PasswordConfirmationMiddleware constructor.
48
-	 *
49
-	 * @param ControllerMethodReflector $reflector
50
-	 * @param ISession $session
51
-	 * @param IUserSession $userSession
52
-	 * @param ITimeFactory $timeFactory
53
-	 */
54
-	public function __construct(ControllerMethodReflector $reflector,
55
-								ISession $session,
56
-								IUserSession $userSession,
57
-								ITimeFactory $timeFactory) {
58
-		$this->reflector = $reflector;
59
-		$this->session = $session;
60
-		$this->userSession = $userSession;
61
-		$this->timeFactory = $timeFactory;
62
-	}
46
+    /**
47
+     * PasswordConfirmationMiddleware constructor.
48
+     *
49
+     * @param ControllerMethodReflector $reflector
50
+     * @param ISession $session
51
+     * @param IUserSession $userSession
52
+     * @param ITimeFactory $timeFactory
53
+     */
54
+    public function __construct(ControllerMethodReflector $reflector,
55
+                                ISession $session,
56
+                                IUserSession $userSession,
57
+                                ITimeFactory $timeFactory) {
58
+        $this->reflector = $reflector;
59
+        $this->session = $session;
60
+        $this->userSession = $userSession;
61
+        $this->timeFactory = $timeFactory;
62
+    }
63 63
 
64
-	/**
65
-	 * @param Controller $controller
66
-	 * @param string $methodName
67
-	 * @throws NotConfirmedException
68
-	 */
69
-	public function beforeController($controller, $methodName) {
70
-		if ($this->reflector->hasAnnotation('PasswordConfirmationRequired')) {
71
-			$user = $this->userSession->getUser();
72
-			$backendClassName = '';
73
-			if ($user !== null) {
74
-				$backend = $user->getBackend();
75
-				if ($backend instanceof IPasswordConfirmationBackend) {
76
-					if (!$backend->canConfirmPassword($user->getUID())) {
77
-						return;
78
-					}
79
-				}
64
+    /**
65
+     * @param Controller $controller
66
+     * @param string $methodName
67
+     * @throws NotConfirmedException
68
+     */
69
+    public function beforeController($controller, $methodName) {
70
+        if ($this->reflector->hasAnnotation('PasswordConfirmationRequired')) {
71
+            $user = $this->userSession->getUser();
72
+            $backendClassName = '';
73
+            if ($user !== null) {
74
+                $backend = $user->getBackend();
75
+                if ($backend instanceof IPasswordConfirmationBackend) {
76
+                    if (!$backend->canConfirmPassword($user->getUID())) {
77
+                        return;
78
+                    }
79
+                }
80 80
 
81
-				$backendClassName = $user->getBackendClassName();
82
-			}
81
+                $backendClassName = $user->getBackendClassName();
82
+            }
83 83
 
84
-			$lastConfirm = (int) $this->session->get('last-password-confirm');
85
-			// we can't check the password against a SAML backend, so skip password confirmation in this case
86
-			if (!isset($this->excludedUserBackEnds[$backendClassName]) && $lastConfirm < ($this->timeFactory->getTime() - (30 * 60 + 15))) { // allow 15 seconds delay
87
-				throw new NotConfirmedException();
88
-			}
89
-		}
90
-	}
84
+            $lastConfirm = (int) $this->session->get('last-password-confirm');
85
+            // we can't check the password against a SAML backend, so skip password confirmation in this case
86
+            if (!isset($this->excludedUserBackEnds[$backendClassName]) && $lastConfirm < ($this->timeFactory->getTime() - (30 * 60 + 15))) { // allow 15 seconds delay
87
+                throw new NotConfirmedException();
88
+            }
89
+        }
90
+    }
91 91
 }
Please login to merge, or discard this patch.
lib/public/User/Backend/IPasswordConfirmationBackend.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -29,8 +29,8 @@
 block discarded – undo
29 29
  */
30 30
 interface IPasswordConfirmationBackend {
31 31
 
32
-	/**
33
-	 * @since 15.0.0
34
-	 */
35
-	public function canConfirmPassword(string $uid): bool;
32
+    /**
33
+     * @since 15.0.0
34
+     */
35
+    public function canConfirmPassword(string $uid): bool;
36 36
 }
Please login to merge, or discard this patch.
lib/private/Files/Type/Loader.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -170,7 +170,7 @@
 block discarded – undo
170 170
 			))
171 171
 			->andWhere($update->expr()->like(
172 172
 				$update->func()->lower('name'),
173
-				$update->createNamedParameter('%' . $this->dbConnection->escapeLikeParameter('.' . $ext))
173
+				$update->createNamedParameter('%'.$this->dbConnection->escapeLikeParameter('.'.$ext))
174 174
 			));
175 175
 		return $update->execute();
176 176
 	}
Please login to merge, or discard this patch.
Indentation   +144 added lines, -144 removed lines patch added patch discarded remove patch
@@ -35,148 +35,148 @@
 block discarded – undo
35 35
  */
36 36
 class Loader implements IMimeTypeLoader {
37 37
 
38
-	/** @var IDBConnection */
39
-	private $dbConnection;
40
-
41
-	/** @var array [id => mimetype] */
42
-	protected $mimetypes;
43
-
44
-	/** @var array [mimetype => id] */
45
-	protected $mimetypeIds;
46
-
47
-	/**
48
-	 * @param IDBConnection $dbConnection
49
-	 */
50
-	public function __construct(IDBConnection $dbConnection) {
51
-		$this->dbConnection = $dbConnection;
52
-		$this->mimetypes = [];
53
-		$this->mimetypeIds = [];
54
-	}
55
-
56
-	/**
57
-	 * Get a mimetype from its ID
58
-	 *
59
-	 * @param int $id
60
-	 * @return string|null
61
-	 */
62
-	public function getMimetypeById($id) {
63
-		if (!$this->mimetypes) {
64
-			$this->loadMimetypes();
65
-		}
66
-		if (isset($this->mimetypes[$id])) {
67
-			return $this->mimetypes[$id];
68
-		}
69
-		return null;
70
-	}
71
-
72
-	/**
73
-	 * Get a mimetype ID, adding the mimetype to the DB if it does not exist
74
-	 *
75
-	 * @param string $mimetype
76
-	 * @return int
77
-	 */
78
-	public function getId($mimetype) {
79
-		if (!$this->mimetypeIds) {
80
-			$this->loadMimetypes();
81
-		}
82
-		if (isset($this->mimetypeIds[$mimetype])) {
83
-			return $this->mimetypeIds[$mimetype];
84
-		}
85
-		return $this->store($mimetype);
86
-	}
87
-
88
-	/**
89
-	 * Test if a mimetype exists in the database
90
-	 *
91
-	 * @param string $mimetype
92
-	 * @return bool
93
-	 */
94
-	public function exists($mimetype) {
95
-		if (!$this->mimetypeIds) {
96
-			$this->loadMimetypes();
97
-		}
98
-		return isset($this->mimetypeIds[$mimetype]);
99
-	}
100
-
101
-	/**
102
-	 * Clear all loaded mimetypes, allow for re-loading
103
-	 */
104
-	public function reset() {
105
-		$this->mimetypes = [];
106
-		$this->mimetypeIds = [];
107
-	}
108
-
109
-	/**
110
-	 * Store a mimetype in the DB
111
-	 *
112
-	 * @param string $mimetype
113
-	 * @param int inserted ID
114
-	 */
115
-	protected function store($mimetype) {
116
-		$this->dbConnection->insertIfNotExist('*PREFIX*mimetypes', [
117
-			'mimetype' => $mimetype
118
-		]);
119
-
120
-		$fetch = $this->dbConnection->getQueryBuilder();
121
-		$fetch->select('id')
122
-			->from('mimetypes')
123
-			->where(
124
-				$fetch->expr()->eq('mimetype', $fetch->createNamedParameter($mimetype)
125
-			));
126
-
127
-		$result = $fetch->execute();
128
-		$row = $result->fetch();
129
-		$result->closeCursor();
130
-
131
-		if (!$row) {
132
-			throw new \Exception("Failed to get mimetype id for $mimetype after trying to store it");
133
-		}
134
-
135
-		$this->mimetypes[$row['id']] = $mimetype;
136
-		$this->mimetypeIds[$mimetype] = $row['id'];
137
-		return $row['id'];
138
-	}
139
-
140
-	/**
141
-	 * Load all mimetypes from DB
142
-	 */
143
-	private function loadMimetypes() {
144
-		$qb = $this->dbConnection->getQueryBuilder();
145
-		$qb->select('id', 'mimetype')
146
-			->from('mimetypes');
147
-
148
-		$result = $qb->execute();
149
-		$results = $result->fetchAll();
150
-		$result->closeCursor();
151
-
152
-		foreach ($results as $row) {
153
-			$this->mimetypes[$row['id']] = $row['mimetype'];
154
-			$this->mimetypeIds[$row['mimetype']] = $row['id'];
155
-		}
156
-	}
157
-
158
-	/**
159
-	 * Update filecache mimetype based on file extension
160
-	 *
161
-	 * @param string $ext file extension
162
-	 * @param int $mimeTypeId
163
-	 * @return int number of changed rows
164
-	 */
165
-	public function updateFilecache($ext, $mimeTypeId) {
166
-		$folderMimeTypeId = $this->getId('httpd/unix-directory');
167
-		$update = $this->dbConnection->getQueryBuilder();
168
-		$update->update('filecache')
169
-			->set('mimetype', $update->createNamedParameter($mimeTypeId))
170
-			->where($update->expr()->neq(
171
-				'mimetype', $update->createNamedParameter($mimeTypeId)
172
-			))
173
-			->andWhere($update->expr()->neq(
174
-				'mimetype', $update->createNamedParameter($folderMimeTypeId)
175
-			))
176
-			->andWhere($update->expr()->like(
177
-				$update->func()->lower('name'),
178
-				$update->createNamedParameter('%' . $this->dbConnection->escapeLikeParameter('.' . $ext))
179
-			));
180
-		return $update->execute();
181
-	}
38
+    /** @var IDBConnection */
39
+    private $dbConnection;
40
+
41
+    /** @var array [id => mimetype] */
42
+    protected $mimetypes;
43
+
44
+    /** @var array [mimetype => id] */
45
+    protected $mimetypeIds;
46
+
47
+    /**
48
+     * @param IDBConnection $dbConnection
49
+     */
50
+    public function __construct(IDBConnection $dbConnection) {
51
+        $this->dbConnection = $dbConnection;
52
+        $this->mimetypes = [];
53
+        $this->mimetypeIds = [];
54
+    }
55
+
56
+    /**
57
+     * Get a mimetype from its ID
58
+     *
59
+     * @param int $id
60
+     * @return string|null
61
+     */
62
+    public function getMimetypeById($id) {
63
+        if (!$this->mimetypes) {
64
+            $this->loadMimetypes();
65
+        }
66
+        if (isset($this->mimetypes[$id])) {
67
+            return $this->mimetypes[$id];
68
+        }
69
+        return null;
70
+    }
71
+
72
+    /**
73
+     * Get a mimetype ID, adding the mimetype to the DB if it does not exist
74
+     *
75
+     * @param string $mimetype
76
+     * @return int
77
+     */
78
+    public function getId($mimetype) {
79
+        if (!$this->mimetypeIds) {
80
+            $this->loadMimetypes();
81
+        }
82
+        if (isset($this->mimetypeIds[$mimetype])) {
83
+            return $this->mimetypeIds[$mimetype];
84
+        }
85
+        return $this->store($mimetype);
86
+    }
87
+
88
+    /**
89
+     * Test if a mimetype exists in the database
90
+     *
91
+     * @param string $mimetype
92
+     * @return bool
93
+     */
94
+    public function exists($mimetype) {
95
+        if (!$this->mimetypeIds) {
96
+            $this->loadMimetypes();
97
+        }
98
+        return isset($this->mimetypeIds[$mimetype]);
99
+    }
100
+
101
+    /**
102
+     * Clear all loaded mimetypes, allow for re-loading
103
+     */
104
+    public function reset() {
105
+        $this->mimetypes = [];
106
+        $this->mimetypeIds = [];
107
+    }
108
+
109
+    /**
110
+     * Store a mimetype in the DB
111
+     *
112
+     * @param string $mimetype
113
+     * @param int inserted ID
114
+     */
115
+    protected function store($mimetype) {
116
+        $this->dbConnection->insertIfNotExist('*PREFIX*mimetypes', [
117
+            'mimetype' => $mimetype
118
+        ]);
119
+
120
+        $fetch = $this->dbConnection->getQueryBuilder();
121
+        $fetch->select('id')
122
+            ->from('mimetypes')
123
+            ->where(
124
+                $fetch->expr()->eq('mimetype', $fetch->createNamedParameter($mimetype)
125
+            ));
126
+
127
+        $result = $fetch->execute();
128
+        $row = $result->fetch();
129
+        $result->closeCursor();
130
+
131
+        if (!$row) {
132
+            throw new \Exception("Failed to get mimetype id for $mimetype after trying to store it");
133
+        }
134
+
135
+        $this->mimetypes[$row['id']] = $mimetype;
136
+        $this->mimetypeIds[$mimetype] = $row['id'];
137
+        return $row['id'];
138
+    }
139
+
140
+    /**
141
+     * Load all mimetypes from DB
142
+     */
143
+    private function loadMimetypes() {
144
+        $qb = $this->dbConnection->getQueryBuilder();
145
+        $qb->select('id', 'mimetype')
146
+            ->from('mimetypes');
147
+
148
+        $result = $qb->execute();
149
+        $results = $result->fetchAll();
150
+        $result->closeCursor();
151
+
152
+        foreach ($results as $row) {
153
+            $this->mimetypes[$row['id']] = $row['mimetype'];
154
+            $this->mimetypeIds[$row['mimetype']] = $row['id'];
155
+        }
156
+    }
157
+
158
+    /**
159
+     * Update filecache mimetype based on file extension
160
+     *
161
+     * @param string $ext file extension
162
+     * @param int $mimeTypeId
163
+     * @return int number of changed rows
164
+     */
165
+    public function updateFilecache($ext, $mimeTypeId) {
166
+        $folderMimeTypeId = $this->getId('httpd/unix-directory');
167
+        $update = $this->dbConnection->getQueryBuilder();
168
+        $update->update('filecache')
169
+            ->set('mimetype', $update->createNamedParameter($mimeTypeId))
170
+            ->where($update->expr()->neq(
171
+                'mimetype', $update->createNamedParameter($mimeTypeId)
172
+            ))
173
+            ->andWhere($update->expr()->neq(
174
+                'mimetype', $update->createNamedParameter($folderMimeTypeId)
175
+            ))
176
+            ->andWhere($update->expr()->like(
177
+                $update->func()->lower('name'),
178
+                $update->createNamedParameter('%' . $this->dbConnection->escapeLikeParameter('.' . $ext))
179
+            ));
180
+        return $update->execute();
181
+    }
182 182
 }
Please login to merge, or discard this patch.