/** * Revokes to the given uniqueness, the given role. * * @param string $uniqueness * @param string $role * * @throws NonExistentUniquenessAndRoleInternalException */ public function revoke($uniqueness, $role) { $result = $this->connectToAssignedRoleStorageInternalWorker->connect()->remove(['uniqueness' => $uniqueness, 'role' => $role]); if ($result['n'] == 0) { throw new NonExistentUniquenessAndRoleInternalException($uniqueness, $role); } }
/** * Picks the profile with given uniqueness. * * @param string $uniqueness * * @return array An array with keys uniqueness and roles */ public function pick($uniqueness) { $assignedRoles = $this->connectToAssignedRoleStorageInternalWorker->connect()->find(['uniqueness' => $uniqueness])->fields(['_id' => 0, 'role' => 1]); $roles = []; foreach ($assignedRoles as $assignedRole) { $roles[] = $assignedRole['role']; } return ['uniqueness' => $uniqueness, 'roles' => $roles]; }
/** * Deletes the assigned roles and assigned invitation cards for given uniqueness. * * @param string $uniqueness */ public function delete($uniqueness) { $this->connectToAssignedRoleStorageInternalWorker->connect()->remove(['uniqueness' => $uniqueness]); }
/** * Assigns to the given uniqueness, the given role. * * @param string $uniqueness * @param string $role */ public function assign($uniqueness, $role) { $this->connectToStorageInternalWorker->connect()->insert(['uniqueness' => $uniqueness, 'role' => $role]); }
/** * Collects internet profiles. * * @return \Iterator */ public function collect() { return $this->connectToStorageInternalWorker->connect()->find()->fields(['_id' => 0]); }