X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=keys.php;h=eab3167f5d6204019f0e29f0f843b488704adaa3;hb=dfe7e2b2e58067aa93e732c3ccc428c94c0d839e;hp=38b04e9ea628e8a67a46330452764709be5aa2be;hpb=ad638a3d9c2530d7bc51b8d41b6f1eb5b3ea6085;p=nodeconfig.git diff --git a/keys.php b/keys.php index 38b04e9..eab3167 100755 --- a/keys.php +++ b/keys.php @@ -13,7 +13,7 @@ // Aaron Klingaman // Copyright (C) 2004 The Trustees of Princeton University // -// $Id: keys.php,v 1.8 2005/10/04 18:11:26 alk Exp $ +// $Id$ // // Get admin API handle @@ -36,30 +36,25 @@ if (!empty($_REQUEST['role'])) { if (isset($_REQUEST['site_admin'])) { // Look up the node - $nodenetworks = $adm->GetNodeNetworks(array($_SERVER['REMOTE_ADDR'])); + $nodenetworks = $adm->GetNodeNetworks(array('ip' => $_SERVER['REMOTE_ADDR'])); if (!empty($nodenetworks)) { $nodes = $adm->GetNodes(array($nodenetworks[0]['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. if ($sites && $sites[0]['person_ids']) { - // XXX Implement API query filters - // $persons = $adm->GetPersons(array('person_id' => $sites[0]['person_ids'], - // 'roles' => array('pi'))); - // $persons += $adm->GetPersons(array('person_id' => $sites[0]['person_ids'], - // 'roles' => array('tech'))); $all_persons = $adm->GetPersons($sites[0]['person_ids']); foreach ($all_persons as $person) { - if (in_array('pi', $person['roles']) || - in_array('tech', $person['roles'])) { - $persons[] = $person; - } - } + if ((in_array('pi', $person['roles']) || in_array('tech', $person['roles'])) && + $person['enabled']) { + $persons[] = $person; + } + } } } } @@ -68,19 +63,21 @@ if (isset($_REQUEST['root'])) { $keys[] = array('key' => file_get_contents(PLC_ROOT_SSH_KEY_PUB)); } + if (!empty($persons)) { $key_ids = array(); foreach ($persons as $person) { - $key_ids = $key_ids + $person['key_ids']; + if ($person['key_ids']) { + $key_ids[] = $person['key_ids'][0]; + } } - if (!empty($key_ids)) { - $keys = $keys + $adm->GetKeys($key_ids); + $keys = $adm->GetKeys($key_ids); } } foreach ($keys as $key) { - print $key['key']; + print $key['key']. "\n"; } ?>