- check if calender app is enabled or fall back to a plain redirect

This commit is contained in:
stefan.tollkuehn committed 2026-10-08 13:32:10 +02:00
1 parent 828feb753a
commit de814e9530
1 file changed
+10 -4
+10 -4
View File
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace OCA\AToCal\Controller; namespace OCA\AToCal\Controller;
use OCA\AToCal\AppInfo\Application; use OCA\AToCal\AppInfo\Application;
use OCP\App\IAppManager;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\Attribute\NoAdminRequired;
@@ -49,6 +50,7 @@ class CalendarController extends Controller
private const MAX_EMAIL_LENGTH = 254; private const MAX_EMAIL_LENGTH = 254;
private IManager $calendarManager; private IManager $calendarManager;
private IAppManager $appManager;
private IUserSession $userSession; private IUserSession $userSession;
private IURLGenerator $urlGenerator; private IURLGenerator $urlGenerator;
private IDateTimeZone $dateTimeZone; private IDateTimeZone $dateTimeZone;
@@ -57,6 +59,7 @@ class CalendarController extends Controller
string $appName, string $appName,
IRequest $request, IRequest $request,
IManager $calendarManager, IManager $calendarManager,
IAppManager $appManager,
IUserSession $userSession, IUserSession $userSession,
IURLGenerator $urlGenerator, IURLGenerator $urlGenerator,
IDateTimeZone $dateTimeZone IDateTimeZone $dateTimeZone
@@ -64,6 +67,7 @@ class CalendarController extends Controller
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->calendarManager = $calendarManager; $this->calendarManager = $calendarManager;
$this->appManager = $appManager;
$this->userSession = $userSession; $this->userSession = $userSession;
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->dateTimeZone = $dateTimeZone; $this->dateTimeZone = $dateTimeZone;
@@ -182,11 +186,13 @@ class CalendarController extends Controller
$this->createEvent($calendar, $data); $this->createEvent($calendar, $data);
/* /*
* Open the Nextcloud Calendar application. * Open the Nextcloud Calendar application if enabled,
* otherwise the Nextcloud start page. linkToRoute()
* would throw for a disabled Calendar app.
*/ */
$calendarUrl = $this->urlGenerator->linkToRoute( $calendarUrl = $this->appManager->isEnabledForUser('calendar', $user)
'calendar.view.index' ? $this->urlGenerator->linkToRoute('calendar.view.index')
); : $this->urlGenerator->getAbsoluteURL('/');
return new RedirectResponse($calendarUrl); return new RedirectResponse($calendarUrl);
} }