summaryrefslogtreecommitdiff
path: root/app/Controller/Project.php
diff options
context:
space:
mode:
authorFrédéric Guillot <fred@kanboard.net>2014-12-31 12:37:15 -0500
committerFrédéric Guillot <fred@kanboard.net>2014-12-31 12:37:15 -0500
commit772804add8095eea9b3ec2a832c2f82fbb9a6fd5 (patch)
tree782a414d15f9091d04bcf3960a957f952958e548 /app/Controller/Project.php
parent66f150d887a34d2b51ff14f22d0fd41a34f8cc77 (diff)
Acl refactoring
Diffstat (limited to 'app/Controller/Project.php')
-rw-r--r--app/Controller/Project.php53
1 files changed, 25 insertions, 28 deletions
diff --git a/app/Controller/Project.php b/app/Controller/Project.php
index a7e8a39b..6079971a 100644
--- a/app/Controller/Project.php
+++ b/app/Controller/Project.php
@@ -17,7 +17,7 @@ class Project extends Base
*/
public function index()
{
- $projects = $this->project->getAll($this->acl->isRegularUser());
+ $projects = $this->project->getAll(! $this->userSession->isAdmin());
$nb_projects = count($projects);
$active_projects = array();
$inactive_projects = array();
@@ -32,7 +32,7 @@ class Project extends Base
}
$this->response->html($this->template->layout('project/index', array(
- 'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
+ 'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()),
'active_projects' => $active_projects,
'inactive_projects' => $inactive_projects,
'nb_projects' => $nb_projects,
@@ -63,7 +63,7 @@ class Project extends Base
*/
public function exportTasks()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$from = $this->request->getStringParam('from');
$to = $this->request->getStringParam('to');
@@ -96,7 +96,7 @@ class Project extends Base
*/
public function exportDailyProjectSummary()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$from = $this->request->getStringParam('from');
$to = $this->request->getStringParam('to');
@@ -129,7 +129,7 @@ class Project extends Base
*/
public function share()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$switch = $this->request->getStringParam('switch');
if ($switch === 'enable' || $switch === 'disable') {
@@ -158,7 +158,7 @@ class Project extends Base
*/
public function integration()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$this->response->html($this->projectLayout('project/integrations', array(
'project' => $project,
@@ -174,7 +174,7 @@ class Project extends Base
*/
public function edit(array $values = array(), array $errors = array())
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$this->response->html($this->projectLayout('project/edit', array(
'values' => empty($values) ? $project : $values,
@@ -191,7 +191,7 @@ class Project extends Base
*/
public function update()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$values = $this->request->getValues();
list($valid, $errors) = $this->project->validateModification($values);
@@ -216,7 +216,7 @@ class Project extends Base
*/
public function users()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$this->response->html($this->projectLayout('project/users', array(
'project' => $project,
@@ -232,7 +232,7 @@ class Project extends Base
*/
public function allowEverybody()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
$values = $this->request->getValues() + array('is_everybody_allowed' => 0);
list($valid,) = $this->projectPermission->validateProjectModification($values);
@@ -257,12 +257,11 @@ class Project extends Base
public function allow()
{
$values = $this->request->getValues();
- $this->checkProjectOwnerPermissions($values['project_id']);
list($valid,) = $this->projectPermission->validateUserModification($values);
if ($valid) {
- if ($this->projectPermission->allowUser($values['project_id'], $values['user_id'])) {
+ if ($this->projectPermission->addMember($values['project_id'], $values['user_id'])) {
$this->session->flash(t('Project updated successfully.'));
}
else {
@@ -274,11 +273,11 @@ class Project extends Base
}
/**
- * Set ownership for a specific user (admin only)
+ * Change the role of a project member
*
* @access public
*/
- public function setOwner()
+ public function role()
{
$this->checkCSRFParam();
@@ -288,12 +287,11 @@ class Project extends Base
'is_owner' => $this->request->getIntegerParam('is_owner'),
);
- $this->checkProjectOwnerPermissions($values['project_id']);
list($valid,) = $this->projectPermission->validateUserModification($values);
if ($valid) {
- if ($this->projectPermission->setOwner($values['project_id'], $values['user_id'], $values['is_owner'])) {
+ if ($this->projectPermission->changeRole($values['project_id'], $values['user_id'], $values['is_owner'])) {
$this->session->flash(t('Project updated successfully.'));
}
else {
@@ -318,12 +316,11 @@ class Project extends Base
'user_id' => $this->request->getIntegerParam('user_id'),
);
- $this->checkProjectOwnerPermissions($values['project_id']);
list($valid,) = $this->projectPermission->validateUserModification($values);
if ($valid) {
- if ($this->projectPermission->revokeUser($values['project_id'], $values['user_id'])) {
+ if ($this->projectPermission->revokeMember($values['project_id'], $values['user_id'])) {
$this->session->flash(t('Project updated successfully.'));
}
else {
@@ -341,7 +338,7 @@ class Project extends Base
*/
public function remove()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
if ($this->request->getStringParam('remove') === 'yes') {
@@ -370,7 +367,7 @@ class Project extends Base
*/
public function duplicate()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
if ($this->request->getStringParam('duplicate') === 'yes') {
@@ -398,7 +395,7 @@ class Project extends Base
*/
public function disable()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
if ($this->request->getStringParam('disable') === 'yes') {
@@ -426,7 +423,7 @@ class Project extends Base
*/
public function enable()
{
- $project = $this->getProjectManagement();
+ $project = $this->getProject();
if ($this->request->getStringParam('enable') === 'yes') {
@@ -478,7 +475,7 @@ class Project extends Base
$project = $this->getProject();
$this->response->html($this->template->layout('project/activity', array(
- 'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
+ 'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()),
'events' => $this->projectActivity->getProject($project['id']),
'project' => $project,
'title' => t('%s\'s activity', $project['name'])
@@ -507,7 +504,7 @@ class Project extends Base
}
$this->response->html($this->template->layout('project/search', array(
- 'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
+ 'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()),
'tasks' => $tasks,
'nb_tasks' => $nb_tasks,
'pagination' => array(
@@ -550,7 +547,7 @@ class Project extends Base
$nb_tasks = $this->taskPaginator->countClosedTasks($project['id']);
$this->response->html($this->template->layout('project/tasks', array(
- 'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
+ 'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()),
'pagination' => array(
'controller' => 'project',
'action' => 'tasks',
@@ -577,10 +574,10 @@ class Project extends Base
*/
public function create(array $values = array(), array $errors = array())
{
- $is_private = $this->request->getIntegerParam('private', $this->acl->isRegularUser());
+ $is_private = $this->request->getIntegerParam('private', ! $this->userSession->isAdmin());
$this->response->html($this->template->layout('project/new', array(
- 'board_selector' => $this->projectPermission->getAllowedProjects($this->acl->getUserId()),
+ 'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()),
'values' => empty($values) ? array('is_private' => $is_private) : $values,
'errors' => $errors,
'title' => $is_private ? t('New private project') : t('New project'),
@@ -599,7 +596,7 @@ class Project extends Base
if ($valid) {
- $project_id = $this->project->create($values, $this->acl->getUserId(), true);
+ $project_id = $this->project->create($values, $this->userSession->getId(), true);
if ($project_id) {
$this->session->flash(t('Your project have been created successfully.'));