public function testHasProjectAccessForProjectViewers() { $helper = new User($this->container); $user = new UserModel($this->container); $project = new Project($this->container); $projectUserRole = new ProjectUserRole($this->container); $this->container['sessionStorage']->user = array('id' => 2, 'role' => Role::APP_USER); $this->assertEquals(1, $project->create(array('name' => 'My project'))); $this->assertEquals(2, $project->create(array('name' => 'My project'))); $this->assertEquals(2, $user->create(array('username' => 'user'))); $this->assertTrue($projectUserRole->addUser(1, 2, Role::PROJECT_VIEWER)); $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 1)); $this->assertTrue($helper->hasProjectAccess('board', 'show', 1)); $this->assertTrue($helper->hasProjectAccess('task', 'show', 1)); $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 1)); $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 2)); $this->assertFalse($helper->hasProjectAccess('board', 'show', 2)); $this->assertFalse($helper->hasProjectAccess('task', 'show', 2)); $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 2)); }
public function testIsProjectManagementAllowedForProjectManager() { $h = new User($this->container); $p = new Project($this->container); $pp = new ProjectPermission($this->container); $u = new UserModel($this->container); // We create our user $this->assertEquals(2, $u->create(array('username' => 'unittest', 'password' => 'unittest'))); // We create a project and set our user as project member $this->assertEquals(1, $p->create(array('name' => 'UnitTest'))); $this->assertTrue($pp->addManager(1, 2)); $this->assertTrue($pp->isMember(1, 2)); $this->assertTrue($pp->isManager(1, 2)); // We fake a session for him $this->container['sessionStorage']->user = array('id' => 2, 'is_admin' => false, 'is_project_admin' => false); $this->assertTrue($h->isProjectManagementAllowed(1)); }