Ejemplo n.º 1
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return void
  */
 public function Notify($reservationSeries)
 {
     $resourceAdmins = array();
     $applicationAdmins = array();
     $groupAdmins = array();
     if ($this->SendForResourceAdmins($reservationSeries)) {
         $resourceAdmins = $this->userViewRepo->GetResourceAdmins($reservationSeries->ResourceId());
     }
     if ($this->SendForApplicationAdmins($reservationSeries)) {
         $applicationAdmins = $this->userViewRepo->GetApplicationAdmins();
     }
     if ($this->SendForGroupAdmins($reservationSeries)) {
         $groupAdmins = $this->userViewRepo->GetGroupAdmins($reservationSeries->UserId());
     }
     $admins = array_merge($resourceAdmins, $applicationAdmins, $groupAdmins);
     if (count($admins) == 0) {
         // skip if there is nobody to send to
         return;
     }
     $owner = $this->userRepo->LoadById($reservationSeries->UserId());
     $resource = $reservationSeries->Resource();
     $adminIds = array();
     /** @var $admin UserDto */
     foreach ($admins as $admin) {
         $id = $admin->Id();
         if (array_key_exists($id, $adminIds) || $id == $owner->Id()) {
             // only send to each person once
             continue;
         }
         $adminIds[$id] = true;
         $message = $this->GetMessage($admin, $owner, $reservationSeries, $resource);
         ServiceLocator::GetEmailService()->Send($message);
     }
 }
Ejemplo n.º 2
0
 public function Validate($reservationSeries)
 {
     if ($this->userSession->IsAdmin) {
         Log::Debug('User is application admin. Skipping check. UserId=%s', $this->userSession->UserId);
         return new ReservationRuleResult(true);
     }
     if ($this->userSession->IsGroupAdmin || $this->userSession->IsResourceAdmin || $this->userSession->IsScheduleAdmin) {
         if ($this->userSession->IsGroupAdmin) {
             $user = $this->userRepository->LoadById($this->userSession->UserId);
             $reservationUser = $this->userRepository->LoadById($reservationSeries->UserId());
             if ($user->IsAdminFor($reservationUser)) {
                 Log::Debug('User is admin for reservation user. Skipping check. UserId=%s', $this->userSession->UserId);
                 return new ReservationRuleResult(true);
             }
         }
         if ($this->userSession->IsResourceAdmin || $this->userSession->IsScheduleAdmin) {
             $user = $this->userRepository->LoadById($this->userSession->UserId);
             $isResourceAdmin = true;
             foreach ($reservationSeries->AllResources() as $resource) {
                 if (!$user->IsResourceAdminFor($resource)) {
                     $isResourceAdmin = false;
                     break;
                 }
             }
             if ($isResourceAdmin) {
                 Log::Debug('User is admin for all resources. Skipping check. UserId=%s', $this->userSession->UserId);
                 return new ReservationRuleResult(true);
             }
         }
     }
     return $this->rule->Validate($reservationSeries);
 }
Ejemplo n.º 3
0
 /**
  * @param IResource $resource
  * @return bool
  */
 public function ShouldInclude($resource)
 {
     if ($resource->GetStatusId() != ResourceStatus::AVAILABLE) {
         $user = $this->userRepository->LoadById($this->user->UserId);
         return $user->IsResourceAdminFor($resource);
     }
     return true;
 }
Ejemplo n.º 4
0
 public function LoadById($groupId)
 {
     $user = $this->userRepository->LoadById($this->userSession->UserId);
     if ($user->IsGroupAdminFor($groupId)) {
         return parent::LoadById($groupId);
     }
     return Group::Null();
 }
 public function testGetsUserByPublicId()
 {
     $expected = new FakeUser();
     $publicId = uniqid();
     $this->userRepo->expects($this->once())->method('LoadByPublicId')->with($this->equalTo($publicId))->will($this->returnValue($expected));
     $actual = $this->service->GetUser($publicId);
     $this->assertEquals($expected, $actual);
 }
