X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PlanetLabConf%2Fkeys.php;h=c46c30769822697ee53391187cf0664e5f1a60e2;hb=6552abf59a332977e10520772dab68fe31f0c95c;hp=df466b521adfa60d4bb81480a131f4e7aaebb81c;hpb=b815095fec39d567d31901c610de18c611dd5db5;p=nodeconfig.git diff --git a/PlanetLabConf/keys.php b/PlanetLabConf/keys.php index df466b5..c46c307 100755 --- a/PlanetLabConf/keys.php +++ b/PlanetLabConf/keys.php @@ -1,8 +1,8 @@ // Copyright (C) 2004 The Trustees of Princeton University // -// $Id$ -// // Get admin API handle require_once 'plc_api.php'; @@ -23,15 +21,8 @@ global $adm; $persons = array(); $keys = array(); -// backwards compatibility with the old 4.2 API -global $__PLC_API_VERSION; -if ( ! method_exists ($adm,"GetInterfaces")) - $__PLC_API_VERSION = 4.2; -else - $__PLC_API_VERSION = 4.3; - if (!empty($_REQUEST['role'])) { - // XXX Implement API query filters + // API cannot filter on role_ids nor roles // $persons = $adm->GetPersons(array('roles' => array($_REQUEST['role']))); $all_persons = $adm->GetPersons(); foreach ($all_persons as $person) { @@ -40,29 +31,27 @@ if (!empty($_REQUEST['role'])) { } } } -if (isset($_REQUEST[PLC_SLICE_PREFIX . '_monitor'])) { - $user = $adm->GetPersons(array('first_name' => 'Site', 'last_name' => 'Assistant')); - if (!empty($user)) { - $persons[] = $user[0]; - } -} -if (isset($_REQUEST['site_admin'])) { - // Look up the node - if ($__PLC_API_VERSION==4.2) - $interfaces = $adm->GetNodeNetworks(array('ip' => $_SERVER['REMOTE_ADDR'])); - else - $interfaces = $adm->GetInterfaces(array('ip' => $_SERVER['REMOTE_ADDR'])); - if (!empty($interfaces)) { - $nodes = $adm->GetNodes(array($interfaces[0]['node_id'])); - if (!empty($nodes)) { - $node = $nodes[0]; - } +// +// NOTE: this user is not used by the monitor for the moment. +// +/* // {ple,pl}_monitor user is created on the nodes by the monitor-runlevelagent init script. */ +/* if (isset($_REQUEST[PLC_SLICE_PREFIX . '_monitor'])) { */ +/* $user = $adm->GetPersons(array('first_name' => 'Site', 'last_name' => 'Assistant')); */ +/* if (!empty($user)) { */ +/* $persons[] = $user[0]; */ +/* } */ +/* } */ + +if (isset($_REQUEST['site_admin']) && isset($_REQUEST['node_id'])) { + $nodes = $adm->GetNodes(array(intval($_REQUEST['node_id']))); + if (!empty($nodes)) { + $node = $nodes[0]; } if (isset($node)) { // Look up the site $sites = $adm->GetSites(array($node['site_id'])); - // Can't filter on roles so have to bruit force through entire userlist of site. + // Can't filter on roles so have to brute force through entire userlist of site. if ($sites && $sites[0]['person_ids']) { $all_persons = $adm->GetPersons($sites[0]['person_ids']); if (!empty($all_persons)) @@ -79,9 +68,14 @@ if (isset($_REQUEST['root'])) if (!empty($persons)) { $key_ids = array(); - foreach ($persons as $person) - if ($person['key_ids']) - $key_ids[] = $person['key_ids'][0]; + foreach ($persons as $person) { + if ($person['key_ids']) { + $person_key_ids = $person['key_ids']; + foreach ($person_key_ids as $person_key_id) { + $key_ids[] = $person_key_id; + } + } + } if (!empty($key_ids)) $keys = $adm->GetKeys($key_ids); }