diff options
Diffstat (limited to 'application/legacy')
-rw-r--r-- | application/legacy/LegacyController.php | 162 | ||||
-rw-r--r-- | application/legacy/LegacyLinkDB.php | 6 | ||||
-rw-r--r-- | application/legacy/LegacyRouter.php | 63 | ||||
-rw-r--r-- | application/legacy/LegacyUpdater.php | 7 | ||||
-rw-r--r-- | application/legacy/UnknowLegacyRouteException.php | 9 |
5 files changed, 242 insertions, 5 deletions
diff --git a/application/legacy/LegacyController.php b/application/legacy/LegacyController.php new file mode 100644 index 00000000..826604e7 --- /dev/null +++ b/application/legacy/LegacyController.php | |||
@@ -0,0 +1,162 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Shaarli\Legacy; | ||
6 | |||
7 | use Shaarli\Feed\FeedBuilder; | ||
8 | use Shaarli\Front\Controller\Visitor\ShaarliVisitorController; | ||
9 | use Slim\Http\Request; | ||
10 | use Slim\Http\Response; | ||
11 | |||
12 | /** | ||
13 | * We use this to maintain legacy routes, and redirect requests to the corresponding Slim route. | ||
14 | * Only public routes, and both `?addlink` and `?post` were kept here. | ||
15 | * Other routes will just display the linklist. | ||
16 | * | ||
17 | * @deprecated | ||
18 | */ | ||
19 | class LegacyController extends ShaarliVisitorController | ||
20 | { | ||
21 | /** @var string[] Both `?post` and `?addlink` do not use `?do=` format. */ | ||
22 | public const LEGACY_GET_ROUTES = [ | ||
23 | 'post', | ||
24 | 'addlink', | ||
25 | ]; | ||
26 | |||
27 | /** | ||
28 | * This method will call `$action` method, which will redirect to corresponding Slim route. | ||
29 | */ | ||
30 | public function process(Request $request, Response $response, string $action): Response | ||
31 | { | ||
32 | if (!method_exists($this, $action)) { | ||
33 | throw new UnknowLegacyRouteException(); | ||
34 | } | ||
35 | |||
36 | return $this->{$action}($request, $response); | ||
37 | } | ||
38 | |||
39 | /** Legacy route: ?post= */ | ||
40 | public function post(Request $request, Response $response): Response | ||
41 | { | ||
42 | $route = '/admin/shaare'; | ||
43 | $buildParameters = function (?array $parameters, bool $encode) { | ||
44 | if ($encode) { | ||
45 | $parameters = array_map('urlencode', $parameters); | ||
46 | } | ||
47 | |||
48 | return count($parameters) > 0 ? '?' . http_build_query($parameters) : ''; | ||
49 | }; | ||
50 | |||
51 | |||
52 | if (!$this->container->loginManager->isLoggedIn()) { | ||
53 | $parameters = $buildParameters($request->getQueryParams(), true); | ||
54 | return $this->redirect($response, '/login?returnurl='. $this->getBasePath() . $route . $parameters); | ||
55 | } | ||
56 | |||
57 | $parameters = $buildParameters($request->getQueryParams(), false); | ||
58 | |||
59 | return $this->redirect($response, $route . $parameters); | ||
60 | } | ||
61 | |||
62 | /** Legacy route: ?addlink= */ | ||
63 | protected function addlink(Request $request, Response $response): Response | ||
64 | { | ||
65 | $route = '/admin/add-shaare'; | ||
66 | |||
67 | if (!$this->container->loginManager->isLoggedIn()) { | ||
68 | return $this->redirect($response, '/login?returnurl=' . $this->getBasePath() . $route); | ||
69 | } | ||
70 | |||
71 | return $this->redirect($response, $route); | ||
72 | } | ||
73 | |||
74 | /** Legacy route: ?do=login */ | ||
75 | protected function login(Request $request, Response $response): Response | ||
76 | { | ||
77 | $returnUrl = $request->getQueryParam('returnurl'); | ||
78 | |||
79 | return $this->redirect($response, '/login' . ($returnUrl ? '?returnurl=' . $returnUrl : '')); | ||
80 | } | ||
81 | |||
82 | /** Legacy route: ?do=logout */ | ||
83 | protected function logout(Request $request, Response $response): Response | ||
84 | { | ||
85 | return $this->redirect($response, '/admin/logout'); | ||
86 | } | ||
87 | |||
88 | /** Legacy route: ?do=picwall */ | ||
89 | protected function picwall(Request $request, Response $response): Response | ||
90 | { | ||
91 | return $this->redirect($response, '/picture-wall'); | ||
92 | } | ||
93 | |||
94 | /** Legacy route: ?do=tagcloud */ | ||
95 | protected function tagcloud(Request $request, Response $response): Response | ||
96 | { | ||
97 | return $this->redirect($response, '/tags/cloud'); | ||
98 | } | ||
99 | |||
100 | /** Legacy route: ?do=taglist */ | ||
101 | protected function taglist(Request $request, Response $response): Response | ||
102 | { | ||
103 | return $this->redirect($response, '/tags/list'); | ||
104 | } | ||
105 | |||
106 | /** Legacy route: ?do=daily */ | ||
107 | protected function daily(Request $request, Response $response): Response | ||
108 | { | ||
109 | $dayParam = !empty($request->getParam('day')) ? '?day=' . escape($request->getParam('day')) : ''; | ||
110 | |||
111 | return $this->redirect($response, '/daily' . $dayParam); | ||
112 | } | ||
113 | |||
114 | /** Legacy route: ?do=rss */ | ||
115 | protected function rss(Request $request, Response $response): Response | ||
116 | { | ||
117 | return $this->feed($request, $response, FeedBuilder::$FEED_RSS); | ||
118 | } | ||
119 | |||
120 | /** Legacy route: ?do=atom */ | ||
121 | protected function atom(Request $request, Response $response): Response | ||
122 | { | ||
123 | return $this->feed($request, $response, FeedBuilder::$FEED_ATOM); | ||
124 | } | ||
125 | |||
126 | /** Legacy route: ?do=opensearch */ | ||
127 | protected function opensearch(Request $request, Response $response): Response | ||
128 | { | ||
129 | return $this->redirect($response, '/open-search'); | ||
130 | } | ||
131 | |||
132 | /** Legacy route: ?do=dailyrss */ | ||
133 | protected function dailyrss(Request $request, Response $response): Response | ||
134 | { | ||
135 | return $this->redirect($response, '/daily-rss'); | ||
136 | } | ||
137 | |||
138 | /** Legacy route: ?do=feed */ | ||
139 | protected function feed(Request $request, Response $response, string $feedType): Response | ||
140 | { | ||
141 | $parameters = count($request->getQueryParams()) > 0 ? '?' . http_build_query($request->getQueryParams()) : ''; | ||
142 | |||
143 | return $this->redirect($response, '/feed/' . $feedType . $parameters); | ||
144 | } | ||
145 | |||
146 | /** Legacy route: ?do=configure */ | ||
147 | protected function configure(Request $request, Response $response): Response | ||
148 | { | ||
149 | $route = '/admin/configure'; | ||
150 | |||
151 | if (!$this->container->loginManager->isLoggedIn()) { | ||
152 | return $this->redirect($response, '/login?returnurl=' . $this->getBasePath() . $route); | ||
153 | } | ||
154 | |||
155 | return $this->redirect($response, $route); | ||
156 | } | ||
157 | |||
158 | protected function getBasePath(): string | ||
159 | { | ||
160 | return $this->container->basePath ?: ''; | ||
161 | } | ||
162 | } | ||
diff --git a/application/legacy/LegacyLinkDB.php b/application/legacy/LegacyLinkDB.php index 7ccf5e54..5c02a21b 100644 --- a/application/legacy/LegacyLinkDB.php +++ b/application/legacy/LegacyLinkDB.php | |||
@@ -8,7 +8,8 @@ use DateTime; | |||
8 | use Iterator; | 8 | use Iterator; |
9 | use Shaarli\Bookmark\Exception\BookmarkNotFoundException; | 9 | use Shaarli\Bookmark\Exception\BookmarkNotFoundException; |
10 | use Shaarli\Exceptions\IOException; | 10 | use Shaarli\Exceptions\IOException; |
11 | use Shaarli\FileUtils; | 11 | use Shaarli\Helper\FileUtils; |
12 | use Shaarli\Render\PageCacheManager; | ||
12 | 13 | ||
13 | /** | 14 | /** |
14 | * Data storage for bookmarks. | 15 | * Data storage for bookmarks. |
@@ -352,7 +353,8 @@ You use the community supported version of the original Shaarli project, by Seba | |||
352 | 353 | ||
353 | $this->write(); | 354 | $this->write(); |
354 | 355 | ||
355 | invalidateCaches($pageCacheDir); | 356 | $pageCacheManager = new PageCacheManager($pageCacheDir, $this->loggedIn); |
357 | $pageCacheManager->invalidateCaches(); | ||
356 | } | 358 | } |
357 | 359 | ||
358 | /** | 360 | /** |
diff --git a/application/legacy/LegacyRouter.php b/application/legacy/LegacyRouter.php new file mode 100644 index 00000000..0449c7e1 --- /dev/null +++ b/application/legacy/LegacyRouter.php | |||
@@ -0,0 +1,63 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Shaarli\Legacy; | ||
4 | |||
5 | /** | ||
6 | * Class Router | ||
7 | * | ||
8 | * (only displayable pages here) | ||
9 | * | ||
10 | * @deprecated | ||
11 | */ | ||
12 | class LegacyRouter | ||
13 | { | ||
14 | public static $AJAX_THUMB_UPDATE = 'ajax_thumb_update'; | ||
15 | |||
16 | public static $PAGE_LOGIN = 'login'; | ||
17 | |||
18 | public static $PAGE_PICWALL = 'picwall'; | ||
19 | |||
20 | public static $PAGE_TAGCLOUD = 'tag.cloud'; | ||
21 | |||
22 | public static $PAGE_TAGLIST = 'tag.list'; | ||
23 | |||
24 | public static $PAGE_DAILY = 'daily'; | ||
25 | |||
26 | public static $PAGE_FEED_ATOM = 'feed.atom'; | ||
27 | |||
28 | public static $PAGE_FEED_RSS = 'feed.rss'; | ||
29 | |||
30 | public static $PAGE_TOOLS = 'tools'; | ||
31 | |||
32 | public static $PAGE_CHANGEPASSWORD = 'changepasswd'; | ||
33 | |||
34 | public static $PAGE_CONFIGURE = 'configure'; | ||
35 | |||
36 | public static $PAGE_CHANGETAG = 'changetag'; | ||
37 | |||
38 | public static $PAGE_ADDLINK = 'addlink'; | ||
39 | |||
40 | public static $PAGE_EDITLINK = 'editlink'; | ||
41 | |||
42 | public static $PAGE_DELETELINK = 'delete_link'; | ||
43 | |||
44 | public static $PAGE_CHANGE_VISIBILITY = 'change_visibility'; | ||
45 | |||
46 | public static $PAGE_PINLINK = 'pin'; | ||
47 | |||
48 | public static $PAGE_EXPORT = 'export'; | ||
49 | |||
50 | public static $PAGE_IMPORT = 'import'; | ||
51 | |||
52 | public static $PAGE_OPENSEARCH = 'opensearch'; | ||
53 | |||
54 | public static $PAGE_LINKLIST = 'linklist'; | ||
55 | |||
56 | public static $PAGE_PLUGINSADMIN = 'pluginadmin'; | ||
57 | |||
58 | public static $PAGE_SAVE_PLUGINSADMIN = 'save_pluginadmin'; | ||
59 | |||
60 | public static $PAGE_THUMBS_UPDATE = 'thumbs_update'; | ||
61 | |||
62 | public static $GET_TOKEN = 'token'; | ||
63 | } | ||
diff --git a/application/legacy/LegacyUpdater.php b/application/legacy/LegacyUpdater.php index 3a5de79f..fe1a286f 100644 --- a/application/legacy/LegacyUpdater.php +++ b/application/legacy/LegacyUpdater.php | |||
@@ -7,16 +7,16 @@ use RainTPL; | |||
7 | use ReflectionClass; | 7 | use ReflectionClass; |
8 | use ReflectionException; | 8 | use ReflectionException; |
9 | use ReflectionMethod; | 9 | use ReflectionMethod; |
10 | use Shaarli\ApplicationUtils; | ||
11 | use Shaarli\Bookmark\Bookmark; | 10 | use Shaarli\Bookmark\Bookmark; |
12 | use Shaarli\Bookmark\BookmarkArray; | 11 | use Shaarli\Bookmark\BookmarkArray; |
13 | use Shaarli\Bookmark\LinkDB; | ||
14 | use Shaarli\Bookmark\BookmarkFilter; | 12 | use Shaarli\Bookmark\BookmarkFilter; |
15 | use Shaarli\Bookmark\BookmarkIO; | 13 | use Shaarli\Bookmark\BookmarkIO; |
14 | use Shaarli\Bookmark\LinkDB; | ||
16 | use Shaarli\Config\ConfigJson; | 15 | use Shaarli\Config\ConfigJson; |
17 | use Shaarli\Config\ConfigManager; | 16 | use Shaarli\Config\ConfigManager; |
18 | use Shaarli\Config\ConfigPhp; | 17 | use Shaarli\Config\ConfigPhp; |
19 | use Shaarli\Exceptions\IOException; | 18 | use Shaarli\Exceptions\IOException; |
19 | use Shaarli\Helper\ApplicationUtils; | ||
20 | use Shaarli\Thumbnailer; | 20 | use Shaarli\Thumbnailer; |
21 | use Shaarli\Updater\Exception\UpdaterException; | 21 | use Shaarli\Updater\Exception\UpdaterException; |
22 | 22 | ||
@@ -534,7 +534,8 @@ class LegacyUpdater | |||
534 | 534 | ||
535 | if ($thumbnailsEnabled) { | 535 | if ($thumbnailsEnabled) { |
536 | $this->session['warnings'][] = t( | 536 | $this->session['warnings'][] = t( |
537 | 'You have enabled or changed thumbnails mode. <a href="?do=thumbs_update">Please synchronize them</a>.' | 537 | t('You have enabled or changed thumbnails mode.') . |
538 | '<a href="./admin/thumbnails">' . t('Please synchronize them.') . '</a>' | ||
538 | ); | 539 | ); |
539 | } | 540 | } |
540 | 541 | ||
diff --git a/application/legacy/UnknowLegacyRouteException.php b/application/legacy/UnknowLegacyRouteException.php new file mode 100644 index 00000000..ae1518ad --- /dev/null +++ b/application/legacy/UnknowLegacyRouteException.php | |||
@@ -0,0 +1,9 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Shaarli\Legacy; | ||
6 | |||
7 | class UnknowLegacyRouteException extends \Exception | ||
8 | { | ||
9 | } | ||