From 5dae1e2e8397e6a374b16ff391719e1767ba4250 Mon Sep 17 00:00:00 2001 From: Miodrag Tokić Date: Mon, 4 Jun 2018 14:50:17 +0200 Subject: Run cron jobs via URL Kanboard supports running cron jobs via CLI. There are hosting services that don't offer CLI access, but they do offer calling a URL periodically. This feature is often used as a CLI cron job replacement. This commit adds a CronjobController called by "/cronjob" URL that will execute cron jobs as they were executed via CLI. The URL has public access, but is protected using the webhook token. The "/cronjob" URL should be called via HTTPS. --- app/ServiceProvider/AuthenticationProvider.php | 1 + app/ServiceProvider/RouteProvider.php | 3 +++ 2 files changed, 4 insertions(+) (limited to 'app/ServiceProvider') diff --git a/app/ServiceProvider/AuthenticationProvider.php b/app/ServiceProvider/AuthenticationProvider.php index 9cb437ac..40a62971 100644 --- a/app/ServiceProvider/AuthenticationProvider.php +++ b/app/ServiceProvider/AuthenticationProvider.php @@ -143,6 +143,7 @@ class AuthenticationProvider implements ServiceProviderInterface $acl->add('FeedController', '*', Role::APP_PUBLIC); $acl->add('AvatarFileController', array('show', 'image'), Role::APP_PUBLIC); $acl->add('UserInviteController', array('signup', 'register'), Role::APP_PUBLIC); + $acl->add('CronjobController', array('run'), Role::APP_PUBLIC); $acl->add('ConfigController', '*', Role::APP_ADMIN); $acl->add('TagController', '*', Role::APP_ADMIN); diff --git a/app/ServiceProvider/RouteProvider.php b/app/ServiceProvider/RouteProvider.php index 5b9eca98..66942188 100644 --- a/app/ServiceProvider/RouteProvider.php +++ b/app/ServiceProvider/RouteProvider.php @@ -180,6 +180,9 @@ class RouteProvider implements ServiceProviderInterface // PasswordReset $container['route']->addRoute('forgot-password', 'PasswordResetController', 'create'); $container['route']->addRoute('forgot-password/change/:token', 'PasswordResetController', 'change'); + + // Cronjob + $container['route']->addRoute('cronjob', 'CronjobController', 'run'); } return $container; -- cgit v1.2.3