$userEntities = $remoteEntities; } else { $userEntities = $adminUtil->getEntitiesFromUser($user->getUid()); } $reverseBlockedEntities = $adminUtil->getReverseBlockedEntities($entity, $userEntities); // Get metadatafields $mfc = $janus_config->getArray('metadatafields.' . $entity->getType()); $mb = new sspmod_janus_MetadataFieldBuilder($mfc); $et->data['metadatafields'] = $mb->getMetadataFields(); $remote_entities = array(); $remote_entities_acl_sorted = array(); // Only parse name and description in current language foreach ($remoteEntities as $remoteEntityRow) { $remoteEntity = new sspmod_janus_Entity($janus_config); $remoteEntity->setEid($remoteEntityRow["eid"]); $remoteEntity->setRevisionid($remoteEntityRow["revisionid"]); $remoteEntity->load(); $remoteEntityFormatted = array('eid' => $remoteEntity->getEid(), 'revisionid' => $remoteEntity->getRevisionid(), 'type' => $remoteEntity->getType(), 'notes' => $remoteEntity->getNotes()); // Format the name for the remote entity $remoteEntityName = $remoteEntity->getPrettyName(); if (isset($remoteEntityName)) { if (is_array($remoteEntityName)) { if (array_key_exists($language, $remoteEntityName)) { $remoteEntityFormatted['name'][$language] = $remoteEntityName[$language]; } else { reset($remoteEntityName); $remoteEntityFormatted['name'][$language] = 'No name in current language (' . current($remoteEntityName) . ')'; } } else { $remoteEntityFormatted['name'][$language] = $remoteEntityName; }
/** * Retrieve all Eids for entities of a certain type. * * @param String $type The type of entity, e.g. "saml20-idp" * @return array all entities that have been found */ public function searchEntitiesByType($type) { $deployableWorkflowStateList = $this->_loadDeployableWorkflowStates(); $query = "\n SELECT CONNECTION_REVISION.`eid`\n ,CONNECTION_REVISION.`revisionid`\n ,CONNECTION_REVISION.`entityid`\n ,CONNECTION_REVISION.`state`\n FROM " . $this->getTablePrefix() . "connection AS CONNECTION\n INNER JOIN " . $this->getTablePrefix() . "connectionRevision AS CONNECTION_REVISION\n ON CONNECTION_REVISION.eid = CONNECTION.id\n AND CONNECTION_REVISION.revisionid = CONNECTION.revisionNr\n WHERE CONNECTION.`type` = ?\n "; $queryVariables = array($type); // Add deployabe state check $nrOfWorkflowStates = count($deployableWorkflowStateList); $fWorkflowStateInPlaceholders = substr(str_repeat('?,', $nrOfWorkflowStates), 0, -1); $query .= " AND CONNECTION_REVISION.`state` IN(" . $fWorkflowStateInPlaceholders . ")"; $queryVariables = array_merge($queryVariables, $deployableWorkflowStateList); $st = $this->execute($query, $queryVariables); if ($st === false) { return 'error_db'; } $this->_entities = array(); $rows = $st->fetchAll(PDO::FETCH_ASSOC); foreach ($rows as $row) { $entity = new sspmod_janus_Entity($this->_config); $entity->setEid($row['eid']); $entity->setRevisionid($row['revisionid']); $entity->setWorkflow($row['state']); if ($entity->load()) { $this->_entities[] = $entity; } else { SimpleSAML_Logger::error('JANUS:UserController:searchEntitiesByType - Entity could not be loaded, eid: ' . $row['eid']); } } return $this->_entities; }
/** * Get the entity history. * * Returns an array of entities. One for each revision. * * @param int $lower_limit The lower limit from which get revisions * @param int $upper_limit The upper limit up to which get revisions * * @return array|bool An array of sspmod_janus_Entity or FALSE on error */ public function getHistory($lower_limit = null, $upper_limit = null) { assert('$this->_entity instanceof Sspmod_Janus_Entity'); if ($lower_limit !== null || $upper_limit !== null) { $limit_clause = ' LIMIT'; if ($lower_limit !== null) { $limit_clause = $limit_clause . ' ' . $lower_limit; } if ($upper_limit !== null) { $separator = $limit_clause === null ? ' ' : ', '; $limit_clause = $limit_clause . $separator . $upper_limit; } } else { $limit_clause = ''; } $st = $this->execute('SELECT * FROM ' . $this->getTablePrefix() . 'connectionRevision WHERE `eid` = ? ORDER BY `revisionid` DESC' . $limit_clause, array($this->_entity->getEid())); if ($st === false) { return false; } $rs = $st->fetchAll(PDO::FETCH_ASSOC); $history = array(); foreach ($rs as $data) { $entity = new sspmod_janus_Entity($this->_config); $entity->setEid($this->_entity->getEid()); $entity->setRevisionid($data['revisionid']); if (!$entity->load()) { SimpleSAML_Logger::error(__CLASS__ . ':getHistory - Entity could not ' . 'load. Eid: ' . $this->_entity->getEntityid() . ' - Rid: ' . $data['revisionid']); return false; } $history[] = $entity; } return $history; }
if ($entity->getType() == 'shib13-idp') { $loaded_entities = array_merge($autil->getEntitiesByStateType(null, 'saml20-sp'), $autil->getEntitiesByStateType(null, 'shib13-sp')); } } } } // Get metadatafields $mfc = $janus_config->getArray('metadatafields.' . $entity->getType()); $mb = new sspmod_janus_MetadatafieldBuilder($mfc); $et->data['metadatafields'] = $mb->getMetadatafields(); $remote_entities = array(); // Only parse name and description in current language foreach ($loaded_entities as $entityRow) { $instance = new sspmod_janus_Entity($janus_config); $instance->setEid($entityRow["eid"]); $instance->setRevisionid($entityRow["revisionid"]); $instance->load(); $value = array("name" => $instance->getPrettyName(), "description" => $instance->getEntityId()); $key = $instance->getEntityId(); unset($value2); if (isset($value['name'])) { if (is_array($value['name'])) { if (array_key_exists($language, $value['name'])) { $value2['name'][$language] = $value['name'][$language]; } else { reset($value['name']); $value2['name'][$language] = 'No name in current language (' . current($value['name']) . ')'; } } else { $value2['name'][$language] = $value['name']; }