dao = $dao; $this->grouperConfig = $grouperConfig; } public function saveUser(User $user) { $primarySpecified = true; // If new user if ($user->id === null) { $primarySpecified = false; $user->id = $this->dao->createUser(); } foreach ($user->identities as $identity) { if ($identity->id === null) { $identity->id = $this->dao->insertIdentity($identity, $user->id); if (!$primarySpecified) { $this->dao->setPrimaryIdentity($user->id, $identity->id); $identity->primary = true; } } } } public function findUserByIdentity($type, $identifier) { return $this->dao->findUserByIdentity($type, $identifier); } public function joinUsers($userId1, $userId2) { if ($this->grouperConfig !== null) { $gc = new GrouperClient($this->grouperConfig); $groupsToMove = $gc->getSubjectGroups('RAP:' . $userId2); $gc->addMemberships('RAP:' . $userId1, $groupsToMove); $gc->removeMemberships('RAP:' . $userId2, $groupsToMove); } $this->dao->joinUsers($userId1, $userId2); } }