Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rule for OC legacy getters #13

Merged
merged 2 commits into from
Sep 18, 2024
Merged

Conversation

come-nc
Copy link
Collaborator

@come-nc come-nc commented Sep 18, 2024

Turn legacy getters into OCP\Server::get

@come-nc come-nc self-assigned this Sep 18, 2024
Copy link
Collaborator

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

LegacyGetterToOcpServerGetRector::class,
[
/** @phpstan-ignore class.notFound */
new LegacyGetterToOcpServerGet('getRequest', IRequest::class),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The above snippet didn't work for me, had to use new LegacyGetterToOcpServerGet('getRequest', \OCP\IRequest::class), instead.

I'm running nextcloud-rector in an own folder and therefore don't have access to the core classes.

How do you run rector?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you forget the use OCP\IRequest; statement?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likely

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, I forgot the use statement.

@kesselb
Copy link
Collaborator

kesselb commented Sep 18, 2024

Diff looks good 👍

diff --git a/apps/dav/appinfo/v1/caldav.php b/apps/dav/appinfo/v1/caldav.php
index bfa4d6184d5..6319d098aaa 100644
--- a/apps/dav/appinfo/v1/caldav.php
+++ b/apps/dav/appinfo/v1/caldav.php
@@ -23,7 +23,7 @@ use Psr\Log\LoggerInterface;
 $authBackend = new Auth(
 	\OC::$server->getSession(),
 	\OC::$server->getUserSession(),
-	\OC::$server->getRequest(),
+	\OCP\Server::get(\OCP\IRequest::class),
 	\OC::$server->getTwoFactorAuthManager(),
 	\OC::$server->getBruteForceThrottler(),
 	'principals/'
@@ -78,7 +78,7 @@ $nodes = [
 // Fire up server
 $server = new \Sabre\DAV\Server($nodes);
 $server::$exposeVersion = false;
-$server->httpRequest->setUrl(\OC::$server->getRequest()->getRequestUri());
+$server->httpRequest->setUrl(\OCP\Server::get(\OCP\IRequest::class)->getRequestUri());
 $server->setBaseUri($baseuri);
 
 // Add plugins
diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php
index 72be4712705..1d3711fb88b 100644
--- a/apps/dav/appinfo/v1/carddav.php
+++ b/apps/dav/appinfo/v1/carddav.php
@@ -25,7 +25,7 @@ use Sabre\CardDAV\Plugin;
 $authBackend = new Auth(
 	\OC::$server->getSession(),
 	\OC::$server->getUserSession(),
-	\OC::$server->getRequest(),
+	\OCP\Server::get(\OCP\IRequest::class),
 	\OC::$server->getTwoFactorAuthManager(),
 	\OC::$server->getBruteForceThrottler(),
 	'principals/'
@@ -70,7 +70,7 @@ $nodes = [
 // Fire up server
 $server = new \Sabre\DAV\Server($nodes);
 $server::$exposeVersion = false;
-$server->httpRequest->setUrl(\OC::$server->getRequest()->getRequestUri());
+$server->httpRequest->setUrl(\OCP\Server::get(\OCP\IRequest::class)->getRequestUri());
 $server->setBaseUri($baseuri);
 // Add plugins
 $server->addPlugin(new MaintenancePlugin(\OC::$server->getConfig(), \OC::$server->getL10N('dav')));
diff --git a/apps/dav/appinfo/v1/publicwebdav.php b/apps/dav/appinfo/v1/publicwebdav.php
index 38753374150..5a5f8fcac82 100644
--- a/apps/dav/appinfo/v1/publicwebdav.php
+++ b/apps/dav/appinfo/v1/publicwebdav.php
@@ -20,7 +20,7 @@ OC_Util::obEnd();
 
 // Backends
 $authBackend = new OCA\DAV\Connector\LegacyPublicAuth(
-	\OC::$server->getRequest(),
+	\OCP\Server::get(\OCP\IRequest::class),
 	\OC::$server->getShareManager(),
 	\OC::$server->getSession(),
 	\OC::$server->getBruteForceThrottler()
@@ -37,13 +37,13 @@ $serverFactory = new OCA\DAV\Connector\Sabre\ServerFactory(
 	\OC::$server->getUserSession(),
 	\OC::$server->getMountManager(),
 	\OC::$server->getTagManager(),
-	\OC::$server->getRequest(),
+	\OCP\Server::get(\OCP\IRequest::class),
 	\OC::$server->getPreviewManager(),
 	$eventDispatcher,
 	\OC::$server->getL10N('dav')
 );
 
-$requestUri = \OC::$server->getRequest()->getRequestUri();
+$requestUri = \OCP\Server::get(\OCP\IRequest::class)->getRequestUri();
 
 $linkCheckPlugin = new \OCA\DAV\Files\Sharing\PublicLinkCheckPlugin();
 $filesDropPlugin = new \OCA\DAV\Files\Sharing\FilesDropPlugin();
diff --git a/apps/dav/appinfo/v1/webdav.php b/apps/dav/appinfo/v1/webdav.php
index 1683c29ca80..334bce5e52e 100644
--- a/apps/dav/appinfo/v1/webdav.php
+++ b/apps/dav/appinfo/v1/webdav.php
@@ -25,7 +25,7 @@ $serverFactory = new \OCA\DAV\Connector\Sabre\ServerFactory(
 	\OC::$server->getUserSession(),
 	\OC::$server->getMountManager(),
 	\OC::$server->getTagManager(),
-	\OC::$server->getRequest(),
+	\OCP\Server::get(\OCP\IRequest::class),
 	\OC::$server->getPreviewManager(),
 	$dispatcher,
 	\OC::$server->getL10N('dav')
@@ -35,7 +35,7 @@ $serverFactory = new \OCA\DAV\Connector\Sabre\ServerFactory(
 $authBackend = new \OCA\DAV\Connector\Sabre\Auth(
 	\OC::$server->getSession(),
 	\OC::$server->getUserSession(),
-	\OC::$server->getRequest(),
+	\OCP\Server::get(\OCP\IRequest::class),
 	\OC::$server->getTwoFactorAuthManager(),
 	\OC::$server->getBruteForceThrottler(),
 	'principals/'
@@ -44,11 +44,11 @@ $authPlugin = new \Sabre\DAV\Auth\Plugin($authBackend);
 $bearerAuthPlugin = new \OCA\DAV\Connector\Sabre\BearerAuth(
 	\OC::$server->getUserSession(),
 	\OC::$server->getSession(),
-	\OC::$server->getRequest()
+	\OCP\Server::get(\OCP\IRequest::class)
 );
 $authPlugin->addBackend($bearerAuthPlugin);
 
-$requestUri = \OC::$server->getRequest()->getRequestUri();
+$requestUri = \OCP\Server::get(\OCP\IRequest::class)->getRequestUri();
 
 $server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, function () {
 	// use the view for the logged in user
diff --git a/apps/dav/appinfo/v2/direct.php b/apps/dav/appinfo/v2/direct.php
index 46443a60f8a..8f7381a8b0a 100644
--- a/apps/dav/appinfo/v2/direct.php
+++ b/apps/dav/appinfo/v2/direct.php
@@ -17,7 +17,7 @@ ignore_user_abort(true);
 // Turn off output buffering to prevent memory problems
 \OC_Util::obEnd();
 
-$requestUri = \OC::$server->getRequest()->getRequestUri();
+$requestUri = \OCP\Server::get(\OCP\IRequest::class)->getRequestUri();
 
 /** @var ServerFactory $serverFactory */
 $serverFactory = \OC::$server->query(ServerFactory::class);
@@ -28,7 +28,7 @@ $server = $serverFactory->createServer(
 	\OC::$server->query(\OCA\DAV\Db\DirectMapper::class),
 	\OC::$server->query(\OCP\AppFramework\Utility\ITimeFactory::class),
 	\OC::$server->getBruteForceThrottler(),
-	\OC::$server->getRequest()
+	\OCP\Server::get(\OCP\IRequest::class)
 );
 
 $server->exec();
diff --git a/apps/dav/appinfo/v2/remote.php b/apps/dav/appinfo/v2/remote.php
index 73031c0794f..10b2aaaff8c 100644
--- a/apps/dav/appinfo/v2/remote.php
+++ b/apps/dav/appinfo/v2/remote.php
@@ -14,6 +14,6 @@ ignore_user_abort(true);
 // Turn off output buffering to prevent memory problems
 \OC_Util::obEnd();
 
-$request = \OC::$server->getRequest();
+$request = \OCP\Server::get(\OCP\IRequest::class);
 $server = new \OCA\DAV\Server($request, $baseuri);
 $server->exec();
diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index 2784e99b5f7..020e29905d6 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -101,7 +101,7 @@ class Server {
 		$authBackend = new Auth(
 			\OC::$server->getSession(),
 			\OC::$server->getUserSession(),
-			\OC::$server->getRequest(),
+			\OCP\Server::get(\OCP\IRequest::class),
 			\OC::$server->getTwoFactorAuthManager(),
 			\OC::$server->getBruteForceThrottler()
 		);
@@ -130,7 +130,7 @@ class Server {
 		$bearerAuthBackend = new BearerAuth(
 			\OC::$server->getUserSession(),
 			\OC::$server->getSession(),
-			\OC::$server->getRequest()
+			\OCP\Server::get(\OCP\IRequest::class)
 		);
 		$authPlugin->addBackend($bearerAuthBackend);
 		// because we are throwing exceptions this plugin has to be the last one
@@ -159,7 +159,7 @@ class Server {
 
 		// calendar plugins
 		if ($this->requestIsForSubtree(['calendars', 'public-calendars', 'system-calendars', 'principals'])) {
-			$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest(), \OC::$server->getConfig()));
+			$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OCP\Server::get(\OCP\IRequest::class), \OC::$server->getConfig()));
 			$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
 			$this->server->addPlugin(new \OCA\DAV\CalDAV\ICSExportPlugin\ICSExportPlugin(\OC::$server->getConfig(), $logger));
 			$this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin(\OC::$server->getConfig(), \OC::$server->get(LoggerInterface::class), \OC::$server->get(DefaultCalendarValidator::class)));
@@ -182,7 +182,7 @@ class Server {
 
 		// addressbook plugins
 		if ($this->requestIsForSubtree(['addressbooks', 'principals'])) {
-			$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest(), \OC::$server->getConfig()));
+			$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OCP\Server::get(\OCP\IRequest::class), \OC::$server->getConfig()));
 			$this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin());
 			$this->server->addPlugin(new VCFExportPlugin());
 			$this->server->addPlugin(new MultiGetExportPlugin());
@@ -341,7 +341,7 @@ class Server {
 					\OC::$server->getUserSession(),
 					\OC::$server->getURLGenerator(),
 					\OC::$server->getThemingDefaults(),
-					\OC::$server->getRequest(),
+					\OCP\Server::get(\OCP\IRequest::class),
 					\OC::$server->getL10N('dav'),
 					function () {
 						return UUIDUtil::getUUID();
diff --git a/apps/files/ajax/download.php b/apps/files/ajax/download.php
index fc434f79e2c..7d525ddee1a 100644
--- a/apps/files/ajax/download.php
+++ b/apps/files/ajax/download.php
@@ -43,13 +43,13 @@ if (isset($_GET['downloadStartSecret'])) {
 	}
 }
 
-$server_params = [ 'head' => \OC::$server->getRequest()->getMethod() === 'HEAD' ];
+$server_params = [ 'head' => \OCP\Server::get(\OCP\IRequest::class)->getMethod() === 'HEAD' ];
 
 /**
  * Http range requests support
  */
 if (isset($_SERVER['HTTP_RANGE'])) {
-	$server_params['range'] = \OC::$server->getRequest()->getHeader('Range');
+	$server_params['range'] = \OCP\Server::get(\OCP\IRequest::class)->getHeader('Range');
 }
 
 OC_Files::get($dir, $files_list, $server_params);
diff --git a/lib/private/Log/LogDetails.php b/lib/private/Log/LogDetails.php
index bd18eb983db..5161cb71d4e 100644
--- a/lib/private/Log/LogDetails.php
+++ b/lib/private/Log/LogDetails.php
@@ -29,7 +29,7 @@ abstract class LogDetails {
 			// apply timezone if $time is created from UNIX timestamp
 			$time->setTimezone($timezone);
 		}
-		$request = \OC::$server->getRequest();
+		$request = \OCP\Server::get(\OCP\IRequest::class);
 		$reqId = $request->getId();
 		$remoteAddr = $request->getRemoteAddress();
 		// remove username/passwords from URLs before writing the to the log file
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php
index 0ef4ec197cf..2ac87248a8f 100644
--- a/lib/private/TemplateLayout.php
+++ b/lib/private/TemplateLayout.php
@@ -246,7 +246,7 @@ class TemplateLayout extends \OC_Template {
 		}
 
 		try {
-			$pathInfo = \OC::$server->getRequest()->getPathInfo();
+			$pathInfo = \OCP\Server::get(\OCP\IRequest::class)->getPathInfo();
 		} catch (\Exception $e) {
 			$pathInfo = '';
 		}
diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php
index 9a84b102a99..280448c2310 100644
--- a/lib/private/User/Manager.php
+++ b/lib/private/User/Manager.php
@@ -201,7 +201,7 @@ class Manager extends PublicEmitter implements IUserManager {
 		$result = $this->checkPasswordNoLogging($loginName, $password);
 
 		if ($result === false) {
-			\OCP\Server::get(LoggerInterface::class)->warning('Login failed: \''. $loginName .'\' (Remote IP: \''. \OC::$server->getRequest()->getRemoteAddress(). '\')', ['app' => 'core']);
+			\OCP\Server::get(LoggerInterface::class)->warning('Login failed: \''. $loginName .'\' (Remote IP: \''. \OCP\Server::get(\OCP\IRequest::class)->getRemoteAddress(). '\')', ['app' => 'core']);
 		}
 
 		return $result;
diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php
index 64e8f6dfdc8..d2135f19fe7 100644
--- a/lib/private/User/Session.php
+++ b/lib/private/User/Session.php
@@ -962,7 +962,7 @@ class Session implements IUserSession, Emitter {
 	 * @param string $token
 	 */
 	public function setMagicInCookie($username, $token) {
-		$secureCookie = OC::$server->getRequest()->getServerProtocol() === 'https';
+		$secureCookie = \OCP\Server::get(\OCP\IRequest::class)->getServerProtocol() === 'https';
 		$webRoot = \OC::$WEBROOT;
 		if ($webRoot === '') {
 			$webRoot = '/';
@@ -1010,7 +1010,7 @@ class Session implements IUserSession, Emitter {
 	 */
 	public function unsetMagicInCookie() {
 		//TODO: DI for cookies and IRequest
-		$secureCookie = OC::$server->getRequest()->getServerProtocol() === 'https';
+		$secureCookie = \OCP\Server::get(\OCP\IRequest::class)->getServerProtocol() === 'https';
 
 		unset($_COOKIE['nc_username']); //TODO: DI
 		unset($_COOKIE['nc_token']);
diff --git a/lib/private/legacy/OC_App.php b/lib/private/legacy/OC_App.php
index 0756f274a11..612af791425 100644
--- a/lib/private/legacy/OC_App.php
+++ b/lib/private/legacy/OC_App.php
@@ -360,7 +360,7 @@ class OC_App {
 			return '';
 		}
 
-		$request = \OC::$server->getRequest();
+		$request = \OCP\Server::get(\OCP\IRequest::class);
 		$script = substr($request->getScriptName(), strlen(OC::$WEBROOT) + 1);
 		$topFolder = substr($script, 0, strpos($script, '/') ?: 0);
 		if (empty($topFolder)) {
diff --git a/lib/private/legacy/OC_Files.php b/lib/private/legacy/OC_Files.php
index 8e23d70c690..7b957c16a5f 100644
--- a/lib/private/legacy/OC_Files.php
+++ b/lib/private/legacy/OC_Files.php
@@ -139,7 +139,7 @@ class OC_Files {
 				throw new \OC\ForbiddenException($event->getErrorMessage());
 			}
 
-			$streamer = new Streamer(\OC::$server->getRequest(), $fileSize, $numberOfFiles);
+			$streamer = new Streamer(\OCP\Server::get(\OCP\IRequest::class), $fileSize, $numberOfFiles);
 			OC_Util::obEnd();
 
 			$streamer->sendHeaders($name);
diff --git a/lib/private/legacy/OC_JSON.php b/lib/private/legacy/OC_JSON.php
index a9682e2cce7..152128cd204 100644
--- a/lib/private/legacy/OC_JSON.php
+++ b/lib/private/legacy/OC_JSON.php
@@ -45,12 +45,12 @@ class OC_JSON {
 	 * @suppress PhanDeprecatedFunction
 	 */
 	public static function callCheck() {
-		if (!\OC::$server->getRequest()->passesStrictCookieCheck()) {
+		if (!\OCP\Server::get(\OCP\IRequest::class)->passesStrictCookieCheck()) {
 			header('Location: '.\OC::$WEBROOT);
 			exit();
 		}
 
-		if (!\OC::$server->getRequest()->passesCSRFCheck()) {
+		if (!\OCP\Server::get(\OCP\IRequest::class)->passesCSRFCheck()) {
 			$l = \OC::$server->getL10N('lib');
 			self::error([ 'data' => [ 'message' => $l->t('Token expired. Please reload page.'), 'error' => 'token_expired' ]]);
 			exit();
diff --git a/lib/private/legacy/OC_Response.php b/lib/private/legacy/OC_Response.php
index 8c8890c74c4..cf69f7110de 100644
--- a/lib/private/legacy/OC_Response.php
+++ b/lib/private/legacy/OC_Response.php
@@ -12,7 +12,7 @@ class OC_Response {
 	 * @param string $type disposition type, either 'attachment' or 'inline'
 	 */
 	public static function setContentDispositionHeader($filename, $type = 'attachment') {
-		if (\OC::$server->getRequest()->isUserAgent(
+		if (\OCP\Server::get(\OCP\IRequest::class)->isUserAgent(
 			[
 				\OC\AppFramework\Http\Request::USER_AGENT_IE,
 				\OC\AppFramework\Http\Request::USER_AGENT_ANDROID_MOBILE_CHROME,
diff --git a/lib/private/legacy/OC_Template.php b/lib/private/legacy/OC_Template.php
index 422709cec7d..7b8552d6c31 100644
--- a/lib/private/legacy/OC_Template.php
+++ b/lib/private/legacy/OC_Template.php
@@ -281,7 +281,7 @@ class OC_Template extends \OC\Template\Base {
 		try {
 			$debug = \OC::$server->getSystemConfig()->getValue('debug', false);
 			$serverLogsDocumentation = \OC::$server->getSystemConfig()->getValue('documentation_url.server_logs', '');
-			$request = \OC::$server->getRequest();
+			$request = \OCP\Server::get(\OCP\IRequest::class);
 			$content = new \OC_Template('', 'exception', 'error', false);
 			$content->assign('errorClass', get_class($exception));
 			$content->assign('errorMsg', $exception->getMessage());
diff --git a/lib/private/legacy/OC_User.php b/lib/private/legacy/OC_User.php
index b8a00de84cc..b3402b034fc 100644
--- a/lib/private/legacy/OC_User.php
+++ b/lib/private/legacy/OC_User.php
@@ -157,7 +157,7 @@ class OC_User {
 					throw new LoginException($message);
 				}
 				$userSession->setLoginName($uid);
-				$request = OC::$server->getRequest();
+				$request = \OCP\Server::get(\OCP\IRequest::class);
 				$password = null;
 				if ($backend instanceof \OCP\Authentication\IProvideUserSecretBackend) {
 					$password = $backend->getCurrentUserSecret();
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index 84bb0b645d5..2389bb66a58 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -723,7 +723,7 @@ class OC_Util {
 			header('Location: ' . \OC::$server->getURLGenerator()->linkToRoute(
 				'core.login.showLoginForm',
 				[
-					'redirect_url' => \OC::$server->getRequest()->getRequestUri(),
+					'redirect_url' => \OCP\Server::get(\OCP\IRequest::class)->getRequestUri(),
 				]
 			)
 			);

@come-nc come-nc merged commit 41f383d into main Sep 18, 2024
21 checks passed
@come-nc come-nc deleted the feat/add-rule-for-oc-legacy-getters branch September 18, 2024 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants