- check if calender app is enabled or fall back to a plain redirect
This commit is contained in:
1 parent
828feb753a
commit
de814e9530
1 file changed
+10
-4
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user