Passed
Push — master ( 54ce35...304c1b )
by John
13:00 queued 12s
created
apps/files_trashbin/lib/Helper.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
 		$result = [];
45 45
 		$timestamp = null;
46 46
 
47
-		$view = new \OC\Files\View('/' . $user . '/files_trashbin/files');
47
+		$view = new \OC\Files\View('/'.$user.'/files_trashbin/files');
48 48
 
49 49
 		if (ltrim($dir, '/') !== '' && !$view->is_dir($dir)) {
50 50
 			throw new \Exception('Directory does not exists');
@@ -91,12 +91,12 @@  discard block
 block discarded – undo
91 91
 			];
92 92
 			if ($originalPath) {
93 93
 				if ($originalPath !== '.') {
94
-					$i['extraData'] = $originalPath . '/' . $originalName;
94
+					$i['extraData'] = $originalPath.'/'.$originalName;
95 95
 				} else {
96 96
 					$i['extraData'] = $originalName;
97 97
 				}
98 98
 			}
99
-			$result[] = new FileInfo($absoluteDir . '/' . $i['name'], $storage, $internalPath . '/' . $i['name'], $i, $mount);
99
+			$result[] = new FileInfo($absoluteDir.'/'.$i['name'], $storage, $internalPath.'/'.$i['name'], $i, $mount);
100 100
 		}
101 101
 
