Passed
Push — master ( c00d6f...a085a8 )
by Morris
09:54 queued 11s
created
lib/private/Tagging/TagMapper.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -50,12 +50,12 @@  discard block
 block discarded – undo
50 50
 	* @return array An array of Tag objects.
51 51
 	*/
52 52
 	public function loadTags($owners, $type) {
53
-		if(!is_array($owners)) {
53
+		if (!is_array($owners)) {
54 54
 			$owners = array($owners);
55 55
 		}
56 56
 
57
-		$sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
58
-			. 'WHERE `uid` IN (' . str_repeat('?,', count($owners)-1) . '?) AND `type` = ? ORDER BY `category`';
57
+		$sql = 'SELECT `id`, `uid`, `type`, `category` FROM `'.$this->getTableName().'` '
58
+			. 'WHERE `uid` IN ('.str_repeat('?,', count($owners) - 1).'?) AND `type` = ? ORDER BY `category`';
59 59
 		return $this->findEntities($sql, array_merge($owners, array($type)));
60 60
 	}
61 61
 
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
 	* @return bool
67 67
 	*/
68 68
 	public function tagExists($tag) {
69
-		$sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
69
+		$sql = 'SELECT `id`, `uid`, `type`, `category` FROM `'.$this->getTableName().'` '
70 70
 			. 'WHERE `uid` = ? AND `type` = ? AND `category` = ?';
71 71
 		try {
72 72
 			$this->findEntity($sql, array($tag->getOwner(), $tag->getType(), $tag->getName()));
Please login to merge, or discard this patch.
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -33,47 +33,47 @@
 block discarded – undo
33 33
  */
34 34
 class TagMapper extends Mapper {
35 35
 
36
-	/**
37
-	* Constructor.
38
-	*
39
-	* @param IDBConnection $db Instance of the Db abstraction layer.
40
-	*/
41
-	public function __construct(IDBConnection $db) {
42
-		parent::__construct($db, 'vcategory', Tag::class);
43
-	}
36
+    /**
37
+     * Constructor.
38
+     *
39
+     * @param IDBConnection $db Instance of the Db abstraction layer.
40
+     */
41
+    public function __construct(IDBConnection $db) {
42
+        parent::__construct($db, 'vcategory', Tag::class);
43
+    }
44 44
 
45
-	/**
46
-	* Load tags from the database.
47
-	*
48
-	* @param array|string $owners The user(s) whose tags we are going to load.
49
-	* @param string $type The type of item for which we are loading tags.
50
-	* @return array An array of Tag objects.
51
-	*/
52
-	public function loadTags($owners, $type) {
53
-		if(!is_array($owners)) {
54
-			$owners = array($owners);
55
-		}
45
+    /**
46
+     * Load tags from the database.
47
+     *
48
+     * @param array|string $owners The user(s) whose tags we are going to load.
49
+     * @param string $type The type of item for which we are loading tags.
50
+     * @return array An array of Tag objects.
51
+     */
52
+    public function loadTags($owners, $type) {
53
+        if(!is_array($owners)) {
54
+            $owners = array($owners);
55
+        }
56 56
 
57
-		$sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
58
-			. 'WHERE `uid` IN (' . str_repeat('?,', count($owners)-1) . '?) AND `type` = ? ORDER BY `category`';
59
-		return $this->findEntities($sql, array_merge($owners, array($type)));
60
-	}
57
+        $sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
58
+            . 'WHERE `uid` IN (' . str_repeat('?,', count($owners)-1) . '?) AND `type` = ? ORDER BY `category`';
59
+        return $this->findEntities($sql, array_merge($owners, array($type)));
60
+    }
61 61
 
62
-	/**
63
-	* Check if a given Tag object already exists in the database.
64
-	*
65
-	* @param Tag $tag The tag to look for in the database.
66
-	* @return bool
67
-	*/
68
-	public function tagExists($tag) {
69
-		$sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
70
-			. 'WHERE `uid` = ? AND `type` = ? AND `category` = ?';
71
-		try {
72
-			$this->findEntity($sql, array($tag->getOwner(), $tag->getType(), $tag->getName()));
73
-		} catch (DoesNotExistException $e) {
74
-			return false;
75
-		}
76
-		return true;
77
-	}
62
+    /**
63
+     * Check if a given Tag object already exists in the database.
64
+     *
65
+     * @param Tag $tag The tag to look for in the database.
66
+     * @return bool
67
+     */
68
+    public function tagExists($tag) {
69
+        $sql = 'SELECT `id`, `uid`, `type`, `category` FROM `' . $this->getTableName() . '` '
70
+            . 'WHERE `uid` = ? AND `type` = ? AND `category` = ?';
71
+        try {
72
+            $this->findEntity($sql, array($tag->getOwner(), $tag->getType(), $tag->getName()));
73
+        } catch (DoesNotExistException $e) {
74
+            return false;
75
+        }
76
+        return true;
77
+    }
78 78
 }
79 79
 
Please login to merge, or discard this patch.
lib/private/Tagging/Tag.php 2 patches
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -37,54 +37,54 @@
 block discarded – undo
37 37
  */
38 38
 class Tag extends Entity {
39 39
 
40
-	protected $owner;
41
-	protected $type;
42
-	protected $name;
40
+    protected $owner;
41
+    protected $type;
42
+    protected $name;
43 43
 
44
-	/**
45
-	* Constructor.
46
-	*
47
-	* @param string $owner The tag's owner
48
-	* @param string $type The type of item this tag is used for
49
-	* @param string $name The tag's name
50
-	*/
51
-	public function __construct($owner = null, $type = null, $name = null) {
52
-		$this->setOwner($owner);
53
-		$this->setType($type);
54
-		$this->setName($name);
55
-	}
44
+    /**
45
+     * Constructor.
46
+     *
47
+     * @param string $owner The tag's owner
48
+     * @param string $type The type of item this tag is used for
49
+     * @param string $name The tag's name
50
+     */
51
+    public function __construct($owner = null, $type = null, $name = null) {
52
+        $this->setOwner($owner);
53
+        $this->setType($type);
54
+        $this->setName($name);
55
+    }
56 56
 
57
-	/**
58
-	 * Transform a database columnname to a property
59
-	 *
60
-	 * @param string $columnName the name of the column
61
-	 * @return string the property name
62
-	 * @todo migrate existing database columns to the correct names
63
-	 * to be able to drop this direct mapping
64
-	 */
65
-	public function columnToProperty($columnName){
66
-		if ($columnName === 'category') {
67
-		    return 'name';
68
-		} elseif ($columnName === 'uid') {
69
-		    return 'owner';
70
-		} else {
71
-		    return parent::columnToProperty($columnName);
72
-		}
73
-	}
57
+    /**
58
+     * Transform a database columnname to a property
59
+     *
60
+     * @param string $columnName the name of the column
61
+     * @return string the property name
62
+     * @todo migrate existing database columns to the correct names
63
+     * to be able to drop this direct mapping
64
+     */
65
+    public function columnToProperty($columnName){
66
+        if ($columnName === 'category') {
67
+            return 'name';
68
+        } elseif ($columnName === 'uid') {
69
+            return 'owner';
70
+        } else {
71
+            return parent::columnToProperty($columnName);
72
+        }
73
+    }
74 74
 
75
-	/**
76
-	 * Transform a property to a database column name
77
-	 *
78
-	 * @param string $property the name of the property
79
-	 * @return string the column name
80
-	 */
81
-	public function propertyToColumn($property){
82
-		if ($property === 'name') {
83
-		    return 'category';
84
-		} elseif ($property === 'owner') {
85
-		    return 'uid';
86
-		} else {
87
-		    return parent::propertyToColumn($property);
88
-		}
89
-	}
75
+    /**
76
+     * Transform a property to a database column name
77
+     *
78
+     * @param string $property the name of the property
79
+     * @return string the column name
80
+     */
81
+    public function propertyToColumn($property){
82
+        if ($property === 'name') {
83
+            return 'category';
84
+        } elseif ($property === 'owner') {
85
+            return 'uid';
86
+        } else {
87
+            return parent::propertyToColumn($property);
88
+        }
89
+    }
90 90
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
 	 * @todo migrate existing database columns to the correct names
63 63
 	 * to be able to drop this direct mapping
64 64
 	 */
65
-	public function columnToProperty($columnName){
65
+	public function columnToProperty($columnName) {
66 66
 		if ($columnName === 'category') {
67 67
 		    return 'name';
68 68
 		} elseif ($columnName === 'uid') {
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
 	 * @param string $property the name of the property
79 79
 	 * @return string the column name
80 80
 	 */
81
-	public function propertyToColumn($property){
81
+	public function propertyToColumn($property) {
82 82
 		if ($property === 'name') {
83 83
 		    return 'category';
84 84
 		} elseif ($property === 'owner') {
Please login to merge, or discard this patch.
lib/private/TagManager.php 1 patch
Indentation   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -40,53 +40,53 @@
 block discarded – undo
40 40
 
41 41
 class TagManager implements \OCP\ITagManager {
42 42
 
43
-	/**
44
-	 * User session
45
-	 *
46
-	 * @var \OCP\IUserSession
47
-	 */
48
-	private $userSession;
43
+    /**
44
+     * User session
45
+     *
46
+     * @var \OCP\IUserSession
47
+     */
48
+    private $userSession;
49 49
 
50
-	/**
51
-	 * TagMapper
52
-	 *
53
-	 * @var TagMapper
54
-	 */
55
-	private $mapper;
50
+    /**
51
+     * TagMapper
52
+     *
53
+     * @var TagMapper
54
+     */
55
+    private $mapper;
56 56
 
57
-	/**
58
-	* Constructor.
59
-	*
60
-	* @param TagMapper $mapper Instance of the TagMapper abstraction layer.
61
-	* @param \OCP\IUserSession $userSession the user session
62
-	*/
63
-	public function __construct(TagMapper $mapper, \OCP\IUserSession $userSession) {
64
-		$this->mapper = $mapper;
65
-		$this->userSession = $userSession;
57
+    /**
58
+     * Constructor.
59
+     *
60
+     * @param TagMapper $mapper Instance of the TagMapper abstraction layer.
61
+     * @param \OCP\IUserSession $userSession the user session
62
+     */
63
+    public function __construct(TagMapper $mapper, \OCP\IUserSession $userSession) {
64
+        $this->mapper = $mapper;
65
+        $this->userSession = $userSession;
66 66
 
67
-	}
67
+    }
68 68
 
69
-	/**
70
-	* Create a new \OCP\ITags instance and load tags from db.
71
-	*
72
-	* @see \OCP\ITags
73
-	* @param string $type The type identifier e.g. 'contact' or 'event'.
74
-	* @param array $defaultTags An array of default tags to be used if none are stored.
75
-	* @param boolean $includeShared Whether to include tags for items shared with this user by others.
76
-	* @param string $userId user for which to retrieve the tags, defaults to the currently
77
-	* logged in user
78
-	* @return \OCP\ITags
79
-	*/
80
-	public function load($type, $defaultTags = array(), $includeShared = false, $userId = null) {
81
-		if (is_null($userId)) {
82
-			$user = $this->userSession->getUser();
83
-			if ($user === null) {
84
-				// nothing we can do without a user
85
-				return null;
86
-			}
87
-			$userId = $this->userSession->getUser()->getUId();
88
-		}
89
-		return new Tags($this->mapper, $userId, $type, $defaultTags, $includeShared);
90
-	}
69
+    /**
70
+     * Create a new \OCP\ITags instance and load tags from db.
71
+     *
72
+     * @see \OCP\ITags
73
+     * @param string $type The type identifier e.g. 'contact' or 'event'.
74
+     * @param array $defaultTags An array of default tags to be used if none are stored.
75
+     * @param boolean $includeShared Whether to include tags for items shared with this user by others.
76
+     * @param string $userId user for which to retrieve the tags, defaults to the currently
77
+     * logged in user
78
+     * @return \OCP\ITags
79
+     */
80
+    public function load($type, $defaultTags = array(), $includeShared = false, $userId = null) {
81
+        if (is_null($userId)) {
82
+            $user = $this->userSession->getUser();
83
+            if ($user === null) {
84
+                // nothing we can do without a user
85
+                return null;
86
+            }
87
+            $userId = $this->userSession->getUser()->getUId();
88
+        }
89
+        return new Tags($this->mapper, $userId, $type, $defaultTags, $includeShared);
90
+    }
91 91
 
92 92
 }
Please login to merge, or discard this patch.
lib/private/ContactsManager.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -41,10 +41,10 @@  discard block
 block discarded – undo
41 41
 		public function search($pattern, $searchProperties = array(), $options = array()) {
42 42
 			$this->loadAddressBooks();
43 43
 			$result = array();
44
-			foreach($this->addressBooks as $addressBook) {
44
+			foreach ($this->addressBooks as $addressBook) {
45 45
 				$r = $addressBook->search($pattern, $searchProperties, $options);
46 46
 				$contacts = array();
47
-				foreach($r as $c){
47
+				foreach ($r as $c) {
48 48
 					$c['addressbook-key'] = $addressBook->getKey();
49 49
 					$contacts[] = $c;
50 50
 				}
@@ -124,7 +124,7 @@  discard block
 block discarded – undo
124 124
 		public function getAddressBooks() {
125 125
 			$this->loadAddressBooks();
126 126
 			$result = array();
127
-			foreach($this->addressBooks as $addressBook) {
127
+			foreach ($this->addressBooks as $addressBook) {
128 128
 				$result[$addressBook->getKey()] = $addressBook->getDisplayName();
129 129
 			}
130 130
 
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
 		 */
182 182
 		protected function loadAddressBooks()
183 183
 		{
184
-			foreach($this->addressBookLoaders as $callable) {
184
+			foreach ($this->addressBookLoaders as $callable) {
185 185
 				$callable($this);
186 186
 			}
187 187
 			$this->addressBookLoaders = array();
Please login to merge, or discard this patch.
Indentation   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -27,181 +27,181 @@
 block discarded – undo
27 27
 
28 28
 namespace OC {
29 29
 
30
-	class ContactsManager implements \OCP\Contacts\IManager {
31
-
32
-		/**
33
-		 * This function is used to search and find contacts within the users address books.
34
-		 * In case $pattern is empty all contacts will be returned.
35
-		 *
36
-		 * @param string $pattern which should match within the $searchProperties
37
-		 * @param array $searchProperties defines the properties within the query pattern should match
38
-		 * @param array $options = array() to define the search behavior
39
-		 * 	- 'escape_like_param' - If set to false wildcards _ and % are not escaped
40
-		 * @return array an array of contacts which are arrays of key-value-pairs
41
-		 */
42
-		public function search($pattern, $searchProperties = array(), $options = array()) {
43
-			$this->loadAddressBooks();
44
-			$result = array();
45
-			foreach($this->addressBooks as $addressBook) {
46
-				$r = $addressBook->search($pattern, $searchProperties, $options);
47
-				$contacts = array();
48
-				foreach($r as $c){
49
-					$c['addressbook-key'] = $addressBook->getKey();
50
-					$contacts[] = $c;
51
-				}
52
-				$result = array_merge($result, $contacts);
53
-			}
54
-
55
-			return $result;
56
-		}
57
-
58
-		/**
59
-		 * This function can be used to delete the contact identified by the given id
60
-		 *
61
-		 * @param object $id the unique identifier to a contact
62
-		 * @param string $addressBookKey identifier of the address book in which the contact shall be deleted
63
-		 * @return bool successful or not
64
-		 */
65
-		public function delete($id, $addressBookKey) {
66
-			$addressBook = $this->getAddressBook($addressBookKey);
67
-			if (!$addressBook) {
68
-				return null;
69
-			}
70
-
71
-			if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) {
72
-				return $addressBook->delete($id);
73
-			}
74
-
75
-			return null;
76
-		}
77
-
78
-		/**
79
-		 * This function is used to create a new contact if 'id' is not given or not present.
80
-		 * Otherwise the contact will be updated by replacing the entire data set.
81
-		 *
82
-		 * @param array $properties this array if key-value-pairs defines a contact
83
-		 * @param string $addressBookKey identifier of the address book in which the contact shall be created or updated
84
-		 * @return array representing the contact just created or updated
85
-		 */
86
-		public function createOrUpdate($properties, $addressBookKey) {
87
-			$addressBook = $this->getAddressBook($addressBookKey);
88
-			if (!$addressBook) {
89
-				return null;
90
-			}
91
-
92
-			if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) {
93
-				return $addressBook->createOrUpdate($properties);
94
-			}
95
-
96
-			return null;
97
-		}
98
-
99
-		/**
100
-		 * Check if contacts are available (e.g. contacts app enabled)
101
-		 *
102
-		 * @return bool true if enabled, false if not
103
-		 */
104
-		public function isEnabled() {
105
-			return !empty($this->addressBooks) || !empty($this->addressBookLoaders);
106
-		}
107
-
108
-		/**
109
-		 * @param \OCP\IAddressBook $addressBook
110
-		 */
111
-		public function registerAddressBook(\OCP\IAddressBook $addressBook) {
112
-			$this->addressBooks[$addressBook->getKey()] = $addressBook;
113
-		}
114
-
115
-		/**
116
-		 * @param \OCP\IAddressBook $addressBook
117
-		 */
118
-		public function unregisterAddressBook(\OCP\IAddressBook $addressBook) {
119
-			unset($this->addressBooks[$addressBook->getKey()]);
120
-		}
121
-
122
-		/**
123
-		 * Return a list of the user's addressbooks display names
124
-		 * ! The addressBook displayName are not unique, please use getUserAddressBooks
125
-		 * 
126
-		 * @return array
127
-		 * @since 6.0.0
128
-		 * @deprecated 16.0.0 - Use `$this->getUserAddressBooks()` instead
129
-		 */
130
-		public function getAddressBooks() {
131
-			$this->loadAddressBooks();
132
-			$result = array();
133
-			foreach($this->addressBooks as $addressBook) {
134
-				$result[$addressBook->getKey()] = $addressBook->getDisplayName();
135
-			}
136
-
137
-			return $result;
138
-		}
139
-
140
-		/**
141
-		 * Return a list of the user's addressbooks
142
-		 * 
143
-		 * @return IAddressBook[]
144
-		 * @since 16.0.0
145
-		 */
146
-		public function getUserAddressBooks(): Array {
147
-			$this->loadAddressBooks();
148
-			return $this->addressBooks;
149
-		}
150
-
151
-		/**
152
-		 * removes all registered address book instances
153
-		 */
154
-		public function clear() {
155
-			$this->addressBooks = array();
156
-			$this->addressBookLoaders = array();
157
-		}
158
-
159
-		/**
160
-		 * @var \OCP\IAddressBook[] which holds all registered address books
161
-		 */
162
-		private $addressBooks = array();
163
-
164
-		/**
165
-		 * @var \Closure[] to call to load/register address books
166
-		 */
167
-		private $addressBookLoaders = array();
168
-
169
-		/**
170
-		 * In order to improve lazy loading a closure can be registered which will be called in case
171
-		 * address books are actually requested
172
-		 *
173
-		 * @param \Closure $callable
174
-		 */
175
-		public function register(\Closure $callable)
176
-		{
177
-			$this->addressBookLoaders[] = $callable;
178
-		}
179
-
180
-		/**
181
-		 * Get (and load when needed) the address book for $key
182
-		 *
183
-		 * @param string $addressBookKey
184
-		 * @return \OCP\IAddressBook
185
-		 */
186
-		protected function getAddressBook($addressBookKey)
187
-		{
188
-			$this->loadAddressBooks();
189
-			if (!array_key_exists($addressBookKey, $this->addressBooks)) {
190
-				return null;
191
-			}
192
-
193
-			return $this->addressBooks[$addressBookKey];
194
-		}
195
-
196
-		/**
197
-		 * Load all address books registered with 'register'
198
-		 */
199
-		protected function loadAddressBooks()
200
-		{
201
-			foreach($this->addressBookLoaders as $callable) {
202
-				$callable($this);
203
-			}
204
-			$this->addressBookLoaders = array();
205
-		}
206
-	}
30
+    class ContactsManager implements \OCP\Contacts\IManager {
31
+
32
+        /**
33
+         * This function is used to search and find contacts within the users address books.
34
+         * In case $pattern is empty all contacts will be returned.
35
+         *
36
+         * @param string $pattern which should match within the $searchProperties
37
+         * @param array $searchProperties defines the properties within the query pattern should match
38
+         * @param array $options = array() to define the search behavior
39
+         * 	- 'escape_like_param' - If set to false wildcards _ and % are not escaped
40
+         * @return array an array of contacts which are arrays of key-value-pairs
41
+         */
42
+        public function search($pattern, $searchProperties = array(), $options = array()) {
43
+            $this->loadAddressBooks();
44
+            $result = array();
45
+            foreach($this->addressBooks as $addressBook) {
46
+                $r = $addressBook->search($pattern, $searchProperties, $options);
47
+                $contacts = array();
48
+                foreach($r as $c){
49
+                    $c['addressbook-key'] = $addressBook->getKey();
50
+                    $contacts[] = $c;
51
+                }
52
+                $result = array_merge($result, $contacts);
53
+            }
54
+
55
+            return $result;
56
+        }
57
+
58
+        /**
59
+         * This function can be used to delete the contact identified by the given id
60
+         *
61
+         * @param object $id the unique identifier to a contact
62
+         * @param string $addressBookKey identifier of the address book in which the contact shall be deleted
63
+         * @return bool successful or not
64
+         */
65
+        public function delete($id, $addressBookKey) {
66
+            $addressBook = $this->getAddressBook($addressBookKey);
67
+            if (!$addressBook) {
68
+                return null;
69
+            }
70
+
71
+            if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) {
72
+                return $addressBook->delete($id);
73
+            }
74
+
75
+            return null;
76
+        }
77
+
78
+        /**
79
+         * This function is used to create a new contact if 'id' is not given or not present.
80
+         * Otherwise the contact will be updated by replacing the entire data set.
81
+         *
82
+         * @param array $properties this array if key-value-pairs defines a contact
83
+         * @param string $addressBookKey identifier of the address book in which the contact shall be created or updated
84
+         * @return array representing the contact just created or updated
85
+         */
86
+        public function createOrUpdate($properties, $addressBookKey) {
87
+            $addressBook = $this->getAddressBook($addressBookKey);
88
+            if (!$addressBook) {
89
+                return null;
90
+            }
91
+
92
+            if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) {
93
+                return $addressBook->createOrUpdate($properties);
94
+            }
95
+
96
+            return null;
97
+        }
98
+
99
+        /**
100
+         * Check if contacts are available (e.g. contacts app enabled)
101
+         *
102
+         * @return bool true if enabled, false if not
103
+         */
104
+        public function isEnabled() {
105
+            return !empty($this->addressBooks) || !empty($this->addressBookLoaders);
106
+        }
107
+
108
+        /**
109
+         * @param \OCP\IAddressBook $addressBook
110
+         */
111
+        public function registerAddressBook(\OCP\IAddressBook $addressBook) {
112
+            $this->addressBooks[$addressBook->getKey()] = $addressBook;
113
+        }
114
+
115
+        /**
116
+         * @param \OCP\IAddressBook $addressBook
117
+         */
118
+        public function unregisterAddressBook(\OCP\IAddressBook $addressBook) {
119
+            unset($this->addressBooks[$addressBook->getKey()]);
120
+        }
121
+
122
+        /**
123
+         * Return a list of the user's addressbooks display names
124
+         * ! The addressBook displayName are not unique, please use getUserAddressBooks
125
+         * 
126
+         * @return array
127
+         * @since 6.0.0
128
+         * @deprecated 16.0.0 - Use `$this->getUserAddressBooks()` instead
129
+         */
130
+        public function getAddressBooks() {
131
+            $this->loadAddressBooks();
132
+            $result = array();
133
+            foreach($this->addressBooks as $addressBook) {
134
+                $result[$addressBook->getKey()] = $addressBook->getDisplayName();
135
+            }
136
+
137
+            return $result;
138
+        }
139
+
140
+        /**
141
+         * Return a list of the user's addressbooks
142
+         * 
143
+         * @return IAddressBook[]
144
+         * @since 16.0.0
145
+         */
146
+        public function getUserAddressBooks(): Array {
147
+            $this->loadAddressBooks();
148
+            return $this->addressBooks;
149
+        }
150
+
151
+        /**
152
+         * removes all registered address book instances
153
+         */
154
+        public function clear() {
155
+            $this->addressBooks = array();
156
+            $this->addressBookLoaders = array();
157
+        }
158
+
159
+        /**
160
+         * @var \OCP\IAddressBook[] which holds all registered address books
161
+         */
162
+        private $addressBooks = array();
163
+
164
+        /**
165
+         * @var \Closure[] to call to load/register address books
166
+         */
167
+        private $addressBookLoaders = array();
168
+
169
+        /**
170
+         * In order to improve lazy loading a closure can be registered which will be called in case
171
+         * address books are actually requested
172
+         *
173
+         * @param \Closure $callable
174
+         */
175
+        public function register(\Closure $callable)
176
+        {
177
+            $this->addressBookLoaders[] = $callable;
178
+        }
179
+
180
+        /**
181
+         * Get (and load when needed) the address book for $key
182
+         *
183
+         * @param string $addressBookKey
184
+         * @return \OCP\IAddressBook
185
+         */
186
+        protected function getAddressBook($addressBookKey)
187
+        {
188
+            $this->loadAddressBooks();
189
+            if (!array_key_exists($addressBookKey, $this->addressBooks)) {
190
+                return null;
191
+            }
192
+
193
+            return $this->addressBooks[$addressBookKey];
194
+        }
195
+
196
+        /**
197
+         * Load all address books registered with 'register'
198
+         */
199
+        protected function loadAddressBooks()
200
+        {
201
+            foreach($this->addressBookLoaders as $callable) {
202
+                $callable($this);
203
+            }
204
+            $this->addressBookLoaders = array();
205
+        }
206
+    }
207 207
 }
Please login to merge, or discard this patch.
lib/private/Archive/Archive.php 3 patches
Braces   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -134,7 +134,7 @@
 block discarded – undo
134 134
 				}
135 135
 				if(is_dir($source.'/'.$file)) {
136 136
 					$this->addRecursive($path.'/'.$file, $source.'/'.$file);
137
-				}else{
137
+				} else{
138 138
 					$this->addFile($path.'/'.$file, $source.'/'.$file);
139 139
 				}
140 140
 			}
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -49,7 +49,7 @@  discard block
 block discarded – undo
49 49
 	 * @param string $source either a local file or string data
50 50
 	 * @return bool
51 51
 	 */
52
-	public abstract function addFile($path, $source='');
52
+	public abstract function addFile($path, $source = '');
53 53
 	/**
54 54
 	 * rename a file or folder in the archive
55 55
 	 * @param string $source
@@ -126,15 +126,15 @@  discard block
 block discarded – undo
126 126
 	 */
127 127
 	public function addRecursive($path, $source) {
128 128
 		$dh = opendir($source);
129
-		if(is_resource($dh)) {
129
+		if (is_resource($dh)) {
130 130
 			$this->addFolder($path);
131 131
 			while (($file = readdir($dh)) !== false) {
132
-				if($file === '.' || $file === '..') {
132
+				if ($file === '.' || $file === '..') {
133 133
 					continue;
134 134
 				}
135
-				if(is_dir($source.'/'.$file)) {
135
+				if (is_dir($source.'/'.$file)) {
136 136
 					$this->addRecursive($path.'/'.$file, $source.'/'.$file);
137
-				}else{
137
+				} else {
138 138
 					$this->addFile($path.'/'.$file, $source.'/'.$file);
139 139
 				}
140 140
 			}
Please login to merge, or discard this patch.
Indentation   +106 added lines, -106 removed lines patch added patch discarded remove patch
@@ -31,110 +31,110 @@
 block discarded – undo
31 31
 namespace OC\Archive;
32 32
 
33 33
 abstract class Archive {
34
-	/**
35
-	 * @param $source
36
-	 */
37
-	public abstract function __construct($source);
38
-	/**
39
-	 * add an empty folder to the archive
40
-	 * @param string $path
41
-	 * @return bool
42
-	 */
43
-	public abstract function addFolder($path);
44
-	/**
45
-	 * add a file to the archive
46
-	 * @param string $path
47
-	 * @param string $source either a local file or string data
48
-	 * @return bool
49
-	 */
50
-	public abstract function addFile($path, $source='');
51
-	/**
52
-	 * rename a file or folder in the archive
53
-	 * @param string $source
54
-	 * @param string $dest
55
-	 * @return bool
56
-	 */
57
-	public abstract function rename($source, $dest);
58
-	/**
59
-	 * get the uncompressed size of a file in the archive
60
-	 * @param string $path
61
-	 * @return int
62
-	 */
63
-	public abstract function filesize($path);
64
-	/**
65
-	 * get the last modified time of a file in the archive
66
-	 * @param string $path
67
-	 * @return int
68
-	 */
69
-	public abstract function mtime($path);
70
-	/**
71
-	 * get the files in a folder
72
-	 * @param string $path
73
-	 * @return array
74
-	 */
75
-	public abstract function getFolder($path);
76
-	/**
77
-	 * get all files in the archive
78
-	 * @return array
79
-	 */
80
-	public abstract function getFiles();
81
-	/**
82
-	 * get the content of a file
83
-	 * @param string $path
84
-	 * @return string
85
-	 */
86
-	public abstract function getFile($path);
87
-	/**
88
-	 * extract a single file from the archive
89
-	 * @param string $path
90
-	 * @param string $dest
91
-	 * @return bool
92
-	 */
93
-	public abstract function extractFile($path, $dest);
94
-	/**
95
-	 * extract the archive
96
-	 * @param string $dest
97
-	 * @return bool
98
-	 */
99
-	public abstract function extract($dest);
100
-	/**
101
-	 * check if a file or folder exists in the archive
102
-	 * @param string $path
103
-	 * @return bool
104
-	 */
105
-	public abstract function fileExists($path);
106
-	/**
107
-	 * remove a file or folder from the archive
108
-	 * @param string $path
109
-	 * @return bool
110
-	 */
111
-	public abstract function remove($path);
112
-	/**
113
-	 * get a file handler
114
-	 * @param string $path
115
-	 * @param string $mode
116
-	 * @return resource
117
-	 */
118
-	public abstract function getStream($path, $mode);
119
-	/**
120
-	 * add a folder and all its content
121
-	 * @param string $path
122
-	 * @param string $source
123
-	 */
124
-	public function addRecursive($path, $source) {
125
-		$dh = opendir($source);
126
-		if(is_resource($dh)) {
127
-			$this->addFolder($path);
128
-			while (($file = readdir($dh)) !== false) {
129
-				if($file === '.' || $file === '..') {
130
-					continue;
131
-				}
132
-				if(is_dir($source.'/'.$file)) {
133
-					$this->addRecursive($path.'/'.$file, $source.'/'.$file);
134
-				}else{
135
-					$this->addFile($path.'/'.$file, $source.'/'.$file);
136
-				}
137
-			}
138
-		}
139
-	}
34
+    /**
35
+     * @param $source
36
+     */
37
+    public abstract function __construct($source);
38
+    /**
39
+     * add an empty folder to the archive
40
+     * @param string $path
41
+     * @return bool
42
+     */
43
+    public abstract function addFolder($path);
44
+    /**
45
+     * add a file to the archive
46
+     * @param string $path
47
+     * @param string $source either a local file or string data
48
+     * @return bool
49
+     */
50
+    public abstract function addFile($path, $source='');
51
+    /**
52
+     * rename a file or folder in the archive
53
+     * @param string $source
54
+     * @param string $dest
55
+     * @return bool
56
+     */
57
+    public abstract function rename($source, $dest);
58
+    /**
59
+     * get the uncompressed size of a file in the archive
60
+     * @param string $path
61
+     * @return int
62
+     */
63
+    public abstract function filesize($path);
64
+    /**
65
+     * get the last modified time of a file in the archive
66
+     * @param string $path
67
+     * @return int
68
+     */
69
+    public abstract function mtime($path);
70
+    /**
71
+     * get the files in a folder
72
+     * @param string $path
73
+     * @return array
74
+     */
75
+    public abstract function getFolder($path);
76
+    /**
77
+     * get all files in the archive
78
+     * @return array
79
+     */
80
+    public abstract function getFiles();
81
+    /**
82
+     * get the content of a file
83
+     * @param string $path
84
+     * @return string
85
+     */
86
+    public abstract function getFile($path);
87
+    /**
88
+     * extract a single file from the archive
89
+     * @param string $path
90
+     * @param string $dest
91
+     * @return bool
92
+     */
93
+    public abstract function extractFile($path, $dest);
94
+    /**
95
+     * extract the archive
96
+     * @param string $dest
97
+     * @return bool
98
+     */
99
+    public abstract function extract($dest);
100
+    /**
101
+     * check if a file or folder exists in the archive
102
+     * @param string $path
103
+     * @return bool
104
+     */
105
+    public abstract function fileExists($path);
106
+    /**
107
+     * remove a file or folder from the archive
108
+     * @param string $path
109
+     * @return bool
110
+     */
111
+    public abstract function remove($path);
112
+    /**
113
+     * get a file handler
114
+     * @param string $path
115
+     * @param string $mode
116
+     * @return resource
117
+     */
118
+    public abstract function getStream($path, $mode);
119
+    /**
120
+     * add a folder and all its content
121
+     * @param string $path
122
+     * @param string $source
123
+     */
124
+    public function addRecursive($path, $source) {
125
+        $dh = opendir($source);
126
+        if(is_resource($dh)) {
127
+            $this->addFolder($path);
128
+            while (($file = readdir($dh)) !== false) {
129
+                if($file === '.' || $file === '..') {
130
+                    continue;
131
+                }
132
+                if(is_dir($source.'/'.$file)) {
133
+                    $this->addRecursive($path.'/'.$file, $source.'/'.$file);
134
+                }else{
135
+                    $this->addFile($path.'/'.$file, $source.'/'.$file);
136
+                }
137
+            }
138
+        }
139
+    }
140 140
 }
Please login to merge, or discard this patch.
lib/private/NaturalSort_DefaultCollator.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -25,14 +25,14 @@
 block discarded – undo
25 25
 namespace OC;
26 26
 
27 27
 class NaturalSort_DefaultCollator {
28
-	public function compare($a, $b) {
29
-		$result = strcasecmp($a, $b);
30
-		if ($result === 0) {
31
-			if ($a === $b) {
32
-				return 0;
33
-			}
34
-			return ($a > $b) ? -1 : 1;
35
-		}
36
-		return ($result < 0) ? -1 : 1;
37
-	}
28
+    public function compare($a, $b) {
29
+        $result = strcasecmp($a, $b);
30
+        if ($result === 0) {
31
+            if ($a === $b) {
32
+                return 0;
33
+            }
34
+            return ($a > $b) ? -1 : 1;
35
+        }
36
+        return ($result < 0) ? -1 : 1;
37
+    }
38 38
 }
Please login to merge, or discard this patch.
lib/private/TemplateLayout.php 3 patches
Braces   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -61,7 +61,7 @@
 block discarded – undo
61 61
 			parent::__construct( 'core', 'layout.user' );
62 62
 			if(in_array(\OC_App::getCurrentApp(), ['settings','admin', 'help']) !== false) {
63 63
 				$this->assign('bodyid', 'body-settings');
64
-			}else{
64
+			} else{
65 65
 				$this->assign('bodyid', 'body-user');
66 66
 			}
67 67
 
Please login to merge, or discard this patch.
Indentation   +301 added lines, -301 removed lines patch added patch discarded remove patch
@@ -46,305 +46,305 @@
 block discarded – undo
46 46
 
47 47
 class TemplateLayout extends \OC_Template {
48 48
 
49
-	private static $versionHash = '';
50
-
51
-	/**
52
-	 * @var \OCP\IConfig
53
-	 */
54
-	private $config;
55
-
56
-	/**
57
-	 * @param string $renderAs
58
-	 * @param string $appId application id
59
-	 */
60
-	public function __construct( $renderAs, $appId = '' ) {
61
-
62
-		// yes - should be injected ....
63
-		$this->config = \OC::$server->getConfig();
64
-
65
-		if(\OCP\Util::isIE()) {
66
-			\OC_Util::addStyle('ie');
67
-		}
68
-
69
-		// Decide which page we show
70
-		if($renderAs === 'user') {
71
-			parent::__construct( 'core', 'layout.user' );
72
-			if(in_array(\OC_App::getCurrentApp(), ['settings','admin', 'help']) !== false) {
73
-				$this->assign('bodyid', 'body-settings');
74
-			}else{
75
-				$this->assign('bodyid', 'body-user');
76
-			}
77
-
78
-			// Add navigation entry
79
-			$this->assign( 'application', '');
80
-			$this->assign( 'appid', $appId );
81
-			$navigation = \OC::$server->getNavigationManager()->getAll();
82
-			$this->assign( 'navigation', $navigation);
83
-			$settingsNavigation = \OC::$server->getNavigationManager()->getAll('settings');
84
-			$this->assign( 'settingsnavigation', $settingsNavigation);
85
-			foreach($navigation as $entry) {
86
-				if ($entry['active']) {
87
-					$this->assign( 'application', $entry['name'] );
88
-					break;
89
-				}
90
-			}
91
-
92
-			foreach($settingsNavigation as $entry) {
93
-				if ($entry['active']) {
94
-					$this->assign( 'application', $entry['name'] );
95
-					break;
96
-				}
97
-			}
98
-			$userDisplayName = \OC_User::getDisplayName();
99
-			$this->assign('user_displayname', $userDisplayName);
100
-			$this->assign('user_uid', \OC_User::getUser());
101
-
102
-			if (\OC_User::getUser() === false) {
103
-				$this->assign('userAvatarSet', false);
104
-			} else {
105
-				$this->assign('userAvatarSet', \OC::$server->getAvatarManager()->getAvatar(\OC_User::getUser())->exists());
106
-				$this->assign('userAvatarVersion', $this->config->getUserValue(\OC_User::getUser(), 'avatar', 'version', 0));
107
-			}
108
-
109
-			// check if app menu icons should be inverted
110
-			try {
111
-				/** @var \OCA\Theming\Util $util */
112
-				$util = \OC::$server->query(\OCA\Theming\Util::class);
113
-				$this->assign('themingInvertMenu', $util->invertTextColor(\OC::$server->getThemingDefaults()->getColorPrimary()));
114
-			} catch (\OCP\AppFramework\QueryException $e) {
115
-				$this->assign('themingInvertMenu', false);
116
-			}
117
-
118
-		} else if ($renderAs === 'error') {
119
-			parent::__construct('core', 'layout.guest', '', false);
120
-			$this->assign('bodyid', 'body-login');
121
-			$this->assign('user_displayname', '');
122
-			$this->assign('user_uid', '');
123
-		} else if ($renderAs === 'guest') {
124
-			parent::__construct('core', 'layout.guest');
125
-			\OC_Util::addStyle('guest');
126
-			$this->assign('bodyid', 'body-login');
127
-
128
-			$userDisplayName = \OC_User::getDisplayName();
129
-			$this->assign('user_displayname', $userDisplayName);
130
-			$this->assign('user_uid', \OC_User::getUser());
131
-		} else if ($renderAs === 'public') {
132
-			parent::__construct('core', 'layout.public');
133
-			$this->assign( 'appid', $appId );
134
-			$this->assign('bodyid', 'body-public');
135
-			$this->assign('showSimpleSignUpLink', $this->config->getSystemValue('simpleSignUpLink.shown', true) !== false);
136
-		} else {
137
-			parent::__construct('core', 'layout.base');
138
-
139
-		}
140
-		// Send the language and the locale to our layouts
141
-		$lang = \OC::$server->getL10NFactory()->findLanguage();
142
-		$locale = \OC::$server->getL10NFactory()->findLocale($lang);
143
-		$localeLang = \OC::$server->getL10NFactory()->findLanguageFromLocale('lib', $locale);
144
-
145
-		$lang = str_replace('_', '-', $lang);
146
-		$this->assign('language', $lang);
147
-		$this->assign('locale', $locale);
148
-
149
-		if(\OC::$server->getSystemConfig()->getValue('installed', false)) {
150
-			if (empty(self::$versionHash)) {
151
-				$v = \OC_App::getAppVersions();
152
-				$v['core'] = implode('.', \OCP\Util::getVersion());
153
-				self::$versionHash = substr(md5(implode(',', $v)), 0, 8);
154
-			}
155
-		} else {
156
-			self::$versionHash = md5('not installed');
157
-		}
158
-
159
-		// Add the js files
160
-		$jsFiles = self::findJavascriptFiles(\OC_Util::$scripts);
161
-		$this->assign('jsfiles', array());
162
-		if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') {
163
-			if (\OC::$server->getContentSecurityPolicyNonceManager()->browserSupportsCspV3()) {
164
-				$jsConfigHelper = new JSConfigHelper(
165
-					\OC::$server->getL10N('lib', $localeLang ?: $lang),
166
-					\OC::$server->query(Defaults::class),
167
-					\OC::$server->getAppManager(),
168
-					\OC::$server->getSession(),
169
-					\OC::$server->getUserSession()->getUser(),
170
-					$this->config,
171
-					\OC::$server->getGroupManager(),
172
-					\OC::$server->getIniWrapper(),
173
-					\OC::$server->getURLGenerator(),
174
-					\OC::$server->getCapabilitiesManager()
175
-				);
176
-				$this->assign('inline_ocjs', $jsConfigHelper->getConfig());
177
-			} else {
178
-				$this->append('jsfiles', \OC::$server->getURLGenerator()->linkToRoute('core.OCJS.getConfig', ['v' => self::$versionHash]));
179
-			}
180
-		}
181
-		foreach($jsFiles as $info) {
182
-			$web = $info[1];
183
-			$file = $info[2];
184
-			$this->append( 'jsfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
185
-		}
186
-
187
-		try {
188
-			$pathInfo = \OC::$server->getRequest()->getPathInfo();
189
-		} catch (\Exception $e) {
190
-			$pathInfo = '';
191
-		}
192
-
193
-		// Do not initialise scss appdata until we have a fully installed instance
194
-		// Do not load scss for update, errors, installation or login page
195
-		if(\OC::$server->getSystemConfig()->getValue('installed', false)
196
-			&& !\OCP\Util::needUpgrade()
197
-			&& $pathInfo !== ''
198
-			&& !preg_match('/^\/login/', $pathInfo)
199
-			&& $renderAs !== 'error'
200
-		) {
201
-			$cssFiles = self::findStylesheetFiles(\OC_Util::$styles);
202
-		} else {
203
-			// If we ignore the scss compiler,
204
-			// we need to load the guest css fallback
205
-			\OC_Util::addStyle('guest');
206
-			$cssFiles = self::findStylesheetFiles(\OC_Util::$styles, false);
207
-		}
208
-
209
-		$this->assign('cssfiles', array());
210
-		$this->assign('printcssfiles', []);
211
-		$this->assign('versionHash', self::$versionHash);
212
-		foreach($cssFiles as $info) {
213
-			$web = $info[1];
214
-			$file = $info[2];
215
-
216
-			if (substr($file, -strlen('print.css')) === 'print.css') {
217
-				$this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
218
-			} else {
219
-				$suffix = $this->getVersionHashSuffix($web, $file);
220
-
221
-				if (strpos($file, '?v=') == false) {
222
-					$this->append( 'cssfiles', $web.'/'.$file . $suffix);
223
-				} else {
224
-					$this->append( 'cssfiles', $web.'/'.$file . '-' . substr($suffix, 3));
225
-				}
226
-
227
-			}
228
-		}
229
-
230
-		/** @var InitialStateService $initialState */
231
-		$initialState = \OC::$server->query(InitialStateService::class);
232
-		$this->assign('initialStates', $initialState->getInitialStates());
233
-	}
234
-
235
-	/**
236
-	 * @param string $path
237
- 	 * @param string $file
238
-	 * @return string
239
-	 */
240
-	protected function getVersionHashSuffix($path = false, $file = false) {
241
-		if ($this->config->getSystemValue('debug', false)) {
242
-			// allows chrome workspace mapping in debug mode
243
-			return "";
244
-		}
245
-		$themingSuffix = '';
246
-		$v = [];
247
-
248
-		if ($this->config->getSystemValue('installed', false)) {
249
-			if (\OC::$server->getAppManager()->isInstalled('theming')) {
250
-				$themingSuffix = '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
251
-			}
252
-			$v = \OC_App::getAppVersions();
253
-		}
254
-
255
-		// Try the webroot path for a match
256
-		if ($path !== false && $path !== '') {
257
-			$appName = $this->getAppNamefromPath($path);
258
-			if(array_key_exists($appName, $v)) {
259
-				$appVersion = $v[$appName];
260
-				return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix;
261
-			}
262
-		}
263
-		// fallback to the file path instead
264
-		if ($file !== false && $file !== '') {
265
-			$appName = $this->getAppNamefromPath($file);
266
-			if(array_key_exists($appName, $v)) {
267
-				$appVersion = $v[$appName];
268
-				return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix;
269
-			}
270
-		}
271
-
272
-		return '?v=' . self::$versionHash . $themingSuffix;
273
-	}
274
-
275
-	/**
276
-	 * @param array $styles
277
-	 * @return array
278
-	 */
279
-	static public function findStylesheetFiles($styles, $compileScss = true) {
280
-		// Read the selected theme from the config file
281
-		$theme = \OC_Util::getTheme();
282
-
283
-		if($compileScss) {
284
-			$SCSSCacher = \OC::$server->query(SCSSCacher::class);
285
-		} else {
286
-			$SCSSCacher = null;
287
-		}
288
-
289
-		$locator = new \OC\Template\CSSResourceLocator(
290
-			\OC::$server->getLogger(),
291
-			$theme,
292
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
293
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
294
-			$SCSSCacher
295
-		);
296
-		$locator->find($styles);
297
-		return $locator->getResources();
298
-	}
299
-
300
-	/**
301
-	 * @param string $path
302
-	 * @return string|boolean
303
-	 */
304
-	public function getAppNamefromPath($path) {
305
-		if ($path !== '' && is_string($path)) {
306
-			$pathParts = explode('/', $path);
307
-			if ($pathParts[0] === 'css') {
308
-				// This is a scss request
309
-				return $pathParts[1];
310
-			}
311
-			return end($pathParts);
312
-		}
313
-		return false;
314
-
315
-	}
316
-
317
-	/**
318
-	 * @param array $scripts
319
-	 * @return array
320
-	 */
321
-	static public function findJavascriptFiles($scripts) {
322
-		// Read the selected theme from the config file
323
-		$theme = \OC_Util::getTheme();
324
-
325
-		$locator = new \OC\Template\JSResourceLocator(
326
-			\OC::$server->getLogger(),
327
-			$theme,
328
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
329
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
330
-			\OC::$server->query(JSCombiner::class)
331
-			);
332
-		$locator->find($scripts);
333
-		return $locator->getResources();
334
-	}
335
-
336
-	/**
337
-	 * Converts the absolute file path to a relative path from \OC::$SERVERROOT
338
-	 * @param string $filePath Absolute path
339
-	 * @return string Relative path
340
-	 * @throws \Exception If $filePath is not under \OC::$SERVERROOT
341
-	 */
342
-	public static function convertToRelativePath($filePath) {
343
-		$relativePath = explode(\OC::$SERVERROOT, $filePath);
344
-		if(count($relativePath) !== 2) {
345
-			throw new \Exception('$filePath is not under the \OC::$SERVERROOT');
346
-		}
347
-
348
-		return $relativePath[1];
349
-	}
49
+    private static $versionHash = '';
50
+
51
+    /**
52
+     * @var \OCP\IConfig
53
+     */
54
+    private $config;
55
+
56
+    /**
57
+     * @param string $renderAs
58
+     * @param string $appId application id
59
+     */
60
+    public function __construct( $renderAs, $appId = '' ) {
61
+
62
+        // yes - should be injected ....
63
+        $this->config = \OC::$server->getConfig();
64
+
65
+        if(\OCP\Util::isIE()) {
66
+            \OC_Util::addStyle('ie');
67
+        }
68
+
69
+        // Decide which page we show
70
+        if($renderAs === 'user') {
71
+            parent::__construct( 'core', 'layout.user' );
72
+            if(in_array(\OC_App::getCurrentApp(), ['settings','admin', 'help']) !== false) {
73
+                $this->assign('bodyid', 'body-settings');
74
+            }else{
75
+                $this->assign('bodyid', 'body-user');
76
+            }
77
+
78
+            // Add navigation entry
79
+            $this->assign( 'application', '');
80
+            $this->assign( 'appid', $appId );
81
+            $navigation = \OC::$server->getNavigationManager()->getAll();
82
+            $this->assign( 'navigation', $navigation);
83
+            $settingsNavigation = \OC::$server->getNavigationManager()->getAll('settings');
84
+            $this->assign( 'settingsnavigation', $settingsNavigation);
85
+            foreach($navigation as $entry) {
86
+                if ($entry['active']) {
87
+                    $this->assign( 'application', $entry['name'] );
88
+                    break;
89
+                }
90
+            }
91
+
92
+            foreach($settingsNavigation as $entry) {
93
+                if ($entry['active']) {
94
+                    $this->assign( 'application', $entry['name'] );
95
+                    break;
96
+                }
97
+            }
98
+            $userDisplayName = \OC_User::getDisplayName();
99
+            $this->assign('user_displayname', $userDisplayName);
100
+            $this->assign('user_uid', \OC_User::getUser());
101
+
102
+            if (\OC_User::getUser() === false) {
103
+                $this->assign('userAvatarSet', false);
104
+            } else {
105
+                $this->assign('userAvatarSet', \OC::$server->getAvatarManager()->getAvatar(\OC_User::getUser())->exists());
106
+                $this->assign('userAvatarVersion', $this->config->getUserValue(\OC_User::getUser(), 'avatar', 'version', 0));
107
+            }
108
+
109
+            // check if app menu icons should be inverted
110
+            try {
111
+                /** @var \OCA\Theming\Util $util */
112
+                $util = \OC::$server->query(\OCA\Theming\Util::class);
113
+                $this->assign('themingInvertMenu', $util->invertTextColor(\OC::$server->getThemingDefaults()->getColorPrimary()));
114
+            } catch (\OCP\AppFramework\QueryException $e) {
115
+                $this->assign('themingInvertMenu', false);
116
+            }
117
+
118
+        } else if ($renderAs === 'error') {
119
+            parent::__construct('core', 'layout.guest', '', false);
120
+            $this->assign('bodyid', 'body-login');
121
+            $this->assign('user_displayname', '');
122
+            $this->assign('user_uid', '');
123
+        } else if ($renderAs === 'guest') {
124
+            parent::__construct('core', 'layout.guest');
125
+            \OC_Util::addStyle('guest');
126
+            $this->assign('bodyid', 'body-login');
127
+
128
+            $userDisplayName = \OC_User::getDisplayName();
129
+            $this->assign('user_displayname', $userDisplayName);
130
+            $this->assign('user_uid', \OC_User::getUser());
131
+        } else if ($renderAs === 'public') {
132
+            parent::__construct('core', 'layout.public');
133
+            $this->assign( 'appid', $appId );
134
+            $this->assign('bodyid', 'body-public');
135
+            $this->assign('showSimpleSignUpLink', $this->config->getSystemValue('simpleSignUpLink.shown', true) !== false);
136
+        } else {
137
+            parent::__construct('core', 'layout.base');
138
+
139
+        }
140
+        // Send the language and the locale to our layouts
141
+        $lang = \OC::$server->getL10NFactory()->findLanguage();
142
+        $locale = \OC::$server->getL10NFactory()->findLocale($lang);
143
+        $localeLang = \OC::$server->getL10NFactory()->findLanguageFromLocale('lib', $locale);
144
+
145
+        $lang = str_replace('_', '-', $lang);
146
+        $this->assign('language', $lang);
147
+        $this->assign('locale', $locale);
148
+
149
+        if(\OC::$server->getSystemConfig()->getValue('installed', false)) {
150
+            if (empty(self::$versionHash)) {
151
+                $v = \OC_App::getAppVersions();
152
+                $v['core'] = implode('.', \OCP\Util::getVersion());
153
+                self::$versionHash = substr(md5(implode(',', $v)), 0, 8);
154
+            }
155
+        } else {
156
+            self::$versionHash = md5('not installed');
157
+        }
158
+
159
+        // Add the js files
160
+        $jsFiles = self::findJavascriptFiles(\OC_Util::$scripts);
161
+        $this->assign('jsfiles', array());
162
+        if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') {
163
+            if (\OC::$server->getContentSecurityPolicyNonceManager()->browserSupportsCspV3()) {
164
+                $jsConfigHelper = new JSConfigHelper(
165
+                    \OC::$server->getL10N('lib', $localeLang ?: $lang),
166
+                    \OC::$server->query(Defaults::class),
167
+                    \OC::$server->getAppManager(),
168
+                    \OC::$server->getSession(),
169
+                    \OC::$server->getUserSession()->getUser(),
170
+                    $this->config,
171
+                    \OC::$server->getGroupManager(),
172
+                    \OC::$server->getIniWrapper(),
173
+                    \OC::$server->getURLGenerator(),
174
+                    \OC::$server->getCapabilitiesManager()
175
+                );
176
+                $this->assign('inline_ocjs', $jsConfigHelper->getConfig());
177
+            } else {
178
+                $this->append('jsfiles', \OC::$server->getURLGenerator()->linkToRoute('core.OCJS.getConfig', ['v' => self::$versionHash]));
179
+            }
180
+        }
181
+        foreach($jsFiles as $info) {
182
+            $web = $info[1];
183
+            $file = $info[2];
184
+            $this->append( 'jsfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
185
+        }
186
+
187
+        try {
188
+            $pathInfo = \OC::$server->getRequest()->getPathInfo();
189
+        } catch (\Exception $e) {
190
+            $pathInfo = '';
191
+        }
192
+
193
+        // Do not initialise scss appdata until we have a fully installed instance
194
+        // Do not load scss for update, errors, installation or login page
195
+        if(\OC::$server->getSystemConfig()->getValue('installed', false)
196
+            && !\OCP\Util::needUpgrade()
197
+            && $pathInfo !== ''
198
+            && !preg_match('/^\/login/', $pathInfo)
199
+            && $renderAs !== 'error'
200
+        ) {
201
+            $cssFiles = self::findStylesheetFiles(\OC_Util::$styles);
202
+        } else {
203
+            // If we ignore the scss compiler,
204
+            // we need to load the guest css fallback
205
+            \OC_Util::addStyle('guest');
206
+            $cssFiles = self::findStylesheetFiles(\OC_Util::$styles, false);
207
+        }
208
+
209
+        $this->assign('cssfiles', array());
210
+        $this->assign('printcssfiles', []);
211
+        $this->assign('versionHash', self::$versionHash);
212
+        foreach($cssFiles as $info) {
213
+            $web = $info[1];
214
+            $file = $info[2];
215
+
216
+            if (substr($file, -strlen('print.css')) === 'print.css') {
217
+                $this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
218
+            } else {
219
+                $suffix = $this->getVersionHashSuffix($web, $file);
220
+
221
+                if (strpos($file, '?v=') == false) {
222
+                    $this->append( 'cssfiles', $web.'/'.$file . $suffix);
223
+                } else {
224
+                    $this->append( 'cssfiles', $web.'/'.$file . '-' . substr($suffix, 3));
225
+                }
226
+
227
+            }
228
+        }
229
+
230
+        /** @var InitialStateService $initialState */
231
+        $initialState = \OC::$server->query(InitialStateService::class);
232
+        $this->assign('initialStates', $initialState->getInitialStates());
233
+    }
234
+
235
+    /**
236
+     * @param string $path
237
+     * @param string $file
238
+     * @return string
239
+     */
240
+    protected function getVersionHashSuffix($path = false, $file = false) {
241
+        if ($this->config->getSystemValue('debug', false)) {
242
+            // allows chrome workspace mapping in debug mode
243
+            return "";
244
+        }
245
+        $themingSuffix = '';
246
+        $v = [];
247
+
248
+        if ($this->config->getSystemValue('installed', false)) {
249
+            if (\OC::$server->getAppManager()->isInstalled('theming')) {
250
+                $themingSuffix = '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
251
+            }
252
+            $v = \OC_App::getAppVersions();
253
+        }
254
+
255
+        // Try the webroot path for a match
256
+        if ($path !== false && $path !== '') {
257
+            $appName = $this->getAppNamefromPath($path);
258
+            if(array_key_exists($appName, $v)) {
259
+                $appVersion = $v[$appName];
260
+                return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix;
261
+            }
262
+        }
263
+        // fallback to the file path instead
264
+        if ($file !== false && $file !== '') {
265
+            $appName = $this->getAppNamefromPath($file);
266
+            if(array_key_exists($appName, $v)) {
267
+                $appVersion = $v[$appName];
268
+                return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix;
269
+            }
270
+        }
271
+
272
+        return '?v=' . self::$versionHash . $themingSuffix;
273
+    }
274
+
275
+    /**
276
+     * @param array $styles
277
+     * @return array
278
+     */
279
+    static public function findStylesheetFiles($styles, $compileScss = true) {
280
+        // Read the selected theme from the config file
281
+        $theme = \OC_Util::getTheme();
282
+
283
+        if($compileScss) {
284
+            $SCSSCacher = \OC::$server->query(SCSSCacher::class);
285
+        } else {
286
+            $SCSSCacher = null;
287
+        }
288
+
289
+        $locator = new \OC\Template\CSSResourceLocator(
290
+            \OC::$server->getLogger(),
291
+            $theme,
292
+            array( \OC::$SERVERROOT => \OC::$WEBROOT ),
293
+            array( \OC::$SERVERROOT => \OC::$WEBROOT ),
294
+            $SCSSCacher
295
+        );
296
+        $locator->find($styles);
297
+        return $locator->getResources();
298
+    }
299
+
300
+    /**
301
+     * @param string $path
302
+     * @return string|boolean
303
+     */
304
+    public function getAppNamefromPath($path) {
305
+        if ($path !== '' && is_string($path)) {
306
+            $pathParts = explode('/', $path);
307
+            if ($pathParts[0] === 'css') {
308
+                // This is a scss request
309
+                return $pathParts[1];
310
+            }
311
+            return end($pathParts);
312
+        }
313
+        return false;
314
+
315
+    }
316
+
317
+    /**
318
+     * @param array $scripts
319
+     * @return array
320
+     */
321
+    static public function findJavascriptFiles($scripts) {
322
+        // Read the selected theme from the config file
323
+        $theme = \OC_Util::getTheme();
324
+
325
+        $locator = new \OC\Template\JSResourceLocator(
326
+            \OC::$server->getLogger(),
327
+            $theme,
328
+            array( \OC::$SERVERROOT => \OC::$WEBROOT ),
329
+            array( \OC::$SERVERROOT => \OC::$WEBROOT ),
330
+            \OC::$server->query(JSCombiner::class)
331
+            );
332
+        $locator->find($scripts);
333
+        return $locator->getResources();
334
+    }
335
+
336
+    /**
337
+     * Converts the absolute file path to a relative path from \OC::$SERVERROOT
338
+     * @param string $filePath Absolute path
339
+     * @return string Relative path
340
+     * @throws \Exception If $filePath is not under \OC::$SERVERROOT
341
+     */
342
+    public static function convertToRelativePath($filePath) {
343
+        $relativePath = explode(\OC::$SERVERROOT, $filePath);
344
+        if(count($relativePath) !== 2) {
345
+            throw new \Exception('$filePath is not under the \OC::$SERVERROOT');
346
+        }
347
+
348
+        return $relativePath[1];
349
+    }
350 350
 }
Please login to merge, or discard this patch.
Spacing   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -57,41 +57,41 @@  discard block
 block discarded – undo
57 57
 	 * @param string $renderAs
58 58
 	 * @param string $appId application id
59 59
 	 */
60
-	public function __construct( $renderAs, $appId = '' ) {
60
+	public function __construct($renderAs, $appId = '') {
61 61
 
62 62
 		// yes - should be injected ....
63 63
 		$this->config = \OC::$server->getConfig();
64 64
 
65
-		if(\OCP\Util::isIE()) {
65
+		if (\OCP\Util::isIE()) {
66 66
 			\OC_Util::addStyle('ie');
67 67
 		}
68 68
 
69 69
 		// Decide which page we show
70
-		if($renderAs === 'user') {
71
-			parent::__construct( 'core', 'layout.user' );
72
-			if(in_array(\OC_App::getCurrentApp(), ['settings','admin', 'help']) !== false) {
70
+		if ($renderAs === 'user') {
71
+			parent::__construct('core', 'layout.user');
72
+			if (in_array(\OC_App::getCurrentApp(), ['settings', 'admin', 'help']) !== false) {
73 73
 				$this->assign('bodyid', 'body-settings');
74
-			}else{
74
+			} else {
75 75
 				$this->assign('bodyid', 'body-user');
76 76
 			}
77 77
 
78 78
 			// Add navigation entry
79
-			$this->assign( 'application', '');
80
-			$this->assign( 'appid', $appId );
79
+			$this->assign('application', '');
80
+			$this->assign('appid', $appId);
81 81
 			$navigation = \OC::$server->getNavigationManager()->getAll();
82
-			$this->assign( 'navigation', $navigation);
82
+			$this->assign('navigation', $navigation);
83 83
 			$settingsNavigation = \OC::$server->getNavigationManager()->getAll('settings');
84
-			$this->assign( 'settingsnavigation', $settingsNavigation);
85
-			foreach($navigation as $entry) {
84
+			$this->assign('settingsnavigation', $settingsNavigation);
85
+			foreach ($navigation as $entry) {
86 86
 				if ($entry['active']) {
87
-					$this->assign( 'application', $entry['name'] );
87
+					$this->assign('application', $entry['name']);
88 88
 					break;
89 89
 				}
90 90
 			}
91 91
 
92
-			foreach($settingsNavigation as $entry) {
92
+			foreach ($settingsNavigation as $entry) {
93 93
 				if ($entry['active']) {
94
-					$this->assign( 'application', $entry['name'] );
94
+					$this->assign('application', $entry['name']);
95 95
 					break;
96 96
 				}
97 97
 			}
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
 			$this->assign('user_uid', \OC_User::getUser());
131 131
 		} else if ($renderAs === 'public') {
132 132
 			parent::__construct('core', 'layout.public');
133
-			$this->assign( 'appid', $appId );
133
+			$this->assign('appid', $appId);
134 134
 			$this->assign('bodyid', 'body-public');
135 135
 			$this->assign('showSimpleSignUpLink', $this->config->getSystemValue('simpleSignUpLink.shown', true) !== false);
136 136
 		} else {
@@ -146,7 +146,7 @@  discard block
 block discarded – undo
146 146
 		$this->assign('language', $lang);
147 147
 		$this->assign('locale', $locale);
148 148
 
149
-		if(\OC::$server->getSystemConfig()->getValue('installed', false)) {
149
+		if (\OC::$server->getSystemConfig()->getValue('installed', false)) {
150 150
 			if (empty(self::$versionHash)) {
151 151
 				$v = \OC_App::getAppVersions();
152 152
 				$v['core'] = implode('.', \OCP\Util::getVersion());
@@ -178,10 +178,10 @@  discard block
 block discarded – undo
178 178
 				$this->append('jsfiles', \OC::$server->getURLGenerator()->linkToRoute('core.OCJS.getConfig', ['v' => self::$versionHash]));
179 179
 			}
180 180
 		}
181
-		foreach($jsFiles as $info) {
181
+		foreach ($jsFiles as $info) {
182 182
 			$web = $info[1];
183 183
 			$file = $info[2];
184
-			$this->append( 'jsfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
184
+			$this->append('jsfiles', $web.'/'.$file.$this->getVersionHashSuffix());
185 185
 		}
186 186
 
187 187
 		try {
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 
193 193
 		// Do not initialise scss appdata until we have a fully installed instance
194 194
 		// Do not load scss for update, errors, installation or login page
195
-		if(\OC::$server->getSystemConfig()->getValue('installed', false)
195
+		if (\OC::$server->getSystemConfig()->getValue('installed', false)
196 196
 			&& !\OCP\Util::needUpgrade()
197 197
 			&& $pathInfo !== ''
198 198
 			&& !preg_match('/^\/login/', $pathInfo)
@@ -209,19 +209,19 @@  discard block
 block discarded – undo
209 209
 		$this->assign('cssfiles', array());
210 210
 		$this->assign('printcssfiles', []);
211 211
 		$this->assign('versionHash', self::$versionHash);
212
-		foreach($cssFiles as $info) {
212
+		foreach ($cssFiles as $info) {
213 213
 			$web = $info[1];
214 214
 			$file = $info[2];
215 215
 
216 216
 			if (substr($file, -strlen('print.css')) === 'print.css') {
217
-				$this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
217
+				$this->append('printcssfiles', $web.'/'.$file.$this->getVersionHashSuffix());
218 218
 			} else {
219 219
 				$suffix = $this->getVersionHashSuffix($web, $file);
220 220
 
221 221
 				if (strpos($file, '?v=') == false) {
222
-					$this->append( 'cssfiles', $web.'/'.$file . $suffix);
222
+					$this->append('cssfiles', $web.'/'.$file.$suffix);
223 223
 				} else {
224
-					$this->append( 'cssfiles', $web.'/'.$file . '-' . substr($suffix, 3));
224
+					$this->append('cssfiles', $web.'/'.$file.'-'.substr($suffix, 3));
225 225
 				}
226 226
 
227 227
 			}
@@ -247,7 +247,7 @@  discard block
 block discarded – undo
247 247
 
248 248
 		if ($this->config->getSystemValue('installed', false)) {
249 249
 			if (\OC::$server->getAppManager()->isInstalled('theming')) {
250
-				$themingSuffix = '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
250
+				$themingSuffix = '-'.$this->config->getAppValue('theming', 'cachebuster', '0');
251 251
 			}
252 252
 			$v = \OC_App::getAppVersions();
253 253
 		}
@@ -255,21 +255,21 @@  discard block
 block discarded – undo
255 255
 		// Try the webroot path for a match
256 256
 		if ($path !== false && $path !== '') {
257 257
 			$appName = $this->getAppNamefromPath($path);
258
-			if(array_key_exists($appName, $v)) {
258
+			if (array_key_exists($appName, $v)) {
259 259
 				$appVersion = $v[$appName];
260
-				return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix;
260
+				return '?v='.substr(md5($appVersion), 0, 8).$themingSuffix;
261 261
 			}
262 262
 		}
263 263
 		// fallback to the file path instead
264 264
 		if ($file !== false && $file !== '') {
265 265
 			$appName = $this->getAppNamefromPath($file);
266
-			if(array_key_exists($appName, $v)) {
266
+			if (array_key_exists($appName, $v)) {
267 267
 				$appVersion = $v[$appName];
268
-				return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix;
268
+				return '?v='.substr(md5($appVersion), 0, 8).$themingSuffix;
269 269
 			}
270 270
 		}
271 271
 
272
-		return '?v=' . self::$versionHash . $themingSuffix;
272
+		return '?v='.self::$versionHash.$themingSuffix;
273 273
 	}
274 274
 
275 275
 	/**
@@ -280,7 +280,7 @@  discard block
 block discarded – undo
280 280
 		// Read the selected theme from the config file
281 281
 		$theme = \OC_Util::getTheme();
282 282
 
283
-		if($compileScss) {
283
+		if ($compileScss) {
284 284
 			$SCSSCacher = \OC::$server->query(SCSSCacher::class);
285 285
 		} else {
286 286
 			$SCSSCacher = null;
@@ -289,8 +289,8 @@  discard block
 block discarded – undo
289 289
 		$locator = new \OC\Template\CSSResourceLocator(
290 290
 			\OC::$server->getLogger(),
291 291
 			$theme,
292
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
293
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
292
+			array(\OC::$SERVERROOT => \OC::$WEBROOT),
293
+			array(\OC::$SERVERROOT => \OC::$WEBROOT),
294 294
 			$SCSSCacher
295 295
 		);
296 296
 		$locator->find($styles);
@@ -325,8 +325,8 @@  discard block
 block discarded – undo
325 325
 		$locator = new \OC\Template\JSResourceLocator(
326 326
 			\OC::$server->getLogger(),
327 327
 			$theme,
328
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
329
-			array( \OC::$SERVERROOT => \OC::$WEBROOT ),
328
+			array(\OC::$SERVERROOT => \OC::$WEBROOT),
329
+			array(\OC::$SERVERROOT => \OC::$WEBROOT),
330 330
 			\OC::$server->query(JSCombiner::class)
331 331
 			);
332 332
 		$locator->find($scripts);
@@ -341,7 +341,7 @@  discard block
 block discarded – undo
341 341
 	 */
342 342
 	public static function convertToRelativePath($filePath) {
343 343
 		$relativePath = explode(\OC::$SERVERROOT, $filePath);
344
-		if(count($relativePath) !== 2) {
344
+		if (count($relativePath) !== 2) {
345 345
 			throw new \Exception('$filePath is not under the \OC::$SERVERROOT');
346 346
 		}
347 347
 
Please login to merge, or discard this patch.
lib/private/Migration/BackgroundRepair.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
 	 */
58 58
 	public function execute($jobList, ILogger $logger = null) {
59 59
 		// add an interval of 15 mins
60
-		$this->setInterval(15*60);
60
+		$this->setInterval(15 * 60);
61 61
 
62 62
 		$this->jobList = $jobList;
63 63
 		$this->logger = $logger;
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 		try {
91 91
 			$repair->addStep($step);
92 92
 		} catch (\Exception $ex) {
93
-			$this->logger->logException($ex,[
93
+			$this->logger->logException($ex, [
94 94
 				'app' => 'migration'
95 95
 			]);
96 96
 
Please login to merge, or discard this patch.
Indentation   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -38,82 +38,82 @@
 block discarded – undo
38 38
  */
39 39
 class BackgroundRepair extends TimedJob {
40 40
 
41
-	/** @var IJobList */
42
-	private $jobList;
41
+    /** @var IJobList */
42
+    private $jobList;
43 43
 
44
-	/** @var ILogger */
45
-	private $logger;
44
+    /** @var ILogger */
45
+    private $logger;
46 46
 
47
-	/** @var EventDispatcherInterface */
48
-	private $dispatcher;
47
+    /** @var EventDispatcherInterface */
48
+    private $dispatcher;
49 49
 
50
-	public function __construct(EventDispatcherInterface $dispatcher) {
51
-		$this->dispatcher = $dispatcher;
52
-	}
50
+    public function __construct(EventDispatcherInterface $dispatcher) {
51
+        $this->dispatcher = $dispatcher;
52
+    }
53 53
 
54
-	/**
55
-	 * run the job, then remove it from the job list
56
-	 *
57
-	 * @param JobList $jobList
58
-	 * @param ILogger|null $logger
59
-	 */
60
-	public function execute($jobList, ILogger $logger = null) {
61
-		// add an interval of 15 mins
62
-		$this->setInterval(15*60);
54
+    /**
55
+     * run the job, then remove it from the job list
56
+     *
57
+     * @param JobList $jobList
58
+     * @param ILogger|null $logger
59
+     */
60
+    public function execute($jobList, ILogger $logger = null) {
61
+        // add an interval of 15 mins
62
+        $this->setInterval(15*60);
63 63
 
64
-		$this->jobList = $jobList;
65
-		$this->logger = $logger;
66
-		parent::execute($jobList, $logger);
67
-	}
64
+        $this->jobList = $jobList;
65
+        $this->logger = $logger;
66
+        parent::execute($jobList, $logger);
67
+    }
68 68
 
69
-	/**
70
-	 * @param array $argument
71
-	 * @throws \Exception
72
-	 * @throws \OC\NeedsUpdateException
73
-	 */
74
-	protected function run($argument) {
75
-		if (!isset($argument['app']) || !isset($argument['step'])) {
76
-			// remove the job - we can never execute it
77
-			$this->jobList->remove($this, $this->argument);
78
-			return;
79
-		}
80
-		$app = $argument['app'];
69
+    /**
70
+     * @param array $argument
71
+     * @throws \Exception
72
+     * @throws \OC\NeedsUpdateException
73
+     */
74
+    protected function run($argument) {
75
+        if (!isset($argument['app']) || !isset($argument['step'])) {
76
+            // remove the job - we can never execute it
77
+            $this->jobList->remove($this, $this->argument);
78
+            return;
79
+        }
80
+        $app = $argument['app'];
81 81
 
82
-		try {
83
-			$this->loadApp($app);
84
-		} catch (NeedsUpdateException $ex) {
85
-			// as long as the app is not yet done with it's offline migration
86
-			// we better not start with the live migration
87
-			return;
88
-		}
82
+        try {
83
+            $this->loadApp($app);
84
+        } catch (NeedsUpdateException $ex) {
85
+            // as long as the app is not yet done with it's offline migration
86
+            // we better not start with the live migration
87
+            return;
88
+        }
89 89
 
90
-		$step = $argument['step'];
91
-		$repair = new Repair([], $this->dispatcher);
92
-		try {
93
-			$repair->addStep($step);
94
-		} catch (\Exception $ex) {
95
-			$this->logger->logException($ex,[
96
-				'app' => 'migration'
97
-			]);
90
+        $step = $argument['step'];
91
+        $repair = new Repair([], $this->dispatcher);
92
+        try {
93
+            $repair->addStep($step);
94
+        } catch (\Exception $ex) {
95
+            $this->logger->logException($ex,[
96
+                'app' => 'migration'
97
+            ]);
98 98
 
99
-			// remove the job - we can never execute it
100
-			$this->jobList->remove($this, $this->argument);
101
-			return;
102
-		}
99
+            // remove the job - we can never execute it
100
+            $this->jobList->remove($this, $this->argument);
101
+            return;
102
+        }
103 103
 
104
-		// execute the repair step
105
-		$repair->run();
104
+        // execute the repair step
105
+        $repair->run();
106 106
 
107
-		// remove the job once executed successfully
108
-		$this->jobList->remove($this, $this->argument);
109
-	}
107
+        // remove the job once executed successfully
108
+        $this->jobList->remove($this, $this->argument);
109
+    }
110 110
 
111
-	/**
112
-	 * @codeCoverageIgnore
113
-	 * @param $app
114
-	 * @throws NeedsUpdateException
115
-	 */
116
-	protected function loadApp($app) {
117
-		OC_App::loadApp($app);
118
-	}
111
+    /**
112
+     * @codeCoverageIgnore
113
+     * @param $app
114
+     * @throws NeedsUpdateException
115
+     */
116
+    protected function loadApp($app) {
117
+        OC_App::loadApp($app);
118
+    }
119 119
 }
Please login to merge, or discard this patch.
lib/private/Command/QueueBus.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -55,7 +55,7 @@
 block discarded – undo
55 55
 		if ($command instanceof ICommand) {
56 56
 			// ensure the command can be serialized
57 57
 			$serialized = serialize($command);
58
-			if(strlen($serialized) > 4000) {
58
+			if (strlen($serialized) > 4000) {
59 59
 				throw new \InvalidArgumentException('Trying to push a command which serialized form can not be stored in the database (>4000 character)');
60 60
 			}
61 61
 			$unserialized = unserialize($serialized);
Please login to merge, or discard this patch.
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -26,48 +26,48 @@
 block discarded – undo
26 26
 use OCP\Command\ICommand;
27 27
 
28 28
 class QueueBus implements IBus {
29
-	/**
30
-	 * @var ICommand[]|callable[]
31
-	 */
32
-	private $queue = [];
29
+    /**
30
+     * @var ICommand[]|callable[]
31
+     */
32
+    private $queue = [];
33 33
 
34
-	/**
35
-	 * Schedule a command to be fired
36
-	 *
37
-	 * @param \OCP\Command\ICommand | callable $command
38
-	 */
39
-	public function push($command) {
40
-		$this->queue[] = $command;
41
-	}
34
+    /**
35
+     * Schedule a command to be fired
36
+     *
37
+     * @param \OCP\Command\ICommand | callable $command
38
+     */
39
+    public function push($command) {
40
+        $this->queue[] = $command;
41
+    }
42 42
 
43
-	/**
44
-	 * Require all commands using a trait to be run synchronous
45
-	 *
46
-	 * @param string $trait
47
-	 */
48
-	public function requireSync($trait) {
49
-	}
43
+    /**
44
+     * Require all commands using a trait to be run synchronous
45
+     *
46
+     * @param string $trait
47
+     */
48
+    public function requireSync($trait) {
49
+    }
50 50
 
51
-	/**
52
-	 * @param \OCP\Command\ICommand | callable $command
53
-	 */
54
-	private function runCommand($command) {
55
-		if ($command instanceof ICommand) {
56
-			// ensure the command can be serialized
57
-			$serialized = serialize($command);
58
-			if(strlen($serialized) > 4000) {
59
-				throw new \InvalidArgumentException('Trying to push a command which serialized form can not be stored in the database (>4000 character)');
60
-			}
61
-			$unserialized = unserialize($serialized);
62
-			$unserialized->handle();
63
-		} else {
64
-			$command();
65
-		}
66
-	}
51
+    /**
52
+     * @param \OCP\Command\ICommand | callable $command
53
+     */
54
+    private function runCommand($command) {
55
+        if ($command instanceof ICommand) {
56
+            // ensure the command can be serialized
57
+            $serialized = serialize($command);
58
+            if(strlen($serialized) > 4000) {
59
+                throw new \InvalidArgumentException('Trying to push a command which serialized form can not be stored in the database (>4000 character)');
60
+            }
61
+            $unserialized = unserialize($serialized);
62
+            $unserialized->handle();
63
+        } else {
64
+            $command();
65
+        }
66
+    }
67 67
 
68
-	public function run() {
69
-		while ($command = array_shift($this->queue)) {
70
-			$this->runCommand($command);
71
-		}
72
-	}
68
+    public function run() {
69
+        while ($command = array_shift($this->queue)) {
70
+            $this->runCommand($command);
71
+        }
72
+    }
73 73
 }
Please login to merge, or discard this patch.