Add project restriction for opening/closing tasks
This commit is contained in:
@@ -13,11 +13,16 @@ use Kanboard\Core\Base;
|
|||||||
class ProjectRoleRestrictionModel extends Base
|
class ProjectRoleRestrictionModel extends Base
|
||||||
{
|
{
|
||||||
const TABLE = 'project_role_has_restrictions';
|
const TABLE = 'project_role_has_restrictions';
|
||||||
const RULE_TASK_CREATION = 'task_creation';
|
|
||||||
|
const RULE_TASK_CREATION = 'task_creation';
|
||||||
|
const RULE_TASK_OPEN_CLOSE = 'task_open_close';
|
||||||
|
|
||||||
protected $ruleMapping = array(
|
protected $ruleMapping = array(
|
||||||
self::RULE_TASK_CREATION => array(
|
self::RULE_TASK_CREATION => array(
|
||||||
array('controller' => 'TaskCreationController', 'method' => '*'),
|
array('controller' => 'TaskCreationController', 'method' => '*'),
|
||||||
|
),
|
||||||
|
self::RULE_TASK_OPEN_CLOSE => array(
|
||||||
|
array('controller' => 'TaskStatusController', 'method' => '*'),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -29,7 +34,8 @@ class ProjectRoleRestrictionModel extends Base
|
|||||||
public function getRules()
|
public function getRules()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
self::RULE_TASK_CREATION => t('Task creation is not permitted'),
|
self::RULE_TASK_CREATION => t('Task creation is not permitted'),
|
||||||
|
self::RULE_TASK_OPEN_CLOSE => t('Closing or opening a task is not permitted'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
<?= $this->url->link(t('Remove'), 'TaskSuppressionController', 'confirm', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
<?= $this->url->link(t('Remove'), 'TaskSuppressionController', 'confirm', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
||||||
</li>
|
</li>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
<?php if (isset($task['is_active'])): ?>
|
<?php if (isset($task['is_active']) && $this->user->hasProjectAccess('TaskStatusController', 'close', $task['project_id'])): ?>
|
||||||
<li>
|
<li>
|
||||||
<?php if ($task['is_active'] == 1): ?>
|
<?php if ($task['is_active'] == 1): ?>
|
||||||
<i class="fa fa-times fa-fw"></i>
|
<i class="fa fa-times fa-fw"></i>
|
||||||
|
|||||||
@@ -78,20 +78,22 @@
|
|||||||
<i class="fa fa-clone fa-fw"></i>
|
<i class="fa fa-clone fa-fw"></i>
|
||||||
<?= $this->url->link(t('Move to another project'), 'TaskDuplicationController', 'move', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
<?= $this->url->link(t('Move to another project'), 'TaskDuplicationController', 'move', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
||||||
</li>
|
</li>
|
||||||
<?php if ($task['is_active'] == 1): ?>
|
<?php if ($this->user->hasProjectAccess('TaskStatusController', 'close', $task['project_id'])): ?>
|
||||||
<li>
|
<?php if ($task['is_active'] == 1): ?>
|
||||||
<i class="fa fa-arrows fa-fw"></i>
|
<li>
|
||||||
<?= $this->url->link(t('Move position'), 'TaskMovePositionController', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
<i class="fa fa-arrows fa-fw"></i>
|
||||||
</li>
|
<?= $this->url->link(t('Move position'), 'TaskMovePositionController', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
||||||
<li>
|
</li>
|
||||||
<i class="fa fa-times fa-fw"></i>
|
<li>
|
||||||
<?= $this->url->link(t('Close this task'), 'TaskStatusController', 'close', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
<i class="fa fa-times fa-fw"></i>
|
||||||
</li>
|
<?= $this->url->link(t('Close this task'), 'TaskStatusController', 'close', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
||||||
<?php else: ?>
|
</li>
|
||||||
<li>
|
<?php else: ?>
|
||||||
<i class="fa fa-check-square-o fa-fw"></i>
|
<li>
|
||||||
<?= $this->url->link(t('Open this task'), 'TaskStatusController', 'open', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
<i class="fa fa-check-square-o fa-fw"></i>
|
||||||
</li>
|
<?= $this->url->link(t('Open this task'), 'TaskStatusController', 'open', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
|
||||||
|
</li>
|
||||||
|
<?php endif ?>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
<?php if ($this->projectRole->canRemoveTask($task)): ?>
|
<?php if ($this->projectRole->canRemoveTask($task)): ?>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
Reference in New Issue
Block a user