Ejemplo n.º 6
0
 /**
  * @param ReservationSeries $reservation
  * @return void
  */
 public function Notify($reservation)
 {
     $owner = $this->_userRepo->LoadById($reservation->UserId());
     if ($this->ShouldSend($owner)) {
         $message = $this->GetMessage($owner, $reservation, $this->_attributeRepo);
         ServiceLocator::GetEmailService()->Send($message);
     } else {
         Log::Debug('Owner does not want these types of email notifications. Email=%s, ReferenceNumber=%s', $owner->EmailAddress(), $reservation->CurrentInstance()->ReferenceNumber());
     }
 }
 /**
  * @param ReservationSeries $reservationSeries
  */
 function Notify($reservationSeries)
 {
     $instance = $reservationSeries->CurrentInstance();
     $owner = $this->userRepository->LoadById($reservationSeries->UserId());
     foreach ($instance->UnchangedParticipants() as $userId) {
         $participant = $this->userRepository->LoadById($userId);
         $message = new ParticipantUpdatedEmail($owner, $participant, $reservationSeries, $this->attributeRepository);
         ServiceLocator::GetEmailService()->Send($message);
     }
 }
 /**
  * @param $pageNumber int
  * @param $pageSize int
  * @param $filter ReservationFilter
  * @param $user UserSession
  * @return PageableData|ReservationItemView[]
  */
 public function LoadFiltered($pageNumber, $pageSize, $filter, $user)
 {
     $groupIds = array();
     $groups = $this->userRepository->LoadGroups($user->UserId, RoleLevel::RESOURCE_ADMIN);
     foreach ($groups as $group) {
         $groupIds[] = $group->GroupId;
     }
     $filter->_And(new SqlFilterIn(new SqlFilterColumn(TableNames::RESOURCES, ColumnNames::RESOURCE_ADMIN_GROUP_ID), $groupIds));
     return $this->reservationViewRepository->GetList($pageNumber, $pageSize, null, null, $filter->GetFilter());
 }
Ejemplo n.º 9
0
 public function Activate($activationCode)
 {
     $userId = $this->activationRepository->FindUserIdByCode($activationCode);
     $this->activationRepository->DeleteActivation($activationCode);
     if ($userId != null) {
         $user = $this->userRepository->LoadById($userId);
         $user->Activate();
         $this->userRepository->Update($user);
         return new ActivationResult(true, $user);
     }
     return new ActivationResult(false);
 }
Ejemplo n.º 10
0
 public function Bind(IReservationComponentInitializer $initializer)
 {
     $userId = $initializer->GetOwnerId();
     $currentUser = $initializer->CurrentUser();
     $canChangeUser = $this->reservationAuthorization->CanChangeUsers($currentUser);
     $initializer->SetCanChangeUser($canChangeUser);
     $reservationUser = $this->userRepository->GetById($userId);
     $initializer->SetReservationUser($reservationUser);
     $hideUser = Configuration::Instance()->GetSectionKey(ConfigSection::PRIVACY, ConfigKeys::PRIVACY_HIDE_USER_DETAILS, new BooleanConverter());
     $initializer->ShowUserDetails(!$hideUser || $currentUser->IsAdmin);
     $initializer->SetShowParticipation(!$hideUser || $currentUser->IsAdmin || $currentUser->IsGroupAdmin);
 }