102 102
 		if ($sortAttribute !== '') {
Please login to merge, or discard this patch.
Indentation   +85 added lines, -85 removed lines patch added patch discarded remove patch
@@ -36,95 +36,95 @@
 block discarded – undo
36 36
 use OCP\Files\Cache\ICacheEntry;
37 37
 
38 38
 class Helper {
39
-	/**
40
-	 * Retrieves the contents of a trash bin directory.
41
-	 *
42
-	 * @param string $dir path to the directory inside the trashbin
43
-	 * or empty to retrieve the root of the trashbin
44
-	 * @param string $user
45
-	 * @param string $sortAttribute attribute to sort on or empty to disable sorting
46
-	 * @param bool $sortDescending true for descending sort, false otherwise
47
-	 * @return \OCP\Files\FileInfo[]
48
-	 */
49
-	public static function getTrashFiles($dir, $user, $sortAttribute = '', $sortDescending = false) {
50
-		$result = [];
51
-		$timestamp = null;
39
+    /**
40
+     * Retrieves the contents of a trash bin directory.
41
+     *
42
+     * @param string $dir path to the directory inside the trashbin
43
+     * or empty to retrieve the root of the trashbin
44
+     * @param string $user
45
+     * @param string $sortAttribute attribute to sort on or empty to disable sorting
46
+     * @param bool $sortDescending true for descending sort, false otherwise
47
+     * @return \OCP\Files\FileInfo[]
48
+     */
49
+    public static function getTrashFiles($dir, $user, $sortAttribute = '', $sortDescending = false) {
50
+        $result = [];
51
+        $timestamp = null;
52 52
 
53
-		$view = new \OC\Files\View('/' . $user . '/files_trashbin/files');
53
+        $view = new \OC\Files\View('/' . $user . '/files_trashbin/files');
54 54
 
55
-		if (ltrim($dir, '/') !== '' && !$view->is_dir($dir)) {
56
-			throw new \Exception('Directory does not exists');
57
-		}
55
+        if (ltrim($dir, '/') !== '' && !$view->is_dir($dir)) {
56
+            throw new \Exception('Directory does not exists');
57
+        }
58 58
 
59
-		$mount = $view->getMount($dir);
60
-		$storage = $mount->getStorage();
61
-		$absoluteDir = $view->getAbsolutePath($dir);
62
-		$internalPath = $mount->getInternalPath($absoluteDir);
59
+        $mount = $view->getMount($dir);
60
+        $storage = $mount->getStorage();
61
+        $absoluteDir = $view->getAbsolutePath($dir);
62
+        $internalPath = $mount->getInternalPath($absoluteDir);
63 63
 
64
-		$originalLocations = \OCA\Files_Trashbin\Trashbin::getLocations($user);
65
-		$dirContent = $storage->getCache()->getFolderContents($mount->getInternalPath($view->getAbsolutePath($dir)));
66
-		foreach ($dirContent as $entry) {
67
-			$entryName = $entry->getName();
68
-			$name = $entryName;
69
-			if ($dir === '' || $dir === '/') {
70
-				$pathparts = pathinfo($entryName);
71
-				$timestamp = substr($pathparts['extension'], 1);
72
-				$name = $pathparts['filename'];
73
-			} elseif ($timestamp === null) {
74
-				// for subfolders we need to calculate the timestamp only once
75
-				$parts = explode('/', ltrim($dir, '/'));
76
-				$timestamp = substr(pathinfo($parts[0], PATHINFO_EXTENSION), 1);
77
-			}
78
-			$originalPath = '';
79
-			$originalName = substr($entryName, 0, -strlen($timestamp) - 2);
80
-			if (isset($originalLocations[$originalName][$timestamp])) {
81
-				$originalPath = $originalLocations[$originalName][$timestamp];
82
-				if (substr($originalPath, -1) === '/') {
83
-					$originalPath = substr($originalPath, 0, -1);
84
-				}
85
-			}
86
-			$type = $entry->getMimeType() === ICacheEntry::DIRECTORY_MIMETYPE ? 'dir' : 'file';
87
-			$i = [
88
-				'name' => $name,
89
-				'mtime' => $timestamp,
90
-				'mimetype' => $type === 'dir' ? 'httpd/unix-directory' : \OC::$server->getMimeTypeDetector()->detectPath($name),
91
-				'type' => $type,
92
-				'directory' => ($dir === '/') ? '' : $dir,
93
-				'size' => $entry->getSize(),
94
-				'etag' => '',
95
-				'permissions' => Constants::PERMISSION_ALL - Constants::PERMISSION_SHARE,
96
-				'fileid' => $entry->getId(),
97
-			];
98
-			if ($originalPath) {
99
-				if ($originalPath !== '.') {
100
-					$i['extraData'] = $originalPath . '/' . $originalName;
101
-				} else {
102
-					$i['extraData'] = $originalName;
103
-				}
104
-			}
105
-			$result[] = new FileInfo($absoluteDir . '/' . $i['name'], $storage, $internalPath . '/' . $i['name'], $i, $mount);
106
-		}
64
+        $originalLocations = \OCA\Files_Trashbin\Trashbin::getLocations($user);
65
+        $dirContent = $storage->getCache()->getFolderContents($mount->getInternalPath($view->getAbsolutePath($dir)));
66
+        foreach ($dirContent as $entry) {
67
+            $entryName = $entry->getName();
68
+            $name = $entryName;
69
+            if ($dir === '' || $dir === '/') {
70
+                $pathparts = pathinfo($entryName);
71
+                $timestamp = substr($pathparts['extension'], 1);
72
+                $name = $pathparts['filename'];
73
+            } elseif ($timestamp === null) {
74
+                // for subfolders we need to calculate the timestamp only once
75
+                $parts = explode('/', ltrim($dir, '/'));
76
+                $timestamp = substr(pathinfo($parts[0], PATHINFO_EXTENSION), 1);
77
+            }
78
+            $originalPath = '';
79
+            $originalName = substr($entryName, 0, -strlen($timestamp) - 2);
80
+            if (isset($originalLocations[$originalName][$timestamp])) {
81
+                $originalPath = $originalLocations[$originalName][$timestamp];
82
+                if (substr($originalPath, -1) === '/') {
83
+                    $originalPath = substr($originalPath, 0, -1);
84
+                }
85
+            }
86
+            $type = $entry->getMimeType() === ICacheEntry::DIRECTORY_MIMETYPE ? 'dir' : 'file';
87
+            $i = [
88
+                'name' => $name,
89
+                'mtime' => $timestamp,
90
+                'mimetype' => $type === 'dir' ? 'httpd/unix-directory' : \OC::$server->getMimeTypeDetector()->detectPath($name),
91
+                'type' => $type,
92
+                'directory' => ($dir === '/') ? '' : $dir,
93
+                'size' => $entry->getSize(),
94
+                'etag' => '',
95
+                'permissions' => Constants::PERMISSION_ALL - Constants::PERMISSION_SHARE,
96
+                'fileid' => $entry->getId(),
97
+            ];
98
+            if ($originalPath) {
99
+                if ($originalPath !== '.') {
100
+                    $i['extraData'] = $originalPath . '/' . $originalName;
101
+                } else {
102
+                    $i['extraData'] = $originalName;
103
+                }
104
+            }
105
+            $result[] = new FileInfo($absoluteDir . '/' . $i['name'], $storage, $internalPath . '/' . $i['name'], $i, $mount);
106
+        }
107 107
 
108
-		if ($sortAttribute !== '') {
109
-			return \OCA\Files\Helper::sortFiles($result, $sortAttribute, $sortDescending);
110
-		}
111
-		return $result;
112
-	}
108
+        if ($sortAttribute !== '') {
109
+            return \OCA\Files\Helper::sortFiles($result, $sortAttribute, $sortDescending);
110
+        }
111
+        return $result;
112
+    }
113 113
 
114
-	/**
115
-	 * Format file infos for JSON
116
-	 *
117
-	 * @param \OCP\Files\FileInfo[] $fileInfos file infos
118
-	 */
119
-	public static function formatFileInfos($fileInfos) {
120
-		$files = [];
121
-		foreach ($fileInfos as $i) {
122
-			$entry = \OCA\Files\Helper::formatFileInfo($i);
123
-			$entry['id'] = $i->getId();
124
-			$entry['etag'] = $entry['mtime']; // add fake etag, it is only needed to identify the preview image
125
-			$entry['permissions'] = \OCP\Constants::PERMISSION_READ;
126
-			$files[] = $entry;
127
-		}
128
-		return $files;
129
-	}
114
+    /**
115
+     * Format file infos for JSON
116
+     *
117
+     * @param \OCP\Files\FileInfo[] $fileInfos file infos
118
+     */
119
+    public static function formatFileInfos($fileInfos) {
120
+        $files = [];
121
+        foreach ($fileInfos as $i) {
122
+            $entry = \OCA\Files\Helper::formatFileInfo($i);
123
+            $entry['id'] = $i->getId();
124
+            $entry['etag'] = $entry['mtime']; // add fake etag, it is only needed to identify the preview image
125
+            $entry['permissions'] = \OCP\Constants::PERMISSION_READ;
126
+            $files[] = $entry;
127
+        }
128
+        return $files;
129
+    }
130 130
 }
Please login to merge, or discard this patch.
apps/comments/lib/Notification/Listener.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -90,7 +90,7 @@
 block discarded – undo
90 90
 		$notification
91 91
 			->setApp('comments')
92 92
 			->setObject('comment', $comment->getId())
93
-			->setSubject('mention', [ $comment->getObjectType(), $comment->getObjectId() ])
93
+			->setSubject('mention', [$comment->getObjectType(), $comment->getObjectId()])
94 94
 			->setDateTime($comment->getCreationDateTime());
95 95
 
96 96
 		return $notification;
Please login to merge, or discard this patch.
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -30,85 +30,85 @@
 block discarded – undo
30 30
 
31 31
 class Listener {
32 32
 
33
-	protected IManager $notificationManager;
34
-	protected IUserManager $userManager;
33
+    protected IManager $notificationManager;
34
+    protected IUserManager $userManager;
35 35
 
36
-	/**
37
-	 * Listener constructor.
38
-	 */
39
-	public function __construct(
40
-		IManager $notificationManager,
41
-		IUserManager $userManager
42
-	) {
43
-		$this->notificationManager = $notificationManager;
44
-		$this->userManager = $userManager;
45
-	}
36
+    /**
37
+     * Listener constructor.
38
+     */
39
+    public function __construct(
40
+        IManager $notificationManager,
41
+        IUserManager $userManager
42
+    ) {
43
+        $this->notificationManager = $notificationManager;
44
+        $this->userManager = $userManager;
45
+    }
46 46
 
47
-	/**
48
-	 * @param CommentsEvent $event
49
-	 */
50
-	public function evaluate(CommentsEvent $event) {
51
-		$comment = $event->getComment();
47
+    /**
48
+     * @param CommentsEvent $event
49
+     */
50
+    public function evaluate(CommentsEvent $event) {
51
+        $comment = $event->getComment();
52 52
 
53
-		$mentions = $this->extractMentions($comment->getMentions());
54
-		if (empty($mentions)) {
55
-			// no one to notify
56
-			return;
57
-		}
53
+        $mentions = $this->extractMentions($comment->getMentions());
54
+        if (empty($mentions)) {
55
+            // no one to notify
56
+            return;
57
+        }
58 58
 
59
-		$notification = $this->instantiateNotification($comment);
59
+        $notification = $this->instantiateNotification($comment);
60 60
 
61
-		foreach ($mentions as $uid) {
62
-			if (($comment->getActorType() === 'users' && $uid === $comment->getActorId())
63
-				|| !$this->userManager->userExists($uid)
64
-			) {
65
-				// do not notify unknown users or yourself
66
-				continue;
67
-			}
61
+        foreach ($mentions as $uid) {
62
+            if (($comment->getActorType() === 'users' && $uid === $comment->getActorId())
63
+                || !$this->userManager->userExists($uid)
64
+            ) {
65
+                // do not notify unknown users or yourself
66
+                continue;
67
+            }
68 68
 
69
-			$notification->setUser($uid);
70
-			if ($event->getEvent() === CommentsEvent::EVENT_DELETE
71
-				|| $event->getEvent() === CommentsEvent::EVENT_PRE_UPDATE) {
72
-				$this->notificationManager->markProcessed($notification);
73
-			} else {
74
-				$this->notificationManager->notify($notification);
75
-			}
76
-		}
77
-	}
69
+            $notification->setUser($uid);
70
+            if ($event->getEvent() === CommentsEvent::EVENT_DELETE
71
+                || $event->getEvent() === CommentsEvent::EVENT_PRE_UPDATE) {
72
+                $this->notificationManager->markProcessed($notification);
73
+            } else {
74
+                $this->notificationManager->notify($notification);
75
+            }
76
+        }
77
+    }
78 78
 
79
-	/**
80
-	 * creates a notification instance and fills it with comment data
81
-	 *
82
-	 * @param IComment $comment
83
-	 * @return \OCP\Notification\INotification
84
-	 */
85
-	public function instantiateNotification(IComment $comment) {
86
-		$notification = $this->notificationManager->createNotification();
87
-		$notification
88
-			->setApp('comments')
89
-			->setObject('comment', $comment->getId())
90
-			->setSubject('mention', [ $comment->getObjectType(), $comment->getObjectId() ])
91
-			->setDateTime($comment->getCreationDateTime());
79
+    /**
80
+     * creates a notification instance and fills it with comment data
81
+     *
82
+     * @param IComment $comment
83
+     * @return \OCP\Notification\INotification
84
+     */
85
+    public function instantiateNotification(IComment $comment) {
86
+        $notification = $this->notificationManager->createNotification();
87
+        $notification
88
+            ->setApp('comments')
89
+            ->setObject('comment', $comment->getId())
90
+            ->setSubject('mention', [ $comment->getObjectType(), $comment->getObjectId() ])
91
+            ->setDateTime($comment->getCreationDateTime());
92 92
 
93
-		return $notification;
94
-	}
93
+        return $notification;
94
+    }
95 95
 
96
-	/**
97
-	 * flattens the mention array returned from comments to a list of user ids.
98
-	 *
99
-	 * @param array $mentions
100
-	 * @return string[] containing the mentions, e.g. ['alice', 'bob']
101
-	 */
102
-	public function extractMentions(array $mentions) {
103
-		if (empty($mentions)) {
104
-			return [];
105
-		}
106
-		$uids = [];
107
-		foreach ($mentions as $mention) {
108
-			if ($mention['type'] === 'user') {
109
-				$uids[] = $mention['id'];
110
-			}
111
-		}
112
-		return $uids;
113
-	}
96
+    /**
97
+     * flattens the mention array returned from comments to a list of user ids.
98
+     *
99
+     * @param array $mentions
100
+     * @return string[] containing the mentions, e.g. ['alice', 'bob']
101
+     */
102
+    public function extractMentions(array $mentions) {
103
+        if (empty($mentions)) {
104
+            return [];
105
+        }
106
+        $uids = [];
107
+        foreach ($mentions as $mention) {
108
+            if ($mention['type'] === 'user') {
109
+                $uids[] = $mention['id'];
110
+            }
111
+        }
112
+        return $uids;
113
+    }
114 114
 }
Please login to merge, or discard this patch.
apps/comments/lib/EventHandler.php 1 patch
Indentation   +45 added lines, -45 removed lines patch added patch discarded remove patch
@@ -36,56 +36,56 @@
 block discarded – undo
36 36
  * @package OCA\Comments
37 37
  */
38 38
 class EventHandler implements ICommentsEventHandler {
39
-	/** @var ActivityListener */
40
-	private $activityListener;
39
+    /** @var ActivityListener */
40
+    private $activityListener;
41 41
 
42
-	/** @var NotificationListener */
43
-	private $notificationListener;
42
+    /** @var NotificationListener */
43
+    private $notificationListener;
44 44
 
45
-	public function __construct(ActivityListener $activityListener, NotificationListener $notificationListener) {
46
-		$this->activityListener = $activityListener;
47
-		$this->notificationListener = $notificationListener;
48
-	}
45
+    public function __construct(ActivityListener $activityListener, NotificationListener $notificationListener) {
46
+        $this->activityListener = $activityListener;
47
+        $this->notificationListener = $notificationListener;
48
+    }
49 49
 
50
-	/**
51
-	 * @param CommentsEvent $event
52
-	 */
53
-	public function handle(CommentsEvent $event) {
54
-		if ($event->getComment()->getObjectType() !== 'files') {
55
-			// this is a 'files'-specific Handler
56
-			return;
57
-		}
50
+    /**
51
+     * @param CommentsEvent $event
52
+     */
53
+    public function handle(CommentsEvent $event) {
54
+        if ($event->getComment()->getObjectType() !== 'files') {
55
+            // this is a 'files'-specific Handler
56
+            return;
57
+        }
58 58
 
59
-		$eventType = $event->getEvent();
60
-		if ($eventType === CommentsEvent::EVENT_ADD
61
-		) {
62
-			$this->notificationHandler($event);
63
-			$this->activityHandler($event);
64
-			return;
65
-		}
59
+        $eventType = $event->getEvent();
60
+        if ($eventType === CommentsEvent::EVENT_ADD
61
+        ) {
62
+            $this->notificationHandler($event);
63
+            $this->activityHandler($event);
64
+            return;
65
+        }
66 66
 
67
-		$applicableEvents = [
68
-			CommentsEvent::EVENT_PRE_UPDATE,
69
-			CommentsEvent::EVENT_UPDATE,
70
-			CommentsEvent::EVENT_DELETE,
71
-		];
72
-		if (in_array($eventType, $applicableEvents)) {
73
-			$this->notificationHandler($event);
74
-			return;
75
-		}
76
-	}
67
+        $applicableEvents = [
68
+            CommentsEvent::EVENT_PRE_UPDATE,
69
+            CommentsEvent::EVENT_UPDATE,
70
+            CommentsEvent::EVENT_DELETE,
71
+        ];
72
+        if (in_array($eventType, $applicableEvents)) {
73
+            $this->notificationHandler($event);
74
+            return;
75
+        }
76
+    }
77 77
 
78
-	/**
79
-	 * @param CommentsEvent $event
80
-	 */
81
-	private function activityHandler(CommentsEvent $event) {
82
-		$this->activityListener->commentEvent($event);
83
-	}
78
+    /**
79
+     * @param CommentsEvent $event
80
+     */
81
+    private function activityHandler(CommentsEvent $event) {
82
+        $this->activityListener->commentEvent($event);
83
+    }
84 84
 
85
-	/**
86
-	 * @param CommentsEvent $event
87
-	 */
88
-	private function notificationHandler(CommentsEvent $event) {
89
-		$this->notificationListener->evaluate($event);
90
-	}
85
+    /**
86
+     * @param CommentsEvent $event
87
+     */
88
+    private function notificationHandler(CommentsEvent $event) {
89
+        $this->notificationListener->evaluate($event);
90
+    }
91 91
 }
Please login to merge, or discard this patch.
apps/user_ldap/lib/User_Proxy.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -197,7 +197,7 @@  discard block
 block discarded – undo
197 197
 	 * @return string|false
198 198
 	 */
199 199
 	public function loginName2UserName($loginName) {
200
-		$id = 'LOGINNAME,' . $loginName;
200
+		$id = 'LOGINNAME,'.$loginName;
201 201
 		return $this->handleRequest($id, 'loginName2UserName', [$loginName]);
202 202
 	}
203 203
 	
@@ -208,7 +208,7 @@  discard block
 block discarded – undo
208 208
 	 * @return string|false with the username
209 209
 	 */
210 210
 	public function dn2UserName($dn) {
211
-		$id = 'DN,' . $dn;
211
+		$id = 'DN,'.$dn;
212 212
 		return $this->handleRequest($id, 'dn2UserName', [$dn]);
213 213
 	}
214 214
 
Please login to merge, or discard this patch.
Indentation   +382 added lines, -382 removed lines patch added patch discarded remove patch
@@ -38,386 +38,386 @@
 block discarded – undo
38 38
 use OCP\User\Backend\ICountUsersBackend;
39 39
 
40 40
 class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, IUserLDAP, ICountUsersBackend {
41
-	private $backends = [];
42
-	/** @var User_LDAP */
43
-	private $refBackend = null;
44
-
45
-	private bool $isSetUp = false;
46
-	private Helper $helper;
47
-	private IConfig $ocConfig;
48
-	private INotificationManager $notificationManager;
49
-	private IUserSession $userSession;
50
-	private UserPluginManager $userPluginManager;
51
-
52
-	public function __construct(
53
-		Helper $helper,
54
-		ILDAPWrapper $ldap,
55
-		IConfig $ocConfig,
56
-		INotificationManager $notificationManager,
57
-		IUserSession $userSession,
58
-		UserPluginManager $userPluginManager
59
-	) {
60
-		parent::__construct($ldap);
61
-		$this->helper = $helper;
62
-		$this->ocConfig = $ocConfig;
63
-		$this->notificationManager = $notificationManager;
64
-		$this->userSession = $userSession;
65
-		$this->userPluginManager = $userPluginManager;
66
-	}
67
-
68
-	protected function setup(): void {
69
-		if ($this->isSetUp) {
70
-			return;
71
-		}
72
-
73
-		$serverConfigPrefixes = $this->helper->getServerConfigurationPrefixes(true);
74
-		foreach ($serverConfigPrefixes as $configPrefix) {
75
-			$this->backends[$configPrefix] =
76
-				new User_LDAP($this->getAccess($configPrefix), $this->ocConfig, $this->notificationManager, $this->userSession, $this->userPluginManager);
77
-
78
-			if (is_null($this->refBackend)) {
79
-				$this->refBackend = &$this->backends[$configPrefix];
80
-			}
81
-		}
82
-
83
-		$this->isSetUp = true;
84
-	}
85
-
86
-	/**
87
-	 * Tries the backends one after the other until a positive result is returned from the specified method
88
-	 *
89
-	 * @param string $id the uid connected to the request
90
-	 * @param string $method the method of the user backend that shall be called
91
-	 * @param array $parameters an array of parameters to be passed
92
-	 * @return mixed the result of the method or false
93
-	 */
94
-	protected function walkBackends($id, $method, $parameters) {
95
-		$this->setup();
96
-
97
-		$uid = $id;
98
-		$cacheKey = $this->getUserCacheKey($uid);
99
-		foreach ($this->backends as $configPrefix => $backend) {
100
-			$instance = $backend;
101
-			if (!method_exists($instance, $method)
102
-				&& method_exists($this->getAccess($configPrefix), $method)) {
103
-				$instance = $this->getAccess($configPrefix);
104
-			}
105
-			if ($result = call_user_func_array([$instance, $method], $parameters)) {
106
-				if (!$this->isSingleBackend()) {
107
-					$this->writeToCache($cacheKey, $configPrefix);
108
-				}
109
-				return $result;
110
-			}
111
-		}
112
-		return false;
113
-	}
114
-
115
-	/**
116
-	 * Asks the backend connected to the server that supposely takes care of the uid from the request.
117
-	 *
118
-	 * @param string $id the uid connected to the request
119
-	 * @param string $method the method of the user backend that shall be called
120
-	 * @param array $parameters an array of parameters to be passed
121
-	 * @param mixed $passOnWhen the result matches this variable
122
-	 * @return mixed the result of the method or false
123
-	 */
124
-	protected function callOnLastSeenOn($id, $method, $parameters, $passOnWhen) {
125
-		$this->setup();
126
-
127
-		$uid = $id;
128
-		$cacheKey = $this->getUserCacheKey($uid);
129
-		$prefix = $this->getFromCache($cacheKey);
130
-		//in case the uid has been found in the past, try this stored connection first
131
-		if (!is_null($prefix)) {
132
-			if (isset($this->backends[$prefix])) {
133
-				$instance = $this->backends[$prefix];
134
-				if (!method_exists($instance, $method)
135
-					&& method_exists($this->getAccess($prefix), $method)) {
136
-					$instance = $this->getAccess($prefix);
137
-				}
138
-				$result = call_user_func_array([$instance, $method], $parameters);
139
-				if ($result === $passOnWhen) {
140
-					//not found here, reset cache to null if user vanished
141
-					//because sometimes methods return false with a reason
142
-					$userExists = call_user_func_array(
143
-						[$this->backends[$prefix], 'userExistsOnLDAP'],
144
-						[$uid]
145
-					);
146
-					if (!$userExists) {
147
-						$this->writeToCache($cacheKey, null);
148
-					}
149
-				}
150
-				return $result;
151
-			}
152
-		}
153
-		return false;
154
-	}
155
-
156
-	protected function activeBackends(): int {
157
-		$this->setup();
158
-		return count($this->backends);
159
-	}
160
-
161
-	/**
162
-	 * Check if backend implements actions
163
-	 *
164
-	 * @param int $actions bitwise-or'ed actions
165
-	 * @return boolean
166
-	 *
167
-	 * Returns the supported actions as int to be
168
-	 * compared with \OC\User\Backend::CREATE_USER etc.
169
-	 */
170
-	public function implementsActions($actions) {
171
-		$this->setup();
172
-		//it's the same across all our user backends obviously
173
-		return $this->refBackend->implementsActions($actions);
174
-	}
175
-
176
-	/**
177
-	 * Backend name to be shown in user management
178
-	 *
179
-	 * @return string the name of the backend to be shown
180
-	 */
181
-	public function getBackendName() {
182
-		$this->setup();
183
-		return $this->refBackend->getBackendName();
184
-	}
185
-
186
-	/**
187
-	 * Get a list of all users
188
-	 *
189
-	 * @param string $search
190
-	 * @param null|int $limit
191
-	 * @param null|int $offset
192
-	 * @return string[] an array of all uids
193
-	 */
194
-	public function getUsers($search = '', $limit = 10, $offset = 0) {
195
-		$this->setup();
196
-
197
-		//we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends
198
-		$users = [];
199
-		foreach ($this->backends as $backend) {
200
-			$backendUsers = $backend->getUsers($search, $limit, $offset);
201
-			if (is_array($backendUsers)) {
202
-				$users = array_merge($users, $backendUsers);
203
-			}
204
-		}
205
-		return $users;
206
-	}
207
-
208
-	/**
209
-	 * check if a user exists
210
-	 *
211
-	 * @param string $uid the username
212
-	 * @return boolean
213
-	 */
214
-	public function userExists($uid) {
215
-		$existsOnLDAP = false;
216
-		$existsLocally = $this->handleRequest($uid, 'userExists', [$uid]);
217
-		if ($existsLocally) {
218
-			$existsOnLDAP = $this->userExistsOnLDAP($uid);
219
-		}
220
-		if ($existsLocally && !$existsOnLDAP) {
221
-			try {
222
-				$user = $this->getLDAPAccess($uid)->userManager->get($uid);
223
-				if ($user instanceof User) {
224
-					$user->markUser();
225
-				}
226
-			} catch (\Exception $e) {
227
-				// ignore
228
-			}
229
-		}
230
-		return $existsLocally;
231
-	}
232
-
233
-	/**
234
-	 * check if a user exists on LDAP
235
-	 *
236
-	 * @param string|\OCA\User_LDAP\User\User $user either the Nextcloud user
237
-	 * name or an instance of that user
238
-	 */
239
-	public function userExistsOnLDAP($user, bool $ignoreCache = false): bool {
240
-		$id = ($user instanceof User) ? $user->getUsername() : $user;
241
-		return $this->handleRequest($id, 'userExistsOnLDAP', [$user, $ignoreCache]);
242
-	}
243
-
244
-	/**
245
-	 * Check if the password is correct
246
-	 *
247
-	 * @param string $uid The username
248
-	 * @param string $password The password
249
-	 * @return bool
250
-	 *
251
-	 * Check if the password is correct without logging in the user
252
-	 */
253
-	public function checkPassword($uid, $password) {
254
-		return $this->handleRequest($uid, 'checkPassword', [$uid, $password]);
255
-	}
256
-
257
-	/**
258
-	 * returns the username for the given login name, if available
259
-	 *
260
-	 * @param string $loginName
261
-	 * @return string|false
262
-	 */
263
-	public function loginName2UserName($loginName) {
264
-		$id = 'LOGINNAME,' . $loginName;
265
-		return $this->handleRequest($id, 'loginName2UserName', [$loginName]);
266
-	}
267
-
268
-	/**
269
-	 * returns the username for the given LDAP DN, if available
270
-	 *
271
-	 * @param string $dn
272
-	 * @return string|false with the username
273
-	 */
274
-	public function dn2UserName($dn) {
275
-		$id = 'DN,' . $dn;
276
-		return $this->handleRequest($id, 'dn2UserName', [$dn]);
277
-	}
278
-
279
-	/**
280
-	 * get the user's home directory
281
-	 *
282
-	 * @param string $uid the username
283
-	 * @return boolean
284
-	 */
285
-	public function getHome($uid) {
286
-		return $this->handleRequest($uid, 'getHome', [$uid]);
287
-	}
288
-
289
-	/**
290
-	 * get display name of the user
291
-	 *
292
-	 * @param string $uid user ID of the user
293
-	 * @return string display name
294
-	 */
295
-	public function getDisplayName($uid) {
296
-		return $this->handleRequest($uid, 'getDisplayName', [$uid]);
297
-	}
298
-
299
-	/**
300
-	 * set display name of the user
301
-	 *
302
-	 * @param string $uid user ID of the user
303
-	 * @param string $displayName new display name
304
-	 * @return string display name
305
-	 */
306
-	public function setDisplayName($uid, $displayName) {
307
-		return $this->handleRequest($uid, 'setDisplayName', [$uid, $displayName]);
308
-	}
309
-
310
-	/**
311
-	 * checks whether the user is allowed to change his avatar in Nextcloud
312
-	 *
313
-	 * @param string $uid the Nextcloud user name
314
-	 * @return boolean either the user can or cannot
315
-	 */
316
-	public function canChangeAvatar($uid) {
317
-		return $this->handleRequest($uid, 'canChangeAvatar', [$uid], true);
318
-	}
319
-
320
-	/**
321
-	 * Get a list of all display names and user ids.
322
-	 *
323
-	 * @param string $search
324
-	 * @param int|null $limit
325
-	 * @param int|null $offset
326
-	 * @return array an array of all displayNames (value) and the corresponding uids (key)
327
-	 */
328
-	public function getDisplayNames($search = '', $limit = null, $offset = null) {
329
-		$this->setup();
330
-
331
-		//we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends
332
-		$users = [];
333
-		foreach ($this->backends as $backend) {
334
-			$backendUsers = $backend->getDisplayNames($search, $limit, $offset);
335
-			if (is_array($backendUsers)) {
336
-				$users = $users + $backendUsers;
337
-			}
338
-		}
339
-		return $users;
340
-	}
341
-
342
-	/**
343
-	 * delete a user
344
-	 *
345
-	 * @param string $uid The username of the user to delete
346
-	 * @return bool
347
-	 *
348
-	 * Deletes a user
349
-	 */
350
-	public function deleteUser($uid) {
351
-		return $this->handleRequest($uid, 'deleteUser', [$uid]);
352
-	}
353
-
354
-	/**
355
-	 * Set password
356
-	 *
357
-	 * @param string $uid The username
358
-	 * @param string $password The new password
359
-	 * @return bool
360
-	 *
361
-	 */
362
-	public function setPassword($uid, $password) {
363
-		return $this->handleRequest($uid, 'setPassword', [$uid, $password]);
364
-	}
365
-
366
-	/**
367
-	 * @return bool
368
-	 */
369
-	public function hasUserListings() {
370
-		$this->setup();
371
-		return $this->refBackend->hasUserListings();
372
-	}
373
-
374
-	/**
375
-	 * Count the number of users
376
-	 *
377
-	 * @return int|bool
378
-	 */
379
-	public function countUsers() {
380
-		$this->setup();
381
-
382
-		$users = false;
383
-		foreach ($this->backends as $backend) {
384
-			$backendUsers = $backend->countUsers();
385
-			if ($backendUsers !== false) {
386
-				$users += $backendUsers;
387
-			}
388
-		}
389
-		return $users;
390
-	}
391
-
392
-	/**
393
-	 * Return access for LDAP interaction.
394
-	 *
395
-	 * @param string $uid
396
-	 * @return Access instance of Access for LDAP interaction
397
-	 */
398
-	public function getLDAPAccess($uid) {
399
-		return $this->handleRequest($uid, 'getLDAPAccess', [$uid]);
400
-	}
401
-
402
-	/**
403
-	 * Return a new LDAP connection for the specified user.
404
-	 * The connection needs to be closed manually.
405
-	 *
406
-	 * @param string $uid
407
-	 * @return resource|\LDAP\Connection The LDAP connection
408
-	 */
409
-	public function getNewLDAPConnection($uid) {
410
-		return $this->handleRequest($uid, 'getNewLDAPConnection', [$uid]);
411
-	}
412
-
413
-	/**
414
-	 * Creates a new user in LDAP
415
-	 *
416
-	 * @param $username
417
-	 * @param $password
418
-	 * @return bool
419
-	 */
420
-	public function createUser($username, $password) {
421
-		return $this->handleRequest($username, 'createUser', [$username, $password]);
422
-	}
41
+    private $backends = [];
42
+    /** @var User_LDAP */
43
+    private $refBackend = null;
44
+
45
+    private bool $isSetUp = false;
46
+    private Helper $helper;
47
+    private IConfig $ocConfig;
48
+    private INotificationManager $notificationManager;
49
+    private IUserSession $userSession;
50
+    private UserPluginManager $userPluginManager;
51
+
52
+    public function __construct(
53
+        Helper $helper,
54
+        ILDAPWrapper $ldap,
55
+        IConfig $ocConfig,
56
+        INotificationManager $notificationManager,
57
+        IUserSession $userSession,
58
+        UserPluginManager $userPluginManager
59
+    ) {
60
+        parent::__construct($ldap);
61
+        $this->helper = $helper;
62
+        $this->ocConfig = $ocConfig;
63
+        $this->notificationManager = $notificationManager;
64
+        $this->userSession = $userSession;
65
+        $this->userPluginManager = $userPluginManager;
66
+    }
67
+
68
+    protected function setup(): void {
69
+        if ($this->isSetUp) {
70
+            return;
71
+        }
72
+
73
+        $serverConfigPrefixes = $this->helper->getServerConfigurationPrefixes(true);
74
+        foreach ($serverConfigPrefixes as $configPrefix) {
75
+            $this->backends[$configPrefix] =
76
+                new User_LDAP($this->getAccess($configPrefix), $this->ocConfig, $this->notificationManager, $this->userSession, $this->userPluginManager);
77
+
78
+            if (is_null($this->refBackend)) {
79
+                $this->refBackend = &$this->backends[$configPrefix];
80
+            }
81
+        }
82
+
83
+        $this->isSetUp = true;
84
+    }
85
+
86
+    /**
87
+     * Tries the backends one after the other until a positive result is returned from the specified method
88
+     *
89
+     * @param string $id the uid connected to the request
90
+     * @param string $method the method of the user backend that shall be called
91
+     * @param array $parameters an array of parameters to be passed
92
+     * @return mixed the result of the method or false
93
+     */
94
+    protected function walkBackends($id, $method, $parameters) {
95
+        $this->setup();
96
+
97
+        $uid = $id;
98
+        $cacheKey = $this->getUserCacheKey($uid);
99
+        foreach ($this->backends as $configPrefix => $backend) {
100
+            $instance = $backend;
101
+            if (!method_exists($instance, $method)
102
+                && method_exists($this->getAccess($configPrefix), $method)) {
103
+                $instance = $this->getAccess($configPrefix);
104
+            }
105
+            if ($result = call_user_func_array([$instance, $method], $parameters)) {
106
+                if (!$this->isSingleBackend()) {
107
+                    $this->writeToCache($cacheKey, $configPrefix);
108
+                }
109
+                return $result;
110
+            }
111
+        }
112
+        return false;
113
+    }
114
+
115
+    /**
116
+     * Asks the backend connected to the server that supposely takes care of the uid from the request.
117
+     *
118
+     * @param string $id the uid connected to the request
119
+     * @param string $method the method of the user backend that shall be called
120
+     * @param array $parameters an array of parameters to be passed
121
+     * @param mixed $passOnWhen the result matches this variable
122
+     * @return mixed the result of the method or false
123
+     */
124
+    protected function callOnLastSeenOn($id, $method, $parameters, $passOnWhen) {
125
+        $this->setup();
126
+
127
+        $uid = $id;
128
+        $cacheKey = $this->getUserCacheKey($uid);
129
+        $prefix = $this->getFromCache($cacheKey);
130
+        //in case the uid has been found in the past, try this stored connection first
131
+        if (!is_null($prefix)) {
132
+            if (isset($this->backends[$prefix])) {
133
+                $instance = $this->backends[$prefix];
134
+                if (!method_exists($instance, $method)
135
+                    && method_exists($this->getAccess($prefix), $method)) {
136
+                    $instance = $this->getAccess($prefix);
137
+                }
138
+                $result = call_user_func_array([$instance, $method], $parameters);
139
+                if ($result === $passOnWhen) {
140
+                    //not found here, reset cache to null if user vanished
141
+                    //because sometimes methods return false with a reason
142
+                    $userExists = call_user_func_array(
143
+                        [$this->backends[$prefix], 'userExistsOnLDAP'],
144
+                        [$uid]
145
+                    );
146
+                    if (!$userExists) {
147
+                        $this->writeToCache($cacheKey, null);
148
+                    }
149
+                }
150
+                return $result;
151
+            }
152
+        }
153
+        return false;
154
+    }
155
+
156
+    protected function activeBackends(): int {
157
+        $this->setup();
158
+        return count($this->backends);
159
+    }
160
+
161
+    /**
162
+     * Check if backend implements actions
163
+     *
164
+     * @param int $actions bitwise-or'ed actions
165
+     * @return boolean
166
+     *
167
+     * Returns the supported actions as int to be
168
+     * compared with \OC\User\Backend::CREATE_USER etc.
169
+     */
170
+    public function implementsActions($actions) {
171
+        $this->setup();
172
+        //it's the same across all our user backends obviously
173
+        return $this->refBackend->implementsActions($actions);
174
+    }
175
+
176
+    /**
177
+     * Backend name to be shown in user management
178
+     *
179
+     * @return string the name of the backend to be shown
180
+     */
181
+    public function getBackendName() {
182
+        $this->setup();
183
+        return $this->refBackend->getBackendName();
184
+    }
185
+
186
+    /**
187
+     * Get a list of all users
188
+     *
189
+     * @param string $search
190
+     * @param null|int $limit
191
+     * @param null|int $offset
192
+     * @return string[] an array of all uids
193
+     */
194
+    public function getUsers($search = '', $limit = 10, $offset = 0) {
195
+        $this->setup();
196
+
197
+        //we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends
198
+        $users = [];
199
+        foreach ($this->backends as $backend) {
200
+            $backendUsers = $backend->getUsers($search, $limit, $offset);
201
+            if (is_array($backendUsers)) {
202
+                $users = array_merge($users, $backendUsers);
203
+            }
204
+        }
205
+        return $users;
206
+    }
207
+
208
+    /**
209
+     * check if a user exists
210
+     *
211
+     * @param string $uid the username
212
+     * @return boolean
213
+     */
214
+    public function userExists($uid) {
215
+        $existsOnLDAP = false;
216
+        $existsLocally = $this->handleRequest($uid, 'userExists', [$uid]);
217
+        if ($existsLocally) {
218
+            $existsOnLDAP = $this->userExistsOnLDAP($uid);
219
+        }
220
+        if ($existsLocally && !$existsOnLDAP) {
221
+            try {
222
+                $user = $this->getLDAPAccess($uid)->userManager->get($uid);
223
+                if ($user instanceof User) {
224
+                    $user->markUser();
225
+                }
226
+            } catch (\Exception $e) {
227
+                // ignore
228
+            }
229
+        }
230
+        return $existsLocally;
231
+    }
232
+
233
+    /**
234
+     * check if a user exists on LDAP
235
+     *
236
+     * @param string|\OCA\User_LDAP\User\User $user either the Nextcloud user
237
+     * name or an instance of that user
238
+     */
239
+    public function userExistsOnLDAP($user, bool $ignoreCache = false): bool {
240
+        $id = ($user instanceof User) ? $user->getUsername() : $user;
241
+        return $this->handleRequest($id, 'userExistsOnLDAP', [$user, $ignoreCache]);
242
+    }
243
+
244
+    /**
245
+     * Check if the password is correct
246
+     *
247
+     * @param string $uid The username
248
+     * @param string $password The password
249
+     * @return bool
250
+     *
251
+     * Check if the password is correct without logging in the user
252
+     */
253
+    public function checkPassword($uid, $password) {
254
+        return $this->handleRequest($uid, 'checkPassword', [$uid, $password]);
255
+    }
256
+
257
+    /**
258
+     * returns the username for the given login name, if available
259
+     *
260
+     * @param string $loginName
261
+     * @return string|false
262
+     */
263
+    public function loginName2UserName($loginName) {
264
+        $id = 'LOGINNAME,' . $loginName;
265
+        return $this->handleRequest($id, 'loginName2UserName', [$loginName]);
266
+    }
267
+
268
+    /**
269
+     * returns the username for the given LDAP DN, if available
270
+     *
271
+     * @param string $dn
272
+     * @return string|false with the username
273
+     */
274
+    public function dn2UserName($dn) {
275
+        $id = 'DN,' . $dn;
276
+        return $this->handleRequest($id, 'dn2UserName', [$dn]);
277
+    }
278
+
279
+    /**
280
+     * get the user's home directory
281
+     *
282
+     * @param string $uid the username
283
+     * @return boolean
284
+     */
285
+    public function getHome($uid) {
286
+        return $this->handleRequest($uid, 'getHome', [$uid]);
287
+    }
288
+
289
+    /**
290
+     * get display name of the user
291
+     *
292
+     * @param string $uid user ID of the user
293
+     * @return string display name
294
+     */
295
+    public function getDisplayName($uid) {
296
+        return $this->handleRequest($uid, 'getDisplayName', [$uid]);
297
+    }
298
+
299
+    /**
300
+     * set display name of the user
301
+     *
302
+     * @param string $uid user ID of the user
303
+     * @param string $displayName new display name
304
+     * @return string display name
305
+     */
306
+    public function setDisplayName($uid, $displayName) {
307
+        return $this->handleRequest($uid, 'setDisplayName', [$uid, $displayName]);
308
+    }
309
+
310
+    /**
311
+     * checks whether the user is allowed to change his avatar in Nextcloud
312
+     *
313
+     * @param string $uid the Nextcloud user name
314
+     * @return boolean either the user can or cannot
315
+     */
316
+    public function canChangeAvatar($uid) {
317
+        return $this->handleRequest($uid, 'canChangeAvatar', [$uid], true);
318
+    }
319
+
320
+    /**
321
+     * Get a list of all display names and user ids.
322
+     *
323
+     * @param string $search
324
+     * @param int|null $limit
325
+     * @param int|null $offset
326
+     * @return array an array of all displayNames (value) and the corresponding uids (key)
327
+     */
328
+    public function getDisplayNames($search = '', $limit = null, $offset = null) {
329
+        $this->setup();
330
+
331
+        //we do it just as the /OC_User implementation: do not play around with limit and offset but ask all backends
332
+        $users = [];
333
+        foreach ($this->backends as $backend) {
334
+            $backendUsers = $backend->getDisplayNames($search, $limit, $offset);
335
+            if (is_array($backendUsers)) {
336
+                $users = $users + $backendUsers;
337
+            }
338
+        }
339
+        return $users;
340
+    }
341
+
342
+    /**
343
+     * delete a user
344
+     *
345
+     * @param string $uid The username of the user to delete
346
+     * @return bool
347
+     *
348
+     * Deletes a user
349
+     */
350
+    public function deleteUser($uid) {
351
+        return $this->handleRequest($uid, 'deleteUser', [$uid]);
352
+    }
353
+
354
+    /**
355
+     * Set password
356
+     *
357
+     * @param string $uid The username
358
+     * @param string $password The new password
359
+     * @return bool
360
+     *
361
+     */
362
+    public function setPassword($uid, $password) {
363
+        return $this->handleRequest($uid, 'setPassword', [$uid, $password]);
364
+    }
365
+
366
+    /**
367
+     * @return bool
368
+     */
369
+    public function hasUserListings() {
370
+        $this->setup();
371
+        return $this->refBackend->hasUserListings();
372
+    }
373
+
374
+    /**
375
+     * Count the number of users
376
+     *
377
+     * @return int|bool
378
+     */
379
+    public function countUsers() {
380
+        $this->setup();
381
+
382
+        $users = false;
383
+        foreach ($this->backends as $backend) {
384
+            $backendUsers = $backend->countUsers();
385
+            if ($backendUsers !== false) {
386
+                $users += $backendUsers;
387
+            }
388
+        }
389
+        return $users;
390
+    }
391
+
392
+    /**
393
+     * Return access for LDAP interaction.
394
+     *
395
+     * @param string $uid
396
+     * @return Access instance of Access for LDAP interaction
397
+     */
398
+    public function getLDAPAccess($uid) {
399
+        return $this->handleRequest($uid, 'getLDAPAccess', [$uid]);
400
+    }
401
+
402
+    /**
403
+     * Return a new LDAP connection for the specified user.
404
+     * The connection needs to be closed manually.
405
+     *
406
+     * @param string $uid
407
+     * @return resource|\LDAP\Connection The LDAP connection
408
+     */
409
+    public function getNewLDAPConnection($uid) {
410
+        return $this->handleRequest($uid, 'getNewLDAPConnection', [$uid]);
411
+    }
412
+
413
+    /**
414
+     * Creates a new user in LDAP
415
+     *
416
+     * @param $username
417
+     * @param $password
418
+     * @return bool
419
+     */
420
+    public function createUser($username, $password) {
421
+        return $this->handleRequest($username, 'createUser', [$username, $password]);
422
+    }
423 423
 }
Please login to merge, or discard this patch.
apps/user_ldap/lib/BackendUtility.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -26,13 +26,13 @@
 block discarded – undo
26 26
 namespace OCA\User_LDAP;
27 27
 
28 28
 abstract class BackendUtility {
29
-	protected $access;
29
+    protected $access;
30 30
 
31
-	/**
32
-	 * constructor, make sure the subclasses call this one!
33
-	 * @param Access $access an instance of Access for LDAP interaction
34
-	 */
35
-	public function __construct(Access $access) {
36
-		$this->access = $access;
37
-	}
31
+    /**
32
+     * constructor, make sure the subclasses call this one!
33
+     * @param Access $access an instance of Access for LDAP interaction
34
+     */
35
+    public function __construct(Access $access) {
36
+        $this->access = $access;
37
+    }
38 38
 }
Please login to merge, or discard this patch.
apps/user_ldap/ajax/getNewServerConfigPrefix.php 2 patches
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -38,12 +38,12 @@
 block discarded – undo
38 38
 
39 39
 $newConfig = new \OCA\User_LDAP\Configuration($nk, false);
40 40
 if (isset($_POST['copyConfig'])) {
41
-	$originalConfig = new \OCA\User_LDAP\Configuration($_POST['copyConfig']);
42
-	$newConfig->setConfiguration($originalConfig->getConfiguration());
41
+    $originalConfig = new \OCA\User_LDAP\Configuration($_POST['copyConfig']);
42
+    $newConfig->setConfiguration($originalConfig->getConfiguration());
43 43
 } else {
44
-	$configuration = new \OCA\User_LDAP\Configuration($nk, false);
45
-	$newConfig->setConfiguration($configuration->getDefaults());
46
-	$resultData['defaults'] = $configuration->getDefaults();
44
+    $configuration = new \OCA\User_LDAP\Configuration($nk, false);
45
+    $newConfig->setConfiguration($configuration->getDefaults());
46
+    $resultData['defaults'] = $configuration->getDefaults();
47 47
 }
48 48
 $newConfig->saveConfiguration();
49 49
 
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -33,7 +33,7 @@
 block discarded – undo
33 33
 $serverConnections = $helper->getServerConfigurationPrefixes();
34 34
 sort($serverConnections);
35 35
 $lk = array_pop($serverConnections);
36
-$ln = (int)str_replace('s', '', $lk);
36
+$ln = (int) str_replace('s', '', $lk);
37 37
 $nk = 's'.str_pad($ln + 1, 2, '0', STR_PAD_LEFT);
38 38
 
39 39
 $resultData = ['configPrefix' => $nk];
Please login to merge, or discard this patch.
apps/encryption/lib/Util.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
 	 * @return bool
168 168
 	 */
169 169
 	public function userHasFiles($uid) {
170
-		return $this->files->file_exists($uid . '/files');
170
+		return $this->files->file_exists($uid.'/files');
171 171
 	}
172 172
 
173 173
 	/**
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
 		if (count($parts) > 1) {
184 184
 			$owner = $parts[1];
185 185
 			if ($this->userManager->userExists($owner) === false) {
186
-				throw new \BadMethodCallException('Unknown user: ' .
186
+				throw new \BadMethodCallException('Unknown user: '.
187 187
 				'method expects path to a user folder relative to the data folder');
188 188
 			}
189 189
 		}
Please login to merge, or discard this patch.
Indentation   +147 added lines, -147 removed lines patch added patch discarded remove patch
@@ -36,164 +36,164 @@
 block discarded – undo
36 36
 use OCP\PreConditionNotMetException;
37 37
 
38 38
 class Util {
39
-	/**
40
-	 * @var View
41
-	 */
42
-	private $files;
43
-	/**
44
-	 * @var Crypt
45
-	 */
46
-	private $crypt;
47
-	/**
48
-	 * @var ILogger
49
-	 */
50
-	private $logger;
51
-	/**
52
-	 * @var bool|IUser
53
-	 */
54
-	private $user;
55
-	/**
56
-	 * @var IConfig
57
-	 */
58
-	private $config;
59
-	/**
60
-	 * @var IUserManager
61
-	 */
62
-	private $userManager;
39
+    /**
40
+     * @var View
41
+     */
42
+    private $files;
43
+    /**
44
+     * @var Crypt
45
+     */
46
+    private $crypt;
47
+    /**
48
+     * @var ILogger
49
+     */
50
+    private $logger;
51
+    /**
52
+     * @var bool|IUser
53
+     */
54
+    private $user;
55
+    /**
56
+     * @var IConfig
57
+     */
58
+    private $config;
59
+    /**
60
+     * @var IUserManager
61
+     */
62
+    private $userManager;
63 63
 
64
-	/**
65
-	 * Util constructor.
66
-	 *
67
-	 * @param View $files
68
-	 * @param Crypt $crypt
69
-	 * @param ILogger $logger
70
-	 * @param IUserSession $userSession
71
-	 * @param IConfig $config
72
-	 * @param IUserManager $userManager
73
-	 */
74
-	public function __construct(View $files,
75
-								Crypt $crypt,
76
-								ILogger $logger,
77
-								IUserSession $userSession,
78
-								IConfig $config,
79
-								IUserManager $userManager
80
-	) {
81
-		$this->files = $files;
82
-		$this->crypt = $crypt;
83
-		$this->logger = $logger;
84
-		$this->user = $userSession && $userSession->isLoggedIn() ? $userSession->getUser() : false;
85
-		$this->config = $config;
86
-		$this->userManager = $userManager;
87
-	}
64
+    /**
65
+     * Util constructor.
66
+     *
67
+     * @param View $files
68
+     * @param Crypt $crypt
69
+     * @param ILogger $logger
70
+     * @param IUserSession $userSession
71
+     * @param IConfig $config
72
+     * @param IUserManager $userManager
73
+     */
74
+    public function __construct(View $files,
75
+                                Crypt $crypt,
76
+                                ILogger $logger,
77
+                                IUserSession $userSession,
78
+                                IConfig $config,
79
+                                IUserManager $userManager
80
+    ) {
81
+        $this->files = $files;
82
+        $this->crypt = $crypt;
83
+        $this->logger = $logger;
84
+        $this->user = $userSession && $userSession->isLoggedIn() ? $userSession->getUser() : false;
85
+        $this->config = $config;
86
+        $this->userManager = $userManager;
87
+    }
88 88
 
89
-	/**
90
-	 * check if recovery key is enabled for user
91
-	 *
92
-	 * @param string $uid
93
-	 * @return bool
94
-	 */
95
-	public function isRecoveryEnabledForUser($uid) {
96
-		$recoveryMode = $this->config->getUserValue($uid,
97
-			'encryption',
98
-			'recoveryEnabled',
99
-			'0');
89
+    /**
90
+     * check if recovery key is enabled for user
91
+     *
92
+     * @param string $uid
93
+     * @return bool
94
+     */
95
+    public function isRecoveryEnabledForUser($uid) {
96
+        $recoveryMode = $this->config->getUserValue($uid,
97
+            'encryption',
98
+            'recoveryEnabled',
99
+            '0');
100 100
 
101
-		return ($recoveryMode === '1');
102
-	}
101
+        return ($recoveryMode === '1');
102
+    }
103 103
 
104
-	/**
105
-	 * check if the home storage should be encrypted
106
-	 *
107
-	 * @return bool
108
-	 */
109
-	public function shouldEncryptHomeStorage() {
110
-		$encryptHomeStorage = $this->config->getAppValue(
111
-			'encryption',
112
-			'encryptHomeStorage',
113
-			'1'
114
-		);
104
+    /**
105
+     * check if the home storage should be encrypted
106
+     *
107
+     * @return bool
108
+     */
109
+    public function shouldEncryptHomeStorage() {
110
+        $encryptHomeStorage = $this->config->getAppValue(
111
+            'encryption',
112
+            'encryptHomeStorage',
113
+            '1'
114
+        );
115 115
 
116
-		return ($encryptHomeStorage === '1');
117
-	}
116
+        return ($encryptHomeStorage === '1');
117
+    }
118 118
 
119
-	/**
120
-	 * set the home storage encryption on/off
121
-	 *
122
-	 * @param bool $encryptHomeStorage
123
-	 */
124
-	public function setEncryptHomeStorage($encryptHomeStorage) {
125
-		$value = $encryptHomeStorage ? '1' : '0';
126
-		$this->config->setAppValue(
127
-			'encryption',
128
-			'encryptHomeStorage',
129
-			$value
130
-		);
131
-	}
119
+    /**
120
+     * set the home storage encryption on/off
121
+     *
122
+     * @param bool $encryptHomeStorage
123
+     */
124
+    public function setEncryptHomeStorage($encryptHomeStorage) {
125
+        $value = $encryptHomeStorage ? '1' : '0';
126
+        $this->config->setAppValue(
127
+            'encryption',
128
+            'encryptHomeStorage',
129
+            $value
130
+        );
131
+    }
132 132
 
133
-	/**
134
-	 * check if master key is enabled
135
-	 *
136
-	 * @return bool
137
-	 */
138
-	public function isMasterKeyEnabled() {
139
-		$userMasterKey = $this->config->getAppValue('encryption', 'useMasterKey', '1');
140
-		return ($userMasterKey === '1');
141
-	}
133
+    /**
134
+     * check if master key is enabled
135
+     *
136
+     * @return bool
137
+     */
138
+    public function isMasterKeyEnabled() {
139
+        $userMasterKey = $this->config->getAppValue('encryption', 'useMasterKey', '1');
140
+        return ($userMasterKey === '1');
141
+    }
142 142
 
143
-	/**
144
-	 * @param $enabled
145
-	 * @return bool
146
-	 */
147
-	public function setRecoveryForUser($enabled) {
148
-		$value = $enabled ? '1' : '0';
143
+    /**
144
+     * @param $enabled
145
+     * @return bool
146
+     */
147
+    public function setRecoveryForUser($enabled) {
148
+        $value = $enabled ? '1' : '0';
149 149
 
150
-		try {
151
-			$this->config->setUserValue($this->user->getUID(),
152
-				'encryption',
153
-				'recoveryEnabled',
154
-				$value);
155
-			return true;
156
-		} catch (PreConditionNotMetException $e) {
157
-			return false;
158
-		}
159
-	}
150
+        try {
151
+            $this->config->setUserValue($this->user->getUID(),
152
+                'encryption',
153
+                'recoveryEnabled',
154
+                $value);
155
+            return true;
156
+        } catch (PreConditionNotMetException $e) {
157
+            return false;
158
+        }
159
+    }
160 160
 
161
-	/**
162
-	 * @param string $uid
163
-	 * @return bool
164
-	 */
165
-	public function userHasFiles($uid) {
166
-		return $this->files->file_exists($uid . '/files');
167
-	}
161
+    /**
162
+     * @param string $uid
163
+     * @return bool
164
+     */
165
+    public function userHasFiles($uid) {
166
+        return $this->files->file_exists($uid . '/files');
167
+    }
168 168
 
169
-	/**
170
-	 * get owner from give path, path relative to data/ expected
171
-	 *
172
-	 * @param string $path relative to data/
173
-	 * @return string
174
-	 * @throws \BadMethodCallException
175
-	 */
176
-	public function getOwner($path) {
177
-		$owner = '';
178
-		$parts = explode('/', $path, 3);
179
-		if (count($parts) > 1) {
180
-			$owner = $parts[1];
181
-			if ($this->userManager->userExists($owner) === false) {
182
-				throw new \BadMethodCallException('Unknown user: ' .
183
-				'method expects path to a user folder relative to the data folder');
184
-			}
185
-		}
169
+    /**
170
+     * get owner from give path, path relative to data/ expected
171
+     *
172
+     * @param string $path relative to data/
173
+     * @return string
174
+     * @throws \BadMethodCallException
175
+     */
176
+    public function getOwner($path) {
177
+        $owner = '';
178
+        $parts = explode('/', $path, 3);
179
+        if (count($parts) > 1) {
180
+            $owner = $parts[1];
181
+            if ($this->userManager->userExists($owner) === false) {
182
+                throw new \BadMethodCallException('Unknown user: ' .
183
+                'method expects path to a user folder relative to the data folder');
184
+            }
185
+        }
186 186
 
187
-		return $owner;
188
-	}
187
+        return $owner;
188
+    }
189 189
 
190
-	/**
191
-	 * get storage of path
192
-	 *
193
-	 * @param string $path
194
-	 * @return \OC\Files\Storage\Storage|null
195
-	 */
196
-	public function getStorage($path) {
197
-		return $this->files->getMount($path)->getStorage();
198
-	}
190
+    /**
191
+     * get storage of path
192
+     *
193
+     * @param string $path
194
+     * @return \OC\Files\Storage\Storage|null
195
+     */
196
+    public function getStorage($path) {
197
+        return $this->files->getMount($path)->getStorage();
198
+    }
199 199
 }
