Add external links for tasks with plugin api

This commit is contained in:
Frederic Guillot
2016-01-30 20:38:20 -05:00
parent ec66a779c9
commit 5c92f46786
81 changed files with 2544 additions and 75 deletions

View File

@@ -89,6 +89,9 @@ class AuthenticationProvider implements ServiceProviderInterface
$acl->add('Taskduplication', '*', Role::PROJECT_MEMBER);
$acl->add('TaskImport', '*', Role::PROJECT_MANAGER);
$acl->add('Tasklink', '*', Role::PROJECT_MEMBER);
$acl->add('Tasklink', array('show'), Role::PROJECT_VIEWER);
$acl->add('TaskExternalLink', '*', Role::PROJECT_MEMBER);
$acl->add('TaskExternalLink', array('show'), Role::PROJECT_VIEWER);
$acl->add('Taskmodification', '*', Role::PROJECT_MEMBER);
$acl->add('Taskstatus', '*', Role::PROJECT_MEMBER);
$acl->add('Timer', '*', Role::PROJECT_MEMBER);

View File

@@ -61,6 +61,7 @@ class ClassProvider implements ServiceProviderInterface
'TaskCreation',
'TaskDuplication',
'TaskExport',
'TaskExternalLink',
'TaskFinder',
'TaskFilter',
'TaskLink',
@@ -97,6 +98,7 @@ class ClassProvider implements ServiceProviderInterface
'CommentValidator',
'CurrencyValidator',
'CustomFilterValidator',
'ExternalLinkValidator',
'GroupValidator',
'LinkValidator',
'PasswordResetValidator',

View File

@@ -0,0 +1,34 @@
<?php
namespace Kanboard\ServiceProvider;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
use Kanboard\Core\ExternalLink\ExternalLinkManager;
use Kanboard\ExternalLink\WebLinkProvider;
use Kanboard\ExternalLink\AttachmentLinkProvider;
/**
* External Link Provider
*
* @package serviceProvider
* @author Frederic Guillot
*/
class ExternalLinkProvider implements ServiceProviderInterface
{
/**
* Register providers
*
* @access public
* @param \Pimple\Container $container
* @return \Pimple\Container
*/
public function register(Container $container)
{
$container['externalLinkManager'] = new ExternalLinkManager($container);
$container['externalLinkManager']->register(new WebLinkProvider($container));
$container['externalLinkManager']->register(new AttachmentLinkProvider($container));
return $container;
}
}

View File

@@ -106,11 +106,18 @@ class RouteProvider implements ServiceProviderInterface
$container['route']->addRoute('project/:project_id/task/:task_id/screenshot', 'file', 'screenshot');
$container['route']->addRoute('project/:project_id/task/:task_id/upload', 'file', 'create');
$container['route']->addRoute('project/:project_id/task/:task_id/comment', 'comment', 'create');
$container['route']->addRoute('project/:project_id/task/:task_id/links', 'tasklink', 'show');
$container['route']->addRoute('project/:project_id/task/:task_id/link', 'tasklink', 'create');
$container['route']->addRoute('project/:project_id/task/:task_id/transitions', 'task', 'transitions');
$container['route']->addRoute('project/:project_id/task/:task_id/analytics', 'task', 'analytics');
$container['route']->addRoute('project/:project_id/task/:task_id/remove', 'task', 'remove');
$container['route']->addRoute('project/:project_id/task/:task_id/links/external', 'TaskExternalLink', 'show');
$container['route']->addRoute('project/:project_id/task/:task_id/link/external/new', 'TaskExternalLink', 'find');
$container['route']->addRoute('project/:project_id/task/:task_id/link/external/save', 'TaskExternalLink', 'create');
$container['route']->addRoute('project/:project_id/task/:task_id/link/external/:link_id', 'TaskExternalLink', 'edit');
$container['route']->addRoute('project/:project_id/task/:task_id/link/external/:link_id/remove', 'TaskExternalLink', 'confirm');
$container['route']->addRoute('project/:project_id/task/:task_id/edit', 'taskmodification', 'edit');
$container['route']->addRoute('project/:project_id/task/:task_id/description', 'taskmodification', 'description');
$container['route']->addRoute('project/:project_id/task/:task_id/recurrence', 'taskmodification', 'recurrence');