Ejemplo n.º 11
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return ReservationRuleResult
  */
 public function Validate($reservationSeries)
 {
     $quotas = $this->quotaRepository->LoadAll();
     $user = $this->userRepository->LoadById($reservationSeries->UserId());
     $schedule = $this->scheduleRepository->LoadById($reservationSeries->ScheduleId());
     foreach ($quotas as $quota) {
         if ($quota->ExceedsQuota($reservationSeries, $user, $schedule, $this->reservationViewRepository)) {
             Log::Debug('Quota exceeded. %s', $quota->ToString());
             return new ReservationRuleResult(false, Resources::GetInstance()->GetString('QuotaExceeded'));
         }
     }
     return new ReservationRuleResult();
 }
 /**
  * @param ReservationSeries $reservationSeries
  */
 function Notify($reservationSeries)
 {
     $owner = null;
     $instance = $reservationSeries->CurrentInstance();
     foreach ($instance->UnchangedInvitees() as $userId) {
         if ($owner == null) {
             $owner = $this->userRepository->LoadById($reservationSeries->UserId());
         }
         $invitee = $this->userRepository->LoadById($userId);
         $message = new InviteeAddedEmail($owner, $invitee, $reservationSeries, $this->attributeRepository);
         ServiceLocator::GetEmailService()->Send($message);
     }
 }
 public function Add(Schedule $schedule, $copyLayoutFromScheduleId)
 {
     $user = $this->repo->LoadById($this->user->UserId);
     if (!$user->IsInRole(RoleLevel::SCHEDULE_ADMIN)) {
         throw new Exception(sprintf('Schedule Add Failed. User %s does not have admin access.', $this->user->UserId));
     }
     foreach ($user->Groups() as $group) {
         if ($group->IsScheduleAdmin) {
             $schedule->SetAdminGroupId($group->GroupId);
             break;
         }
     }
     parent::Add($schedule, $copyLayoutFromScheduleId);
 }
