From 06629e19ca03c3431a64302a18a1ff2a2f011be1 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Mon, 6 May 2024 09:17:44 +0000
Subject: [PATCH] relocate stud.ip trails files, fixes #4105

Closes #4105

Merge request studip/studip!2936
---
 RELEASE-NOTES.md                                     |  6 ++++++
 app/controllers/admin/install.php                    |  2 +-
 app/controllers/loncapa.php                          |  2 --
 app/controllers/notifications.php                    |  3 ---
 lib/bootstrap-autoload.php                           | 12 ------------
 .../classes/AuthenticatedController.php              |  0
 .../classes/PluginController.php                     |  0
 .../classes/StudipController.php                     |  5 +----
 .../classes/StudipControllerPropertiesTrait.php      |  0
 .../classes/StudipResponse.php                       |  0
 tests/unit/_bootstrap.php                            |  1 -
 11 files changed, 8 insertions(+), 23 deletions(-)
 rename app/controllers/authenticated_controller.php => lib/classes/AuthenticatedController.php (100%)
 rename app/controllers/plugin_controller.php => lib/classes/PluginController.php (100%)
 rename app/controllers/studip_controller.php => lib/classes/StudipController.php (99%)
 rename app/controllers/studip_controller_properties_trait.php => lib/classes/StudipControllerPropertiesTrait.php (100%)
 rename app/controllers/studip_response.php => lib/classes/StudipResponse.php (100%)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index d28b92b5351..9f3f8c6ac85 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -19,6 +19,12 @@
 - Die `MembersModel.php` wurde entfernt ([Issue #3811](https://gitlab.studip.de/studip/studip/-/issues/3811))
 - Die `admission.inc.php` wurde entfernt. ([Issue #3812](https://gitlab.studip.de/studip/studip/-/issues/3812))
 - Die Methoden `CronjobScheduler::scheduleOnce()` sowie `CronjobTask::scheduleOnce()` wurden ersatzlos entfernt. ([Issue #4078](https://gitlab.studip.de/studip/studip/-/issues/4078))
+- Die folgenden Klassen wurden innerhalb von Stud.IP verschoben. Da sie über den Autoloader geladen werden, kann jedes manuelle Einbinden ersatzlos entfernt werden. ([Issue #4105](https://gitlab.studip.de/studip/studip/-/issues/4105))
+  - `AuthenticatedController`
+  - `PluginController`
+  - `StudipController`
+  - `StudipControllerPropertiesTrait`
+  - `StudipResponse`
 
 ## Security related issues
 
diff --git a/app/controllers/admin/install.php b/app/controllers/admin/install.php
index 00544451898..9ede078859a 100644
--- a/app/controllers/admin/install.php
+++ b/app/controllers/admin/install.php
@@ -1,5 +1,5 @@
 <?php
-require_once __DIR__ . '/../studip_controller_properties_trait.php';
+require_once __DIR__ . '/../../../lib/classes/StudipControllerPropertiesTrait.php';
 
 class Admin_InstallController extends Trails_Controller
 {
diff --git a/app/controllers/loncapa.php b/app/controllers/loncapa.php
index 31191783ab4..41331b649a6 100644
--- a/app/controllers/loncapa.php
+++ b/app/controllers/loncapa.php
@@ -1,6 +1,4 @@
 <?php
-require_once 'app/controllers/authenticated_controller.php';
-
 class LoncapaController extends AuthenticatedController
 {
     public function enter_action()
diff --git a/app/controllers/notifications.php b/app/controllers/notifications.php
index b206df1b291..dc31aab1595 100644
--- a/app/controllers/notifications.php
+++ b/app/controllers/notifications.php
@@ -13,9 +13,6 @@
  * @since       3.0
  */
 
-require_once 'app/controllers/authenticated_controller.php';
-
-
 class NotificationsController extends AuthenticatedController
 {
     /**
diff --git a/lib/bootstrap-autoload.php b/lib/bootstrap-autoload.php
index 6f3f4a713f2..3a767c1fd74 100644
--- a/lib/bootstrap-autoload.php
+++ b/lib/bootstrap-autoload.php
@@ -76,18 +76,6 @@ StudipAutoloader::addClassLookup(
     $trails_classes,
     'vendor/trails/trails.php'
 );
-StudipAutoloader::addClassLookup(
-    'StudipController',
-    'app/controllers/studip_controller.php'
-);
-StudipAutoloader::addClassLookup(
-    'AuthenticatedController',
-    'app/controllers/authenticated_controller.php'
-);
-StudipAutoloader::addClassLookup(
-    'PluginController',
-    'app/controllers/plugin_controller.php'
-);
 
 // Vendor
 StudipAutoloader::addClassLookups([
diff --git a/app/controllers/authenticated_controller.php b/lib/classes/AuthenticatedController.php
similarity index 100%
rename from app/controllers/authenticated_controller.php
rename to lib/classes/AuthenticatedController.php
diff --git a/app/controllers/plugin_controller.php b/lib/classes/PluginController.php
similarity index 100%
rename from app/controllers/plugin_controller.php
rename to lib/classes/PluginController.php
diff --git a/app/controllers/studip_controller.php b/lib/classes/StudipController.php
similarity index 99%
rename from app/controllers/studip_controller.php
rename to lib/classes/StudipController.php
index 9e238a1c7b4..ae316c1b835 100644
--- a/app/controllers/studip_controller.php
+++ b/lib/classes/StudipController.php
@@ -1,6 +1,6 @@
 <?php
 /*
- * studip_controller.php - studip controller base class
+ * StudipController.php - studip controller base class
  * Copyright (c) 2009  Elmar Ludwig
  *
  * This program is free software; you can redistribute it and/or
@@ -13,9 +13,6 @@ use PhpOffice\PhpSpreadsheet\Spreadsheet;
 use PhpOffice\PhpSpreadsheet\Writer\Csv;
 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
-require_once 'studip_controller_properties_trait.php';
-require_once 'studip_response.php';
-
 /**
  * @property StudipResponse $response
  */
diff --git a/app/controllers/studip_controller_properties_trait.php b/lib/classes/StudipControllerPropertiesTrait.php
similarity index 100%
rename from app/controllers/studip_controller_properties_trait.php
rename to lib/classes/StudipControllerPropertiesTrait.php
diff --git a/app/controllers/studip_response.php b/lib/classes/StudipResponse.php
similarity index 100%
rename from app/controllers/studip_response.php
rename to lib/classes/StudipResponse.php
diff --git a/tests/unit/_bootstrap.php b/tests/unit/_bootstrap.php
index 221611134b3..e5299a6df17 100644
--- a/tests/unit/_bootstrap.php
+++ b/tests/unit/_bootstrap.php
@@ -60,7 +60,6 @@ StudipAutoloader::addAutoloadPath('lib/plugins/engine');
 StudipAutoloader::addAutoloadPath('lib/plugins/core');
 StudipAutoloader::addAutoloadPath('lib/plugins/db');
 
-StudipAutoloader::addClassLookup('StudipController', 'app/controllers/studip_controller.php');
 $trails_classes = [
     'Trails_Dispatcher', 'Trails_Response', 'Trails_Controller',
     'Trails_Inflector', 'Trails_Flash',
-- 
GitLab