diff --git a/module/common/model.php b/module/common/model.php index 5c63f90629..8d51d70f07 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1503,15 +1503,16 @@ EOD; } if(empty($app->user->rights['rights']['my']['limited']) && !$limitedProject) return true; - if(!is_null($method) && strpos($method, 'batch') === 0) return false; - if(!is_null($method) && strpos($method, 'link') === 0) return false; - if(!is_null($method) && strpos($method, 'create') === 0) return false; - if(!is_null($method) && strpos($method, 'import') === 0) return false; + if(!empty($method) && strpos($method, 'batch') === 0) return false; + if(!empty($method) && strpos($method, 'link') === 0) return false; + if(!empty($method) && strpos($method, 'create') === 0) return false; + if(!empty($method) && strpos($method, 'import') === 0) return false; - if(is_null($object)) return true; + if(empty($object)) return true; - if(!empty($object->openedBy) && $object->openedBy == $app->user->account or + if(!empty($object->openedBy) && $object->openedBy == $app->user->account or !empty($object->addedBy) && $object->addedBy == $app->user->account or + !empty($object->account) && $object->account == $app->user->account or !empty($object->assignedTo) && $object->assignedTo == $app->user->account or !empty($object->finishedBy) && $object->finishedBy == $app->user->account or !empty($object->canceledBy) && $object->canceledBy == $app->user->account or diff --git a/module/project/model.php b/module/project/model.php index 1595b63b78..c9c9a91d00 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -2555,35 +2555,48 @@ class projectModel extends model public function getKanbanStatusMap($kanbanSetting) { $statusMap = array(); - $statusMap['task']['wait']['doing'] = 'start'; - $statusMap['task']['wait']['done'] = 'finish'; - $statusMap['task']['wait']['cancel'] = 'cancel'; + if(common::hasPriv('task', 'start')) $statusMap['task']['wait']['doing'] = 'start'; + if(common::hasPriv('task', 'pause')) $statusMap['task']['doing']['pause'] = 'pause'; + if(common::hasPriv('task', 'finish')) + { + $statusMap['task']['wait']['done'] = 'finish'; + $statusMap['task']['doing']['done'] = 'finish'; + $statusMap['task']['pause']['done'] = 'finish'; + } + if(common::hasPriv('task', 'cancel')) + { + $statusMap['task']['wait']['cancel'] = 'cancel'; + $statusMap['task']['pause']['cancel'] = 'cancel'; + } + if(common::hasPriv('task', 'activate')) + { + $statusMap['task']['pause']['doing'] = 'activate'; + $statusMap['task']['done']['doing'] = 'activate'; + $statusMap['task']['cancel']['doing'] = 'activate'; + $statusMap['task']['closed']['doing'] = 'activate'; + } + if(common::hasPriv('task', 'close')) + { + $statusMap['task']['done']['closed'] = 'close'; + $statusMap['task']['cancel']['closed'] = 'close'; + } - $statusMap['task']['doing']['done'] = 'finish'; - $statusMap['task']['doing']['pause'] = 'pause'; - - $statusMap['task']['pause']['doing'] = 'activate'; - $statusMap['task']['pause']['done'] = 'finish'; - $statusMap['task']['pause']['cancel'] = 'cancel'; - - $statusMap['task']['done']['doing'] = 'activate'; - $statusMap['task']['done']['closed'] = 'close'; - - $statusMap['task']['cancel']['doing'] = 'activate'; - $statusMap['task']['cancel']['closed'] = 'close'; - - $statusMap['task']['closed']['doing'] = 'activate'; - - $statusMap['bug']['wait']['done'] = 'resolve'; - $statusMap['bug']['wait']['cancel'] = 'resolve'; - - $statusMap['bug']['done']['wait'] = 'activate'; - $statusMap['bug']['done']['closed'] = 'close'; - - $statusMap['bug']['cancel']['wait'] = 'activate'; - $statusMap['bug']['cancel']['closed'] = 'close'; - - $statusMap['bug']['closed']['wait'] = 'activate'; + if(common::hasPriv('bug', 'resolve')) + { + $statusMap['bug']['wait']['done'] = 'resolve'; + $statusMap['bug']['wait']['cancel'] = 'resolve'; + } + if(common::hasPriv('bug', 'close')) + { + $statusMap['bug']['done']['closed'] = 'close'; + $statusMap['bug']['cancel']['closed'] = 'close'; + } + if(common::hasPriv('bug', 'activate')) + { + $statusMap['bug']['done']['wait'] = 'activate'; + $statusMap['bug']['cancel']['wait'] = 'activate'; + $statusMap['bug']['closed']['wait'] = 'activate'; + } return $statusMap; } diff --git a/module/project/view/kanban.html.php b/module/project/view/kanban.html.php index 9316fc8948..a270ea5ffc 100644 --- a/module/project/view/kanban.html.php +++ b/module/project/view/kanban.html.php @@ -109,7 +109,16 @@
- createLink('story', 'view', "storyID=$story->id", '', true), $story->title, '', 'class="kanbaniframe group-title" title="' . $story->title . '"');?> + createLink('story', 'view', "storyID=$story->id", '', true), $story->title, '', 'class="kanbaniframe group-title" title="' . $story->title . '"'); + } + else + { + echo "{$story->title}"; + } + ?>