Ejemplo n.º 14
0
 public function testBindsUserData()
 {
     $userDto = new UserDto($this->userId, 'f', 'l', 'email');
     $this->initializer->expects($this->any())->method('CurrentUser')->will($this->returnValue($this->fakeUser));
     $this->initializer->expects($this->once())->method('GetOwnerId')->will($this->returnValue($this->userId));
     $this->initializer->expects($this->once())->method('CurrentUser')->will($this->returnValue($this->fakeUser));
     $this->userRepository->expects($this->once())->method('GetById')->with($this->equalTo($this->userId))->will($this->returnValue($userDto));
     $this->reservationAuthorization->expects($this->once())->method('CanChangeUsers')->with($this->fakeUser)->will($this->returnValue(true));
     $this->fakeConfig->SetSectionKey(ConfigSection::PRIVACY, ConfigKeys::PRIVACY_HIDE_USER_DETAILS, 'true');
     $this->initializer->expects($this->once())->method('SetShowParticipation')->with($this->equalTo(false));
     $this->initializer->expects($this->once())->method('SetCanChangeUser')->with($this->equalTo(true));
     $this->initializer->expects($this->once())->method('SetReservationUser')->with($this->equalTo($userDto));
     $binder = new ReservationUserBinder($this->userRepository, $this->reservationAuthorization);
     $binder->Bind($this->initializer);
 }
 public function testGetsScheduleResourcesUserHasAdminRightsTo()
 {
     $scheduleId = 100;
     $user = $this->getMock('User');
     $this->userRepository->expects($this->once())->method('LoadById')->with($this->equalTo($this->fakeUser->UserId))->will($this->returnValue($user));
     $ra = new FakeResourceAccess();
     $this->db->SetRows($ra->GetRows());
     $user->expects($this->at(0))->method('IsResourceAdminFor')->with($this->equalTo($ra->_Resources[0]))->will($this->returnValue(false));
     $user->expects($this->at(1))->method('IsResourceAdminFor')->with($this->equalTo($ra->_Resources[1]))->will($this->returnValue(true));
     $repo = new ResourceAdminResourceRepository($this->userRepository, $this->fakeUser);
     $resources = $repo->GetScheduleResources($scheduleId);
     $this->assertTrue($this->db->ContainsCommand(new GetScheduleResourcesCommand($scheduleId)));
     $this->assertEquals(1, count($resources));
     $this->assertEquals(2, $resources[0]->GetId());
 }
 /**
  * @param $pageNumber int
  * @param $pageSize int
  * @param $filter ReservationFilter
  * @param $userSession UserSession
  * @return PageableData|ReservationItemView[]
  */
 public function LoadFiltered($pageNumber, $pageSize, $filter, $userSession)
 {
     $user = $this->userRepository->LoadById($userSession->UserId);
     $adminGroups = $user->GetAdminGroups();
     $groupIds = array();
     foreach ($adminGroups as $group) {
         $groupIds[] = $group->GroupId;
     }
     $command = new GetFullGroupReservationListCommand($groupIds);
     if ($filter != null) {
         $command = new FilterCommand($command, $filter->GetFilter());
     }
     $builder = array('ReservationItemView', 'Populate');
     return PageableDataStore::GetList($command, $builder, $pageNumber, $pageSize);
 }
 public function testLoadsFilteredResultsAndChecksAuthorizationAgainstPendingReservations()
 {
     $pageNumber = 1;
     $pageSize = 40;
     $groups = array(new UserGroup(1, '1'), new UserGroup(5, '5'), new UserGroup(9, '9'), new UserGroup(22, '22'));
     $myGroups = array(1, 5, 9, 22);
     $this->userRepository->expects($this->once())->method('LoadGroups')->with($this->equalTo($this->fakeUser->UserId), $this->equalTo(RoleLevel::RESOURCE_ADMIN))->will($this->returnValue($groups));
     $filter = new ReservationFilter();
     $expectedFilter = $filter->GetFilter();
     $expectedFilter->_And(new SqlFilterIn(new SqlFilterColumn(TableNames::RESOURCES, ColumnNames::RESOURCE_ADMIN_GROUP_ID), $myGroups));
     $data = new PageableData();
     $this->reservationViewRepository->expects($this->once())->method('GetList')->with($pageNumber, $pageSize, null, null, $expectedFilter)->will($this->returnValue($data));
     $actualData = $this->service->LoadFiltered($pageNumber, $pageSize, $filter, $this->fakeUser);
     $this->assertEquals($data, $actualData);
 }
 public function testDoesNotUpdateScheduleIfUserDoesNotHaveAccess()
 {
     $user = $this->getMock('User');
     $this->userRepository->expects($this->once())->method('LoadById')->with($this->equalTo($this->fakeUser->UserId))->will($this->returnValue($user));
     $schedule = new FakeSchedule(1);
     $schedule->SetAdminGroupId(2);
     $user->expects($this->at(0))->method('IsScheduleAdminFor')->with($this->equalTo($schedule))->will($this->returnValue(false));
     $actualEx = null;
     try {
         $this->repo->Update($schedule);
     } catch (Exception $ex) {
         $actualEx = $ex;
     }
     $this->assertNotEmpty($actualEx, "should have thrown an exception");
 }
Ejemplo n.º 19
0
 public function testConflictHandlerReportsConflictingReservationAndDoesNotUpdateBlackout()
 {
     $userId = $this->fakeUser->UserId;
     $start = Date::Parse('2011-01-01 01:01:01');
     $end = Date::Parse('2011-02-02 02:02:02');
     $date = new DateRange($start, $end);
     $resourceId = 2;
     $resourceIds = array($resourceId);
     $title = 'title';
     $seriesId = 111;
     $blackoutInstanceId = 10;
     $series = BlackoutSeries::Create(1, 'old title', new TestDateRange());
     $series->WithId($seriesId);
     $user = $this->getMock('User');
     $user->expects($this->any())->method('IsResourceAdminFor')->with($this->anything())->will($this->returnValue(true));
     $this->userRepository->expects($this->once())->method('LoadById')->with($this->equalTo($userId))->will($this->returnValue($user));
     $this->reservationViewRepository->expects($this->once())->method('GetBlackoutsWithin')->with($this->equalTo($date))->will($this->returnValue(array()));
     $reservation1 = new TestReservationItemView(1, $start, $end, 2);
     $reservation2 = new TestReservationItemView(2, $start, $end, 2);
     $this->reservationViewRepository->expects($this->once())->method('GetReservationList')->with($this->equalTo($start), $this->equalTo($end))->will($this->returnValue(array($reservation1, $reservation2)));
     $this->conflictHandler->expects($this->at(0))->method('Handle')->with($this->equalTo($reservation1))->will($this->returnValue(false));
     $this->conflictHandler->expects($this->at(1))->method('Handle')->with($this->equalTo($reservation2))->will($this->returnValue(false));
     $this->blackoutRepository->expects($this->never())->method('Update');
     $this->blackoutRepository->expects($this->once())->method('LoadByBlackoutId')->with($this->equalTo($blackoutInstanceId))->will($this->returnValue($series));
     $result = $this->service->Update($blackoutInstanceId, $date, $resourceIds, $title, $this->conflictHandler, new RepeatNone(), SeriesUpdateScope::FullSeries);
     $this->assertFalse($result->WasSuccessful());
 }
