Add public view for tasks

This commit is contained in:
Frédéric Guillot
2014-09-08 23:19:40 +02:00
parent 8c6df9ef0c
commit e383c069f1
16 changed files with 243 additions and 176 deletions

View File

@@ -140,20 +140,28 @@ abstract class Base
* Application not found page (404 error)
*
* @access public
* @param boolean $no_layout Display the layout or not
*/
public function notfound()
public function notfound($no_layout = false)
{
$this->response->html($this->template->layout('app_notfound', array('title' => t('Page not found'))));
$this->response->html($this->template->layout('app_notfound', array(
'title' => t('Page not found'),
'no_layout' => $no_layout,
)));
}
/**
* Application forbidden page
*
* @access public
* @param boolean $no_layout Display the layout or not
*/
public function forbidden()
public function forbidden($no_layout = false)
{
$this->response->html($this->template->layout('app_forbidden', array('title' => t('Access Forbidden'))));
$this->response->html($this->template->layout('app_forbidden', array(
'title' => t('Access Forbidden'),
'no_layout' => $no_layout,
)));
}
/**

View File

@@ -167,7 +167,7 @@ class Board extends Base
// Token verification
if (! $project) {
$this->response->text('Not Authorized', 401);
$this->forbidden(true);
}
// Display the board with a specific layout

View File

@@ -25,25 +25,15 @@ class Comment extends Base
}
if (! $this->acl->isAdminUser() && $comment['user_id'] != $this->acl->getUserId()) {
$this->forbidden();
$this->response->html($this->template->layout('comment_forbidden', array(
'menu' => 'tasks',
'title' => t('Access Forbidden')
)));
}
return $comment;
}
/**
* Forbidden page for comments
*
* @access public
*/
public function forbidden()
{
$this->response->html($this->template->layout('comment_forbidden', array(
'menu' => 'tasks',
'title' => t('Access Forbidden')
)));
}
/**
* Add comment form
*

View File

@@ -46,6 +46,39 @@ class Task extends Base
$this->response->text('FAILED');
}
/**
* Public access (display a task)
*
* @access public
*/
public function readonly()
{
$project = $this->project->getByToken($this->request->getStringParam('token'));
// Token verification
if (! $project) {
$this->forbidden(true);
}
$task = $this->task->getById($this->request->getIntegerParam('task_id'), true);
if (! $task) {
$this->notfound(true);
}
$this->response->html($this->template->layout('task_public', array(
'project' => $project,
'comments' => $this->comment->getAll($task['id']),
'subtasks' => $this->subTask->getAll($task['id']),
'task' => $task,
'columns_list' => $this->board->getColumnsList($task['project_id']),
'colors_list' => $this->task->getColors(),
'title' => $task['title'],
'no_layout' => true,
'auto_refresh' => true,
)));
}
/**
* Show a task
*
@@ -56,6 +89,7 @@ class Task extends Base
$task = $this->getTask();
$this->response->html($this->taskLayout('task_show', array(
'project' => $this->project->getById($task['project_id']),
'files' => $this->file->getAll($task['id']),
'comments' => $this->comment->getAll($task['id']),
'subtasks' => $this->subTask->getAll($task['id']),