protected function populateHeaderMenuViewdata()
 {
     $this->data['isAdmin'] = false;
     // setup specific variables for header
     $this->data['isLoggedIn'] = $this->_isLoggedIn;
     $this->data['showHelpButton'] = $this->_showHelp;
     $featuredProjectList = new FeaturedProjectListModel();
     $featuredProjectList->read();
     $this->data['featuredProjects'] = $featuredProjectList->entries;
     if ($this->_isLoggedIn) {
         if ($this->_user->role) {
             $this->data['isAdmin'] = SystemRoles::hasRight($this->_user->role, Domain::USERS + Operation::CREATE);
         }
         $this->data['userName'] = $this->_user->username;
         $this->data['smallAvatarUrl'] = '/Site/views/shared/image/avatar/' . $this->_user->avatar_ref;
         $projects = $this->_user->listProjects($this->website->domain);
         $this->data['projects_count'] = $projects->count;
         $this->data['projects'] = $projects->entries;
     }
 }
 /**
  * @depends testRemoveUsers_ProjectOwner_NotRemovedFromProject
  */
 public function testRemoveUsers_ProjectOwner_NotRemovedFromProject_RestoreErrorDisplay()
 {
     // restore error display after last test
     self::$environ->restoreErrorDisplay();
     // read from disk
     $sameProject = new ProjectModel(self::$save['projectId']);
     $sameUser1 = new UserModel(self::$save['user1Id']);
     $sameUser2 = new UserModel(self::$save['user2Id']);
     // project still has project owner
     $this->assertEquals(1, $sameProject->listUsers()->count);
     $this->assertEquals(0, $sameUser1->listProjects(self::$environ->website->domain)->count);
     $this->assertEquals(1, $sameUser2->listProjects(self::$environ->website->domain)->count);
 }
 public function testUserListProjects_TwoProjects_ListHasDetails()
 {
     $environ = new MongoTestEnvironment();
     $environ->clean();
     $userId = $environ->createUser('jsmith', 'joe smith', '*****@*****.**');
     $p1m = $environ->createProject('p1', 'p1Code');
     $p1m->appName = 'sfchecks';
     $p1m->ownerRef->id = $userId;
     $p1m->write();
     $p1 = $p1m->id->asString();
     $p2m = $environ->createProject('p2', 'p2Code');
     $p2 = $p2m->id->asString();
     $p2m->appName = 'sfchecks';
     $p2m->ownerRef->id = $userId;
     $p2m->write();
     $userModel = new UserModel($userId);
     // Check that list projects is empty
     $result = $userModel->listProjects($environ->website->domain);
     $this->assertEquals(0, $result->count);
     $this->assertEquals([], $result->entries);
     // Add our two projects
     $p1m->addUser($userModel->id->asString(), ProjectRoles::MANAGER);
     $userModel->addProject($p1m->id->asString());
     $p2m->addUser($userModel->id->asString(), ProjectRoles::MANAGER);
     $userModel->addProject($p2m->id->asString());
     $p1m->write();
     $p2m->write();
     $userModel->write();
     $result = $userModel->listProjects($environ->website->domain);
     $this->assertEquals(2, $result->count);
     $this->assertEquals([['projectName' => 'p1', 'ownerRef' => $userId, 'id' => $p1, 'appName' => 'sfchecks', 'siteName' => $environ->website->domain], ['projectName' => 'p2', 'ownerRef' => $userId, 'id' => $p2, 'appName' => 'sfchecks', 'siteName' => $environ->website->domain]], $result->entries);
 }
 public function testRegister_NoProjectCode_UserInNoProjects()
 {
     self::$environ->clean();
     $validCode = 'validCode';
     $params = array('id' => '', 'username' => 'someusername', 'name' => 'Some Name', 'email' => '*****@*****.**', 'password' => 'somepassword', 'captcha' => $validCode);
     $captcha_info = array('code' => $validCode);
     $delivery = new MockUserCommandsDelivery();
     $userId = UserCommands::register($params, $captcha_info, self::$environ->website, $delivery);
     $user = new UserModel($userId);
     $this->assertEquals($params['username'], $user->username);
     $this->assertEquals(0, $user->listProjects(self::$environ->website->domain)->count);
 }