Ejemplo n.º 20
0
 public function testFirstQuotaExceeded()
 {
     $scheduleId = 971243;
     $timezone = 'America/New_York';
     $userId = 10;
     $groupId1 = 8287;
     $groupId2 = 102;
     $user = new FakeUser();
     $user->SetGroups(array($groupId1, $groupId2));
     $schedule = new Schedule(1, null, null, null, null, $timezone);
     $resource = new FakeBookableResource(20);
     $resource->SetScheduleId($scheduleId);
     $series = ReservationSeries::Create($userId, $resource, null, null, new TestDateRange(), new RepeatNone(), new FakeUserSession());
     $series->AddResource(new FakeBookableResource(22));
     $quota1 = $this->mockQuota('IQuota');
     $quota2 = $this->mockQuota('IQuota');
     $quotas = array($quota1, $quota2);
     $this->quotaRepository->expects($this->once())->method('LoadAll')->will($this->returnValue($quotas));
     $this->userRepository->expects($this->once())->method('LoadById')->with($this->equalTo($userId))->will($this->returnValue($user));
     $this->scheduleRepository->expects($this->once())->method('LoadById')->with($this->equalTo($scheduleId))->will($this->returnValue($schedule));
     $this->ChecksAgainstQuota($quota1, $series, $this->reservationViewRepository, $schedule, $user, true);
     $quota2->expects($this->never())->method('ExceedsQuota');
     $rule = new QuotaRule($this->quotaRepository, $this->reservationViewRepository, $this->userRepository, $this->scheduleRepository);
     $result = $rule->Validate($series);
     $this->assertFalse($result->IsValid(), 'first quotas was exceeded');
 }
Ejemplo n.º 21
0
 function testLoginGetsUserDataFromDatabase()
 {
     $language = 'en_gb';
     $this->userRepository->expects($this->once())->method('LoadByUsername')->with($this->equalTo($this->username))->will($this->returnValue($this->user));
     LoginTime::$Now = time();
     $this->user->Login(LoginTime::Now(), $language);
     $this->userRepository->expects($this->once())->method('Update')->with($this->equalTo($this->user));
     $this->authorization->expects($this->once())->method('IsApplicationAdministrator')->with($this->equalTo($this->user))->will($this->returnValue(true));
     $this->authorization->expects($this->once())->method('IsGroupAdministrator')->with($this->equalTo($this->user))->will($this->returnValue(true));
     $this->authorization->expects($this->once())->method('IsResourceAdministrator')->with($this->equalTo($this->user))->will($this->returnValue(true));
     $this->authorization->expects($this->once())->method('IsScheduleAdministrator')->with($this->equalTo($this->user))->will($this->returnValue(true));
     $context = new WebLoginContext(new LoginData(false, $language));
     $actualSession = $this->auth->Login($this->username, $context);
     $user = new UserSession($this->id);
     $user->FirstName = $this->fname;
     $user->LastName = $this->lname;
     $user->Email = $this->email;
     $user->Timezone = $this->timezone;
     $user->HomepageId = $this->homepageId;
     $user->IsAdmin = true;
     $user->IsGroupAdmin = true;
     $user->IsResourceAdmin = true;
     $user->IsScheduleAdmin = true;
     $user->LanguageCode = $language;
     $user->LoginTime = LoginTime::Now();
     $user->PublicId = $this->publicId;
     $user->ScheduleId = $this->scheduleId;
     foreach ($this->groups as $group) {
         $user->Groups[] = $group->GroupId;
     }
     $this->assertEquals($user, $actualSession);
 }
 public function GetList($pageNumber, $pageSize, $sortField = null, $sortDirection = null, $filter = null)
 {
     $user = $this->repo->LoadById($this->user->UserId);
     if (!$user->IsInRole(RoleLevel::SCHEDULE_ADMIN)) {
         return new PageableData();
     }
     $ids = array();
     $filter = new SqlFilterNull();
     foreach ($user->Groups() as $group) {
         if ($group->IsScheduleAdmin) {
             $ids[] = $group->GroupId;
         }
     }
     $filter->_And(new SqlFilterIn(new SqlFilterColumn(TableNames::SCHEDULES_ALIAS, ColumnNames::RESOURCE_ADMIN_GROUP_ID), $ids));
     return parent::GetList($pageNumber, $pageSize, $sortField, $sortDirection, $filter);
 }
