示例#1
0
 /**
  * @inheritdoc
  */
 public function loadUserByUsername($username)
 {
     $user = $this->apiClient->getUserByLoginName($username);
     if ($user instanceof User) {
         return $user;
     }
     throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username));
 }
示例#2
0
 /**
  * @param Group $group
  * @param int   $offset
  */
 private function syncGrouphubGroupAdmins(Group $group, $offset = 0)
 {
     if (!$this->syncAdmins) {
         return;
     }
     $this->logger->info(' - Processing admins for GrouphubGroup `' . $group->getName() . '` ' . $offset . ' to ' . ($offset + self::BATCH_SIZE) . '...');
     $this->ldap->addAdminGroupIfNotExists($group);
     $grouphubAdmins = $this->api->findGroupUsers($group, $offset, self::BATCH_SIZE, Membership::ROLE_ADMIN);
     $ldapAdmins = $this->ldap->findGroupAdmins($group, $offset, self::BATCH_SIZE);
     if (count($grouphubAdmins) === 0 && count($ldapAdmins) === 0) {
         $this->logger->info(' - Done syncing GroupHubGroup admins!');
         return;
     }
     $index = $ldapAdmins->synchronize($grouphubAdmins, true);
     $this->logger->info(' -- Going to add ' . count($ldapAdmins->getAddedElements()) . ' admins for GrouphubGroup to LDAP...');
     foreach ($ldapAdmins->getAddedElements() as $element) {
         /** @var User $element */
         $this->ldap->addGroupAdmin($group, $element->getReference());
     }
     $this->logger->info(' -- Going to remove ' . count($ldapAdmins->getRemovedElements()) . ' admins for GrouphubGroup from LDAP...');
     foreach ($ldapAdmins->getRemovedElements() as $element) {
         /** @var User $element */
         $this->ldap->removeGroupAdmin($group, $element->getReference());
     }
     $this->syncGrouphubGroupAdmins($group, $offset + $index + 1);
 }
示例#3
0
 /**
  * @param int $userId
  * @param int $id
  */
 public function denyNotification($userId, $id)
 {
     $this->client->denyNotification($userId, $id);
 }
示例#4
0
 /**
  * @param string $loginName
  *
  * @return User
  */
 public function getUserByLoginName($loginName)
 {
     return $this->client->getUserByLoginName($loginName);
 }
示例#5
0
 /**
  * @param int    $groupId
  * @param int    $userId
  * @param string $message
  */
 public function requestMembership($groupId, $userId, $message)
 {
     $this->client->addGroupUser($groupId, $userId, Membership::ROLE_PROSPECT, $message);
 }
示例#6
0
 /**
  * @param Group $group
  */
 public function updateGroup(Group $group)
 {
     $this->client->updateGroup($group->getId(), $group);
     $this->queue->addGroupToQueue($group->getId());
 }