44 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
55 * SPDX-License-Identifier: AGPL-3.0-only
66 */
7+
78namespace OCA \Files_External \Service ;
89
910use Doctrine \DBAL \Exception \UniqueConstraintViolationException ;
@@ -63,16 +64,16 @@ public function getMountsForUser($userId, $groupIds) {
6364 ->where ($ builder ->expr ()->orX (
6465 $ builder ->expr ()->andX ( // global mounts
6566 $ builder ->expr ()->eq ('a.type ' , $ builder ->createNamedParameter (self ::APPLICABLE_TYPE_GLOBAL , IQueryBuilder::PARAM_INT )),
66- $ builder ->expr ()->isNull ('a.value ' )
67+ $ builder ->expr ()->isNull ('a.value ' ),
6768 ),
6869 $ builder ->expr ()->andX ( // mounts for user
6970 $ builder ->expr ()->eq ('a.type ' , $ builder ->createNamedParameter (self ::APPLICABLE_TYPE_USER , IQueryBuilder::PARAM_INT )),
70- $ builder ->expr ()->eq ('a.value ' , $ builder ->createNamedParameter ($ userId ))
71+ $ builder ->expr ()->eq ('a.value ' , $ builder ->createNamedParameter ($ userId )),
7172 ),
7273 $ builder ->expr ()->andX ( // mounts for group
7374 $ builder ->expr ()->eq ('a.type ' , $ builder ->createNamedParameter (self ::APPLICABLE_TYPE_GROUP , IQueryBuilder::PARAM_INT )),
74- $ builder ->expr ()->in ('a.value ' , $ builder ->createNamedParameter ($ groupIds , IQueryBuilder::PARAM_STR_ARRAY ))
75- )
75+ $ builder ->expr ()->in ('a.value ' , $ builder ->createNamedParameter ($ groupIds , IQueryBuilder::PARAM_STR_ARRAY )),
76+ ),
7677 ));
7778
7879 return $ this ->getMountsFromQuery ($ query );
@@ -93,8 +94,8 @@ protected function modifyMountsOnDelete(string $applicableId, int $applicableTyp
9394 ->leftJoin ('a ' , 'external_applicable ' , 'b ' , $ builder ->expr ()->eq ('a.mount_id ' , 'b.mount_id ' ))
9495 ->where ($ builder ->expr ()->andX (
9596 $ builder ->expr ()->eq ('b.type ' , $ builder ->createNamedParameter ($ applicableType , IQueryBuilder::PARAM_INT )),
96- $ builder ->expr ()->eq ('b.value ' , $ builder ->createNamedParameter ($ applicableId ))
97- )
97+ $ builder ->expr ()->eq ('b.value ' , $ builder ->createNamedParameter ($ applicableId )),
98+ ),
9899 )
99100 ->groupBy (['a.mount_id ' ]);
100101 $ stmt = $ query ->executeQuery ();
@@ -226,7 +227,7 @@ public function addMount($mountPoint, $storageBackend, $authBackend, $priority,
226227 'storage_backend ' => $ builder ->createNamedParameter ($ storageBackend , IQueryBuilder::PARAM_STR ),
227228 'auth_backend ' => $ builder ->createNamedParameter ($ authBackend , IQueryBuilder::PARAM_STR ),
228229 'priority ' => $ builder ->createNamedParameter ($ priority , IQueryBuilder::PARAM_INT ),
229- 'type ' => $ builder ->createNamedParameter ($ type , IQueryBuilder::PARAM_INT )
230+ 'type ' => $ builder ->createNamedParameter ($ type , IQueryBuilder::PARAM_INT ),
230231 ]);
231232 $ query ->executeStatement ();
232233 return $ query ->getLastInsertId ();
@@ -497,4 +498,17 @@ private function decryptValue($value) {
497498 return $ value ;
498499 }
499500 }
501+
502+ /**
503+ * Check if any mountpoint is configured that overwrite the home folder
504+ */
505+ public function hasHomeFolderOverwriteMount (): bool {
506+ $ builder = $ this ->connection ->getQueryBuilder ();
507+ $ query = $ builder ->select ('mount_id ' )
508+ ->from ('external_mounts ' )
509+ ->where ($ builder ->expr ()->eq ('mount_point ' , $ builder ->createNamedParameter ('/ ' )))
510+ ->setMaxResults (1 );
511+ $ result = $ query ->executeQuery ();
512+ return count ($ result ->fetchAll ()) > 0 ;
513+ }
500514}
0 commit comments