Ejemplo n.º 23
0
 public function testUpdatesUser()
 {
     $user = new User();
     $userId = 1029380;
     $fname = 'f';
     $lname = 'l';
     $username = '******';
     $email = '*****@*****.**';
     $timezone = 'America/Chicago';
     $phone = '123-123-1234';
     $organization = 'ou';
     $position = 'position';
     $extraAttributes = array(UserAttribute::Organization => $organization, UserAttribute::Phone => $phone, UserAttribute::Position => $position);
     $this->userRepo->expects($this->once())->method('LoadById')->with($this->equalTo($userId))->will($this->returnValue($user));
     $this->userRepo->expects($this->once())->method('Update')->with($this->equalTo($user));
     $updatedUser = $this->service->UpdateUser($userId, $username, $email, $fname, $lname, $timezone, $extraAttributes);
     $this->assertEquals($user, $updatedUser);
     $this->assertEquals($fname, $user->FirstName());
     $this->assertEquals($lname, $user->LastName());
     $this->assertEquals($timezone, $user->Timezone());
     $this->assertEquals($username, $user->Username());
     $this->assertEquals($email, $user->EmailAddress());
     $this->assertEquals($phone, $user->GetAttribute(UserAttribute::Phone));
     $this->assertEquals($organization, $user->GetAttribute(UserAttribute::Organization));
     $this->assertEquals($position, $user->GetAttribute(UserAttribute::Position));
 }
Ejemplo n.º 24
0
 public function DisableSubscription()
 {
     $userId = ServiceLocator::GetServer()->GetUserSession()->UserId;
     Log::Debug('Disabling calendar subscription for userId: %s', $userId);
     $user = $this->userRepository->LoadById($userId);
     $user->DisableSubscription();
     $this->userRepository->Update($user);
 }
Ejemplo n.º 25
0
 public function testWhenActivationCodeIsValid()
 {
     $userId = 11;
     $homepage = Pages::CALENDAR;
     $user = new FakeUser($userId);
     $user->ChangeDefaultHomePage($homepage);
     $user->SetStatus(AccountStatus::AWAITING_ACTIVATION);
     $activationCode = uniqid();
     $this->activationRepo->expects($this->once())->method('FindUserIdByCode')->with($this->equalTo($activationCode))->will($this->returnValue($userId));
     $this->activationRepo->expects($this->once())->method('DeleteActivation')->with($this->equalTo($activationCode));
     $this->userRepo->expects($this->once())->method('LoadById')->with($this->equalTo($userId))->will($this->returnValue($user));
     $this->userRepo->expects($this->once())->method('Update')->with($this->equalTo($user));
     $result = $this->activation->Activate($activationCode);
     $this->assertTrue($result->Activated());
     $this->assertEquals($user, $result->User());
     $this->assertEquals(AccountStatus::ACTIVE, $user->StatusId());
 }