Please login to merge, or discard this patch.
apps/encryption/lib/Crypto/DecryptAll.php 2 patches
Indentation   +122 added lines, -122 removed lines patch added patch discarded remove patch
@@ -34,126 +34,126 @@
 block discarded – undo
34 34
 
35 35
 class DecryptAll {
36 36
 
37
-	/** @var Util  */
38
-	protected $util;
39
-
40
-	/** @var QuestionHelper  */
41
-	protected $questionHelper;
42
-
43
-	/** @var  Crypt */
44
-	protected $crypt;
45
-
46
-	/** @var  KeyManager */
47
-	protected $keyManager;
48
-
49
-	/** @var Session  */
50
-	protected $session;
51
-
52
-	/**
53
-	 * @param Util $util
54
-	 * @param KeyManager $keyManager
55
-	 * @param Crypt $crypt
56
-	 * @param Session $session
57
-	 * @param QuestionHelper $questionHelper
58
-	 */
59
-	public function __construct(
60
-		Util $util,
61
-		KeyManager $keyManager,
62
-		Crypt $crypt,
63
-		Session $session,
64
-		QuestionHelper $questionHelper
65
-	) {
66
-		$this->util = $util;
67
-		$this->keyManager = $keyManager;
68
-		$this->crypt = $crypt;
69
-		$this->session = $session;
70
-		$this->questionHelper = $questionHelper;
71
-	}
72
-
73
-	/**
74
-	 * prepare encryption module to decrypt all files
75
-	 *
76
-	 * @param InputInterface $input
77
-	 * @param OutputInterface $output
78
-	 * @param $user
79
-	 * @return bool
80
-	 */
81
-	public function prepare(InputInterface $input, OutputInterface $output, $user) {
82
-		$question = new Question('Please enter the recovery key password: ');
83
-
84
-		if ($this->util->isMasterKeyEnabled()) {
85
-			$output->writeln('Use master key to decrypt all files');
86
-			$user = $this->keyManager->getMasterKeyId();
87
-			$password = $this->keyManager->getMasterKeyPassword();
88
-		} else {
89
-			$recoveryKeyId = $this->keyManager->getRecoveryKeyId();
90
-			if (!empty($user)) {
91
-				$output->writeln('You can only decrypt the users files if you know');
92
-				$output->writeln('the users password or if he activated the recovery key.');
93
-				$output->writeln('');
94
-				$questionUseLoginPassword = new ConfirmationQuestion(
95
-					'Do you want to use the users login password to decrypt all files? (y/n) ',
96
-					false
97
-				);
98
-				$useLoginPassword = $this->questionHelper->ask($input, $output, $questionUseLoginPassword);
99
-				if ($useLoginPassword) {
100
-					$question = new Question('Please enter the user\'s login password: ');
101
-				} elseif ($this->util->isRecoveryEnabledForUser($user) === false) {
102
-					$output->writeln('No recovery key available for user ' . $user);
103
-					return false;
104
-				} else {
105
-					$user = $recoveryKeyId;
106
-				}
107
-			} else {
108
-				$output->writeln('You can only decrypt the files of all users if the');
109
-				$output->writeln('recovery key is enabled by the admin and activated by the users.');
110
-				$output->writeln('');
111
-				$user = $recoveryKeyId;
112
-			}
113
-
114
-			$question->setHidden(true);
115
-			$question->setHiddenFallback(false);
116
-			$password = $this->questionHelper->ask($input, $output, $question);
117
-		}
118
-
119
-		$privateKey = $this->getPrivateKey($user, $password);
120
-		if ($privateKey !== false) {
121
-			$this->updateSession($user, $privateKey);
122
-			return true;
123
-		} else {
124
-			$output->writeln('Could not decrypt private key, maybe you entered the wrong password?');
125
-		}
126
-
127
-
128
-		return false;
129
-	}
130
-
131
-	/**
132
-	 * get the private key which will be used to decrypt all files
133
-	 *
134
-	 * @param string $user
135
-	 * @param string $password
136
-	 * @return bool|string
137
-	 * @throws \OCA\Encryption\Exceptions\PrivateKeyMissingException
138
-	 */
139
-	protected function getPrivateKey($user, $password) {
140
-		$recoveryKeyId = $this->keyManager->getRecoveryKeyId();
141
-		$masterKeyId = $this->keyManager->getMasterKeyId();
142
-		if ($user === $recoveryKeyId) {
143
-			$recoveryKey = $this->keyManager->getSystemPrivateKey($recoveryKeyId);
144
-			$privateKey = $this->crypt->decryptPrivateKey($recoveryKey, $password);
145
-		} elseif ($user === $masterKeyId) {
146
-			$masterKey = $this->keyManager->getSystemPrivateKey($masterKeyId);
147
-			$privateKey = $this->crypt->decryptPrivateKey($masterKey, $password, $masterKeyId);
148
-		} else {
149
-			$userKey = $this->keyManager->getPrivateKey($user);
150
-			$privateKey = $this->crypt->decryptPrivateKey($userKey, $password, $user);
151
-		}
152
-
153
-		return $privateKey;
154
-	}
155
-
156
-	protected function updateSession($user, $privateKey) {
157
-		$this->session->prepareDecryptAll($user, $privateKey);
158
-	}
37
+    /** @var Util  */
38
+    protected $util;
39
+
40
+    /** @var QuestionHelper  */
41
+    protected $questionHelper;
42
+
43
+    /** @var  Crypt */
44
+    protected $crypt;
45
+
46
+    /** @var  KeyManager */
47
+    protected $keyManager;
48
+
49
+    /** @var Session  */
50
+    protected $session;
51
+
52
+    /**
53
+     * @param Util $util
54
+     * @param KeyManager $keyManager
55
+     * @param Crypt $crypt
56
+     * @param Session $session
57
+     * @param QuestionHelper $questionHelper
58
+     */
59
+    public function __construct(
60
+        Util $util,
61
+        KeyManager $keyManager,
62
+        Crypt $crypt,
63
+        Session $session,
64
+        QuestionHelper $questionHelper
65
+    ) {
66
+        $this->util = $util;
67
+        $this->keyManager = $keyManager;
68
+        $this->crypt = $crypt;
69
+        $this->session = $session;
70
+        $this->questionHelper = $questionHelper;
71
+    }
72
+
73
+    /**
74
+     * prepare encryption module to decrypt all files
75
+     *
76
+     * @param InputInterface $input
77
+     * @param OutputInterface $output
78
+     * @param $user
79
+     * @return bool
80
+     */
81
+    public function prepare(InputInterface $input, OutputInterface $output, $user) {
82
+        $question = new Question('Please enter the recovery key password: ');
83
+
84
+        if ($this->util->isMasterKeyEnabled()) {
85
+            $output->writeln('Use master key to decrypt all files');
86
+            $user = $this->keyManager->getMasterKeyId();
87
+            $password = $this->keyManager->getMasterKeyPassword();
88
+        } else {
89
+            $recoveryKeyId = $this->keyManager->getRecoveryKeyId();
90
+            if (!empty($user)) {
91
+                $output->writeln('You can only decrypt the users files if you know');
92
+                $output->writeln('the users password or if he activated the recovery key.');
93
+                $output->writeln('');
94
+                $questionUseLoginPassword = new ConfirmationQuestion(
95
+                    'Do you want to use the users login password to decrypt all files? (y/n) ',
96
+                    false
97
+                );
98
+                $useLoginPassword = $this->questionHelper->ask($input, $output, $questionUseLoginPassword);
99
+                if ($useLoginPassword) {
100
+                    $question = new Question('Please enter the user\'s login password: ');
101
+                } elseif ($this->util->isRecoveryEnabledForUser($user) === false) {
102
+                    $output->writeln('No recovery key available for user ' . $user);
103
+                    return false;
104
+                } else {
105
+                    $user = $recoveryKeyId;
106
+                }
107
+            } else {
108
+                $output->writeln('You can only decrypt the files of all users if the');
109
+                $output->writeln('recovery key is enabled by the admin and activated by the users.');
110
+                $output->writeln('');
111
+                $user = $recoveryKeyId;
112
+            }
113
+
114
+            $question->setHidden(true);
115
+            $question->setHiddenFallback(false);
116
+            $password = $this->questionHelper->ask($input, $output, $question);
117
+        }
118
+
119
+        $privateKey = $this->getPrivateKey($user, $password);
120
+        if ($privateKey !== false) {
121
+            $this->updateSession($user, $privateKey);
122
+            return true;
123
+        } else {
124
+            $output->writeln('Could not decrypt private key, maybe you entered the wrong password?');
125
+        }
126
+
127
+
128
+        return false;
129
+    }
130
+
131
+    /**
132
+     * get the private key which will be used to decrypt all files
133
+     *
134
+     * @param string $user
135
+     * @param string $password
136
+     * @return bool|string
137
+     * @throws \OCA\Encryption\Exceptions\PrivateKeyMissingException
138
+     */
139
+    protected function getPrivateKey($user, $password) {
140
+        $recoveryKeyId = $this->keyManager->getRecoveryKeyId();
141
+        $masterKeyId = $this->keyManager->getMasterKeyId();
142
+        if ($user === $recoveryKeyId) {
143
+            $recoveryKey = $this->keyManager->getSystemPrivateKey($recoveryKeyId);
144
+            $privateKey = $this->crypt->decryptPrivateKey($recoveryKey, $password);
145
+        } elseif ($user === $masterKeyId) {
146
+            $masterKey = $this->keyManager->getSystemPrivateKey($masterKeyId);
147
+            $privateKey = $this->crypt->decryptPrivateKey($masterKey, $password, $masterKeyId);
148
+        } else {
149
+            $userKey = $this->keyManager->getPrivateKey($user);
150
+            $privateKey = $this->crypt->decryptPrivateKey($userKey, $password, $user);
151
+        }
152
+
153
+        return $privateKey;
154
+    }
155
+
156
+    protected function updateSession($user, $privateKey) {
157
+        $this->session->prepareDecryptAll($user, $privateKey);
158
+    }
159 159
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -99,7 +99,7 @@
 block discarded – undo
99 99
 				if ($useLoginPassword) {
100 100
 					$question = new Question('Please enter the user\'s login password: ');
101 101
 				} elseif ($this->util->isRecoveryEnabledForUser($user) === false) {
102
-					$output->writeln('No recovery key available for user ' . $user);
102
+					$output->writeln('No recovery key available for user '.$user);
103 103
 					return false;
104 104
 				} else {
105 105
 					$user = $recoveryKeyId;
Please login to merge, or discard this patch.
apps/encryption/lib/Exceptions/PrivateKeyMissingException.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -28,13 +28,13 @@
 block discarded – undo
28 28
 
29 29
 class PrivateKeyMissingException extends GenericEncryptionException {
30 30
 
31
-	/**
32
-	 * @param string $userId
33
-	 */
34
-	public function __construct($userId) {
35
-		if (empty($userId)) {
36
-			$userId = "<no-user-id-given>";
37
-		}
38
-		parent::__construct("Private Key missing for user: $userId");
39
-	}
31
+    /**
32
+     * @param string $userId
33
+     */
34
+    public function __construct($userId) {
35
+        if (empty($userId)) {
36
+            $userId = "<no-user-id-given>";
37
+        }
38
+        parent::__construct("Private Key missing for user: $userId");
39
+    }
40 40
 }
Please login to merge, or discard this patch.