public function testAddsUser()
 {
     $fname = 'f';
     $lname = 'l';
     $username = '******';
     $email = '*****@*****.**';
     $timezone = 'America/Chicago';
     $lang = 'foo';
     $password = '******';
     $attributeId = 1;
     $attributeValue = 'value';
     $attributeFormElements = array(new AttributeFormElement($attributeId, $attributeValue));
     $userId = 1090;
     $groupId = 111;
     $user = new FakeUser($userId);
     $group = new Group($groupId, 'name');
     $group->AddUser($userId);
     $this->fakeConfig->SetKey(ConfigKeys::LANGUAGE, $lang);
     $this->page->expects($this->once())->method('GetFirstName')->will($this->returnValue($fname));
     $this->page->expects($this->once())->method('GetLastName')->will($this->returnValue($lname));
     $this->page->expects($this->once())->method('GetUserName')->will($this->returnValue($username));
     $this->page->expects($this->once())->method('GetEmail')->will($this->returnValue($email));
     $this->page->expects($this->once())->method('GetTimezone')->will($this->returnValue($timezone));
     $this->page->expects($this->once())->method('GetPassword')->will($this->returnValue($password));
     $this->page->expects($this->once())->method('GetAttributes')->will($this->returnValue($attributeFormElements));
     $this->page->expects($this->once())->method('GetUserGroup')->will($this->returnValue($groupId));
     $this->manageUsersService->expects($this->once())->method('AddUser')->with($this->equalTo($username), $this->equalTo($email), $this->equalTo($fname), $this->equalTo($lname), $this->equalTo($password), $this->equalTo($timezone), $this->equalTo($lang), $this->equalTo(Pages::DEFAULT_HOMEPAGE_ID), $this->equalTo(array()), $this->equalTo(array(new AttributeValue($attributeId, $attributeValue))))->will($this->returnValue($user));
     $this->groupRepository->expects($this->once())->method('LoadById')->with($this->equalTo($groupId))->will($this->returnValue($group));
     $this->groupRepository->expects($this->once())->method('Update')->with($this->equalTo($group));
     $this->presenter->AddUser();
 }
 public function testDeletesUser()
 {
     $userId = 99;
     $session = new FakeWebServiceUserSession(123);
     $this->manageUserServiceFactory->expects($this->once())->method('CreateAdmin')->will($this->returnValue($this->manageUsersService));
     $this->manageUsersService->expects($this->once())->method('DeleteUser')->with($this->equalTo($userId));
     $result = $this->controller->Delete($userId, $session);
     $this->assertTrue($result->WasSuccessful());
 }
 public function ImportUsers()
 {
     set_time_limit(300);
     $groupsList = $this->groupViewRepository->GetList();
     /** @var GroupItemView[] $groups */
     $groups = $groupsList->Results();
     $groupsIndexed = array();
     foreach ($groups as $group) {
         $groupsIndexed[$group->Name()] = $group->Id();
     }
     $importFile = $this->page->GetImportFile();
     $csv = new UserImportCsv($importFile);
     $importCount = 0;
     $messages = array();
     $rows = $csv->GetRows();
     if (count($rows) == 0) {
         $this->page->SetImportResult(new CsvImportResult(0, array(), 'Empty file or missing header row'));
         return;
     }
     for ($i = 0; $i < count($rows); $i++) {
         $row = $rows[$i];
         try {
             $emailValidator = new EmailValidator($row->email);
             $uniqueEmailValidator = new UniqueEmailValidator($this->userRepository, $row->email);
             $uniqueUsernameValidator = new UniqueUserNameValidator($this->userRepository, $row->username);
             $emailValidator->Validate();
             $uniqueEmailValidator->Validate();
             $uniqueUsernameValidator->Validate();
             if (!$emailValidator->IsValid()) {
                 $messages[] = $emailValidator->Messages()[0] . " ({$row->email})";
                 continue;
             }
             if (!$uniqueEmailValidator->IsValid()) {
                 $messages[] = $uniqueEmailValidator->Messages()[0] . " ({$row->email})";
                 continue;
             }
             if (!$uniqueUsernameValidator->IsValid()) {
                 $messages[] = $uniqueUsernameValidator->Messages()[0] . " ({$row->username})";
                 continue;
             }
             $timezone = empty($row->timezone) ? Configuration::Instance()->GetKey(ConfigKeys::DEFAULT_TIMEZONE) : $row->timezone;
             $password = empty($row->password) ? 'password' : $row->password;
             $language = empty($row->language) ? 'en_us' : $row->language;
             $user = $this->manageUsersService->AddUser($row->username, $row->email, $row->firstName, $row->lastName, $password, $timezone, $language, Configuration::Instance()->GetKey(ConfigKeys::DEFAULT_HOMEPAGE), array(UserAttribute::Phone => $row->phone, UserAttribute::Organization => $row->organization, UserAttribute::Position => $row->position), array());
             $userGroups = array();
             foreach ($row->groups as $groupName) {
                 if (array_key_exists($groupName, $groupsIndexed)) {
                     Log::Debug('Importing user %s with group %s', $row->username, $groupName);
                     $userGroups[] = new UserGroup($groupsIndexed[$groupName], $groupName);
                 }
             }
             if (count($userGroups) > 0) {
                 $user->ChangeGroups($userGroups);
                 $this->userRepository->Update($user);
             }
             $importCount++;
         } catch (Exception $ex) {
             Log::Error('Error importing users. %s', $ex);
         }
     }
     $this->page->SetImportResult(new CsvImportResult($importCount, $csv->GetSkippedRowNumbers(), $messages));
 }
Example #4
0
 public function ChangeAttributes()
 {
     $this->manageUsersService->ChangeAttributes($this->page->GetUserId(), $this->GetAttributeValues());
 }