diff options
Diffstat (limited to 'app/ServiceProvider')
-rw-r--r-- | app/ServiceProvider/AuthenticationProvider.php | 22 | ||||
-rw-r--r-- | app/ServiceProvider/ClassProvider.php | 1 | ||||
-rw-r--r-- | app/ServiceProvider/CommandProvider.php | 2 | ||||
-rw-r--r-- | app/ServiceProvider/FilterProvider.php | 4 | ||||
-rw-r--r-- | app/ServiceProvider/FormatterProvider.php | 48 | ||||
-rw-r--r-- | app/ServiceProvider/HelperProvider.php | 1 | ||||
-rw-r--r-- | app/ServiceProvider/RouteProvider.php | 5 |
7 files changed, 68 insertions, 15 deletions
diff --git a/app/ServiceProvider/AuthenticationProvider.php b/app/ServiceProvider/AuthenticationProvider.php index 80882456..6a9a820e 100644 --- a/app/ServiceProvider/AuthenticationProvider.php +++ b/app/ServiceProvider/AuthenticationProvider.php @@ -88,7 +88,6 @@ class AuthenticationProvider implements ServiceProviderInterface $acl->add('ExportController', '*', Role::PROJECT_MANAGER); $acl->add('TaskFileController', array('screenshot', 'create', 'save', 'remove', 'confirm'), Role::PROJECT_MEMBER); $acl->add('TaskGanttController', '*', Role::PROJECT_MANAGER); - $acl->add('TaskGanttCreationController', '*', Role::PROJECT_MANAGER); $acl->add('ProjectViewController', array('share', 'updateSharing', 'integrations', 'updateIntegrations', 'notifications', 'updateNotifications', 'duplicate', 'doDuplication'), Role::PROJECT_MANAGER); $acl->add('ProjectPermissionController', '*', Role::PROJECT_MANAGER); $acl->add('ProjectEditController', '*', Role::PROJECT_MANAGER); @@ -137,6 +136,7 @@ class AuthenticationProvider implements ServiceProviderInterface $acl->add('ICalendarController', '*', Role::APP_PUBLIC); $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('ConfigController', '*', Role::APP_ADMIN); $acl->add('TagController', '*', Role::APP_ADMIN); @@ -197,19 +197,19 @@ class AuthenticationProvider implements ServiceProviderInterface $acl->setRoleHierarchy(Role::PROJECT_MEMBER, array(Role::PROJECT_VIEWER)); $acl->add('ActionProcedure', array('removeAction', 'getActions', 'createAction'), Role::PROJECT_MANAGER); - $acl->add('CategoryProcedure', '*', Role::PROJECT_MANAGER); - $acl->add('ColumnProcedure', '*', Role::PROJECT_MANAGER); + $acl->add('CategoryProcedure', array('removeCategory', 'createCategory', 'updateCategory'), Role::PROJECT_MANAGER); + $acl->add('ColumnProcedure', array('updateColumn', 'addColumn', 'removeColumn', 'changeColumnPosition'), Role::PROJECT_MANAGER); $acl->add('CommentProcedure', array('removeComment', 'createComment', 'updateComment'), Role::PROJECT_MEMBER); - $acl->add('ProjectPermissionProcedure', '*', Role::PROJECT_MANAGER); + $acl->add('ProjectPermissionProcedure', array('addProjectUser', 'addProjectGroup', 'removeProjectUser', 'removeProjectGroup', 'changeProjectUserRole', 'changeProjectGroupRole'), Role::PROJECT_MANAGER); $acl->add('ProjectProcedure', array('updateProject', 'removeProject', 'enableProject', 'disableProject', 'enableProjectPublicAccess', 'disableProjectPublicAccess'), Role::PROJECT_MANAGER); - $acl->add('SubtaskProcedure', '*', Role::PROJECT_MEMBER); - $acl->add('SubtaskTimeTrackingProcedure', '*', Role::PROJECT_MEMBER); - $acl->add('SwimlaneProcedure', '*', Role::PROJECT_MANAGER); - $acl->add('ProjectFileProcedure', '*', Role::PROJECT_MEMBER); - $acl->add('TaskFileProcedure', '*', Role::PROJECT_MEMBER); - $acl->add('TaskLinkProcedure', '*', Role::PROJECT_MEMBER); + $acl->add('SubtaskProcedure', array('removeSubtask', 'createSubtask', 'updateSubtask'), Role::PROJECT_MEMBER); + $acl->add('SubtaskTimeTrackingProcedure', array('setSubtaskStartTime', 'setSubtaskEndTime'), Role::PROJECT_MEMBER); + $acl->add('SwimlaneProcedure', array('addSwimlane', 'updateSwimlane', 'removeSwimlane', 'disableSwimlane', 'enableSwimlane', 'changeSwimlanePosition'), Role::PROJECT_MANAGER); + $acl->add('ProjectFileProcedure', array('createProjectFile', 'removeProjectFile', 'removeAllProjectFiles'), Role::PROJECT_MEMBER); + $acl->add('TaskFileProcedure', array('createTaskFile', 'removeTaskFile', 'removeAllTaskFiles'), Role::PROJECT_MEMBER); + $acl->add('TaskLinkProcedure', array('createTaskLink', 'updateTaskLink', 'removeTaskLink'), Role::PROJECT_MEMBER); $acl->add('TaskExternalLinkProcedure', array('createExternalTaskLink', 'updateExternalTaskLink', 'removeExternalTaskLink'), Role::PROJECT_MEMBER); - $acl->add('TaskProcedure', '*', Role::PROJECT_MEMBER); + $acl->add('TaskProcedure', array('openTask', 'closeTask', 'removeTask', 'moveTaskPosition', 'moveTaskToProject', 'duplicateTaskToProject', 'createTask', 'updateTask'), Role::PROJECT_MEMBER); $acl->add('TaskTagProcedure', array('setTaskTags'), Role::PROJECT_MEMBER); $acl->add('TagProcedure', array('createTag', 'updateTag', 'removeTag'), Role::PROJECT_MEMBER); diff --git a/app/ServiceProvider/ClassProvider.php b/app/ServiceProvider/ClassProvider.php index 8d471b79..50ce531f 100644 --- a/app/ServiceProvider/ClassProvider.php +++ b/app/ServiceProvider/ClassProvider.php @@ -42,6 +42,7 @@ class ClassProvider implements ServiceProviderInterface 'CustomFilterModel', 'GroupModel', 'GroupMemberModel', + 'InviteModel', 'LanguageModel', 'LastLoginModel', 'LinkModel', diff --git a/app/ServiceProvider/CommandProvider.php b/app/ServiceProvider/CommandProvider.php index c9abb294..f17ba352 100644 --- a/app/ServiceProvider/CommandProvider.php +++ b/app/ServiceProvider/CommandProvider.php @@ -5,6 +5,7 @@ namespace Kanboard\ServiceProvider; use Kanboard\Console\CronjobCommand; use Kanboard\Console\DatabaseMigrationCommand; use Kanboard\Console\DatabaseVersionCommand; +use Kanboard\Console\JobCommand; use Kanboard\Console\LocaleComparatorCommand; use Kanboard\Console\LocaleSyncCommand; use Kanboard\Console\PluginInstallCommand; @@ -52,6 +53,7 @@ class CommandProvider implements ServiceProviderInterface $application->add(new TaskTriggerCommand($container)); $application->add(new CronjobCommand($container)); $application->add(new WorkerCommand($container)); + $application->add(new JobCommand($container)); $application->add(new ResetPasswordCommand($container)); $application->add(new ResetTwoFactorCommand($container)); $application->add(new PluginUpgradeCommand($container)); diff --git a/app/ServiceProvider/FilterProvider.php b/app/ServiceProvider/FilterProvider.php index 1684592b..1cc4da8a 100644 --- a/app/ServiceProvider/FilterProvider.php +++ b/app/ServiceProvider/FilterProvider.php @@ -14,6 +14,7 @@ use Kanboard\Filter\TaskCategoryFilter; use Kanboard\Filter\TaskColorFilter; use Kanboard\Filter\TaskColumnFilter; use Kanboard\Filter\TaskCommentFilter; +use Kanboard\Filter\TaskCompletionDateFilter; use Kanboard\Filter\TaskCreationDateFilter; use Kanboard\Filter\TaskCreatorFilter; use Kanboard\Filter\TaskDescriptionFilter; @@ -156,6 +157,9 @@ class FilterProvider implements ServiceProviderInterface ->withFilter(TaskStartDateFilter::getInstance() ->setDateParser($c['dateParser']) ) + ->withFilter(TaskCompletionDateFilter::getInstance() + ->setDateparser($c['dateParser']) + ) ->withFilter(new TaskIdFilter()) ->withFilter(TaskLinkFilter::getInstance() ->setDatabase($c['db']) diff --git a/app/ServiceProvider/FormatterProvider.php b/app/ServiceProvider/FormatterProvider.php new file mode 100644 index 00000000..dbba3f3c --- /dev/null +++ b/app/ServiceProvider/FormatterProvider.php @@ -0,0 +1,48 @@ +<?php + +namespace Kanboard\ServiceProvider; + +use Kanboard\Core\Tool; +use Pimple\Container; +use Pimple\ServiceProviderInterface; + +/** + * Class FormatterProvider + * + * @package Kanboard\ServiceProvider + * @author Frederic Guillot + */ +class FormatterProvider implements ServiceProviderInterface +{ + protected $formatters = array( + 'Formatter' => array( + 'BoardColumnFormatter', + 'BoardFormatter', + 'BoardSwimlaneFormatter', + 'BoardTaskFormatter', + 'GroupAutoCompleteFormatter', + 'ProjectActivityEventFormatter', + 'ProjectGanttFormatter', + 'SubtaskTimeTrackingCalendarFormatter', + 'TaskAutoCompleteFormatter', + 'TaskCalendarFormatter', + 'TaskGanttFormatter', + 'TaskICalFormatter', + 'TaskSuggestMenuFormatter', + 'UserAutoCompleteFormatter', + 'UserMentionFormatter', + ) + ); + + /** + * Registers services on the given container. + * + * @param Container $container + * @return Container + */ + public function register(Container $container) + { + Tool::buildFactories($container, $this->formatters); + return $container; + } +} diff --git a/app/ServiceProvider/HelperProvider.php b/app/ServiceProvider/HelperProvider.php index f4c0db22..dcaf81c6 100644 --- a/app/ServiceProvider/HelperProvider.php +++ b/app/ServiceProvider/HelperProvider.php @@ -39,6 +39,7 @@ class HelperProvider implements ServiceProviderInterface $container['helper']->register('projectHeader', '\Kanboard\Helper\ProjectHeaderHelper'); $container['helper']->register('projectActivity', '\Kanboard\Helper\ProjectActivityHelper'); $container['helper']->register('mail', '\Kanboard\Helper\MailHelper'); + $container['helper']->register('modal', '\Kanboard\Helper\ModalHelper'); $container['template'] = new Template($container['helper']); diff --git a/app/ServiceProvider/RouteProvider.php b/app/ServiceProvider/RouteProvider.php index 52687647..08759b22 100644 --- a/app/ServiceProvider/RouteProvider.php +++ b/app/ServiceProvider/RouteProvider.php @@ -65,10 +65,7 @@ class RouteProvider implements ServiceProviderInterface $container['route']->addRoute('project/:project_id/overview', 'ProjectOverviewController', 'show'); // ProjectEdit routes - $container['route']->addRoute('project/:project_id/edit', 'ProjectEditController', 'edit'); - $container['route']->addRoute('project/:project_id/edit/dates', 'ProjectEditController', 'dates'); - $container['route']->addRoute('project/:project_id/edit/description', 'ProjectEditController', 'description'); - $container['route']->addRoute('project/:project_id/edit/priority', 'ProjectEditController', 'priority'); + $container['route']->addRoute('project/:project_id/edit', 'ProjectEditController', 'show'); // ProjectUser routes $container['route']->addRoute('projects/managers/:user_id', 'ProjectUserOverviewController', 'managers'); |