File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed
wcfsetup/install/files/lib
system/endpoint/controller/core/labels Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -188,6 +188,7 @@ static function (\wcf\event\endpoint\ControllerCollecting $event) {
188188 $ event ->register (new \wcf \system \endpoint \controller \core \languages \EnableLanguage ());
189189 $ event ->register (new \wcf \system \endpoint \controller \core \languages \SetAsDefaultLanguage ());
190190 $ event ->register (new \wcf \system \endpoint \controller \core \languages \items \DeleteItem ());
191+ $ event ->register (new \wcf \system \endpoint \controller \core \labels \DeleteLabel ());
191192 $ event ->register (new \wcf \system \endpoint \controller \core \labels \groups \ChangeLabelShowOrder ());
192193 $ event ->register (new \wcf \system \endpoint \controller \core \labels \groups \ChangeShowOrder ());
193194 $ event ->register (new \wcf \system \endpoint \controller \core \labels \groups \DeleteGroup ());
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace wcf \system \endpoint \controller \core \labels ;
4+
5+ use Laminas \Diactoros \Response \JsonResponse ;
6+ use Psr \Http \Message \ResponseInterface ;
7+ use Psr \Http \Message \ServerRequestInterface ;
8+ use wcf \data \label \Label ;
9+ use wcf \data \label \LabelAction ;
10+ use wcf \http \Helper ;
11+ use wcf \system \endpoint \DeleteRequest ;
12+ use wcf \system \endpoint \IController ;
13+ use wcf \system \WCF ;
14+
15+ /**
16+ * API endpoint for deleting label.
17+ *
18+ * @author Olaf Braun
19+ * @copyright 2001-2025 WoltLab GmbH
20+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
21+ * @since 6.2
22+ */
23+ #[DeleteRequest("/core/labels/{id:\d+} " )]
24+ final class DeleteLabel implements IController
25+ {
26+ #[\Override]
27+ public function __invoke (ServerRequestInterface $ request , array $ variables ): ResponseInterface
28+ {
29+ $ label = Helper::fetchObjectFromRequestParameter ($ variables ['id ' ], Label::class);
30+
31+ $ this ->assertLabelCanBeDeleted ();
32+
33+ (new LabelAction ([$ label ], 'delete ' ))->executeAction ();
34+
35+ return new JsonResponse ([]);
36+ }
37+
38+ private function assertLabelCanBeDeleted (): void
39+ {
40+ WCF ::getSession ()->checkPermissions (['admin.content.label.canManageLabel ' ]);
41+ }
42+ }
You can’t perform that action at this time.
0 commit comments