Ejemplo n.º 26
0
 public function Login($username, $loginContext)
 {
     Log::Debug('Logging in with user: %s', $username);
     $user = $this->userRepository->LoadByUsername($username);
     if ($user->StatusId() == AccountStatus::ACTIVE) {
         $loginData = $loginContext->GetData();
         $loginTime = LoginTime::Now();
         $language = $user->Language();
         if (!empty($loginData->Language)) {
             $language = $loginData->Language;
         }
         $user->Login($loginTime, $language);
         $this->userRepository->Update($user);
         return $this->GetUserSession($user, $loginTime);
     }
     return new NullUserSession();
 }
Ejemplo n.º 27
0
 /**
  * @param UserSession $userSession
  * @param IResource $resource
  * @return bool
  */
 public function CanApproveForResource(UserSession $userSession, IResource $resource)
 {
     if ($userSession->IsAdmin) {
         return true;
     }
     if (!$userSession->IsResourceAdmin) {
         return false;
     }
     $user = $this->userRepository->LoadById($userSession->UserId);
     return $user->IsResourceAdminFor($resource);
 }
Ejemplo n.º 28
0
 public function Synchronize(AuthenticatedUser $user, $insertOnly = false)
 {
     if ($this->UserExists($user->UserName(), $user->Email())) {
         if ($insertOnly) {
             return;
         }
         $encryptedPassword = $this->_passwordEncryption->EncryptPassword($user->Password());
         $command = new UpdateUserFromLdapCommand($user->UserName(), $user->Email(), $user->FirstName(), $user->LastName(), $encryptedPassword->EncryptedPassword(), $encryptedPassword->Salt(), $user->Phone(), $user->Organization(), $user->Title());
         ServiceLocator::GetDatabase()->Execute($command);
         if ($user->GetGroups() != null) {
             $updatedUser = $this->_userRepository->LoadByUsername($user->Username());
             $updatedUser->ChangeGroups($user->GetGroups());
             $this->_userRepository->Update($updatedUser);
         }
     } else {
         $defaultHomePageId = Configuration::Instance()->GetKey(ConfigKeys::DEFAULT_HOMEPAGE, new IntConverter());
         $additionalFields = array('phone' => $user->Phone(), 'organization' => $user->Organization(), 'position' => $user->Title());
         $this->Register($user->UserName(), $user->Email(), $user->FirstName(), $user->LastName(), $user->Password(), $user->TimezoneName(), $user->LanguageCode(), empty($defaultHomePageId) ? Pages::DEFAULT_HOMEPAGE_ID : $defaultHomePageId, $additionalFields, array(), $user->GetGroups());
     }
 }
Ejemplo n.º 29
0
 public function UpdateUser($userId, $username, $email, $firstName, $lastName, $timezone, $extraAttributes)
 {
     $attributes = new UserAttribute($extraAttributes);
     $user = $this->userRepository->LoadById($userId);
     $user->ChangeName($firstName, $lastName);
     $user->ChangeEmailAddress($email);
     $user->ChangeUsername($username);
     $user->ChangeTimezone($timezone);
     $user->ChangeAttributes($attributes->Get(UserAttribute::Phone), $attributes->Get(UserAttribute::Organization), $attributes->Get(UserAttribute::Position));
     $this->userRepository->Update($user);
 }
Ejemplo n.º 30
0
 public function LoadBlackout($blackoutId, $userId)
 {
     $series = $this->blackoutRepository->LoadByBlackoutId($blackoutId);
     $user = $this->userRepository->LoadById($userId);
     foreach ($series->Resources() as $resource) {
         if (!$user->IsResourceAdminFor($resource)) {
             return null;
         }
     }
     return $series;
 }