From f37eb546ac605b9c42c080b32cf8d4ebfcd177cb Mon Sep 17 00:00:00 2001 From: Stephen Soltesz Date: Thu, 4 Jun 2009 16:50:05 +0000 Subject: [PATCH] return multiple site list for 'my site' link. --- modules/planetlab.module | 114 +++++++++++++-------------- planetlab/includes/plc_functions.php | 21 +++++ 2 files changed, 75 insertions(+), 60 deletions(-) diff --git a/modules/planetlab.module b/modules/planetlab.module index 9eae1d3..2f4ebd3 100644 --- a/modules/planetlab.module +++ b/modules/planetlab.module @@ -108,74 +108,68 @@ function planetlab_block($op = 'list', $delta = 0, $edit = array()) { $block['content'] .= p( href(l_site_register(),"File a site registration") ); } else { $block['subject'] = truncate($plc->person['email'],30); + $is_admin = in_array(10,$plc->person['role_ids']); + $is_pi = in_array(20,$plc->person['role_ids']); + $is_user = in_array(30,$plc->person['role_ids']); + $is_tech = in_array(40,$plc->person['role_ids']); - //////////////////// Logout - $bullet_item = ''; + //////////////////// Logout if ($user->uid) { // Drupal logout (destroys the session and cleans up $user) // Thierry unclear when this triggers, I suspect this is obsolete - $bullet_item .= l(t('Logout of %s', - array('%s' => variable_get('site_name', 'local'))), 'logout'); + $items[] = leaf (l(t('Logout of %s', + array('%s' => variable_get('site_name', 'local'))), 'logout')); } else { // PlanetLab logout (just destroy the session) - $bullet_item .= href (l_logout(),'Logout'); + $items[] = leaf ( href (l_logout(),'Logout')); } - $bullet_item .= ul_start(); - // logout + + //////////////////// Sites + $site_item = ''; + $site_item .= href(l_sites(),"Sites"); + $site_item .= ul_start(); + #$site_item .= leaf( href(l_site(plc_my_site_id()),"My Site")); + $site_item .= plc_my_site_links(); # leaf( href(l_site(plc_my_site_id()),"My Site")); + if ( $is_admin ) + $site_item .= leaf( href(l_sites_pending(),"Pending Requests")); + $site_item .= ul_end(); + $items[] = expanded($site_item); + + //////////////////// Users + $user_item = ''; + $user_item .= href(l_persons(),'Users'); + $user_item .= ul_start(); + $user_item .= leaf( l_person_t(plc_my_person_id(),"My Account")); + if (is_pi) + $user_item .= leaf( href( l_persons_site(plc_my_site_id()), "My Users")); if ( $plc->alt_person && $plc->alt_auth) { $email = truncate($plc->person['email'],20); - $bullet_item .= leaf( href( l_sulogout(),"Un-become $email")); + $user_item .= leaf( href( l_sulogout(),"Logout of $email")); } - $bullet_item .= ul_end(); - $items []= expanded ($bullet_item); - - //////////////////// accounts - $bullet_item = ''; - $bullet_item .= l_person_t(plc_my_person_id(),"My Account"); - $bullet_item .= ul_start(); - if (plc_is_admin() || plc_is_pi()) - $bullet_item .= leaf( href( l_persons_site(plc_my_site_id()), "My Users")); - if (plc_is_admin()) { - $bullet_item .= leaf(href(l_persons_peer('local'),'Local users (looong)')); - $bullet_item .= leaf(href(l_persons(),'All users (looong)')); - } - - $bullet_item .= ul_end(); - $items [] = expanded($bullet_item); - - //////////////////// Sites - $bullet_item = ''; - $bullet_item .= href(l_sites(),"Sites"); - $bullet_item .= ul_start(); - $bullet_item .= leaf( href(l_site(plc_my_site_id()),"My Site")); - if ( plc_is_admin() ) - $bullet_item .= leaf( href(l_sites_pending(),"Pending Requests")); - $bullet_item .= ul_end(); - $items[] = expanded($bullet_item); + $user_item .= ul_end(); + $items [] = expanded($user_item); //////////////////// Nodes - $bullet_item = ''; - $bullet_item .= href(l_nodes(),"Nodes"); - $bullet_item .= ul_start(); - $bullet_item .= leaf( href (l_nodes_site (plc_my_site_id()),"My Site Nodes")); - $bullet_item .= leaf( href (l_register_node(),"Register Node")); - $bullet_item .= ul_end(); - $items [] = expanded($bullet_item); + $node_item = ''; + $node_item .= href(l_nodes(),"Nodes"); + $node_item .= ul_start(); + $node_item .= leaf( href (l_nodes_site (plc_my_site_id()),"My Site Nodes")); + $node_item .= leaf( href (l_node_add(),"Add Node")); + $node_item .= ul_end(); + $items [] = expanded($node_item); //////////////////// Slices - $bullet_item = ''; - //if( !( plc_is_tech() && ! plc_is_user() && ! plc_is_pi() && ! plc_is_admin() ) ) - $bullet_item .= href(l_slices(),"Slices"); - $bullet_item .= ul_start(); - if (plc_is_admin()) - $bullet_item .= leaf ( href(l_slices_site(plc_my_site_id()), 'My Site Slices')); - if( plc_is_admin() || plc_is_pi() ) { - $bullet_item .= leaf(href(l_slice_add(),"Create Slice")); + $slice_item = ''; + //if( !( $is_tech && ! $is_user && ! $is_pi && ! $is_admin ) ) + $slice_item .= href(l_slices(),"Slices"); + $slice_item .= ul_start(); + if( $is_admin || $is_pi ) { + $slice_item .= leaf(href(l_slice_add(),"Create Slice")); } - if( !( plc_is_tech() && ! plc_is_user() && ! plc_is_pi() && ! plc_is_admin() ) ) - $bullet_item .= leaf(href(l_sirius(),"Sirius")); - $bullet_item .= ul_end(); - $items [] = expanded($bullet_item); + if( !( $is_tech && ! $is_user && ! $is_pi && ! $is_admin ) ) + $slice_item .= leaf(href(l_sirius(),"Sirius")); + $slice_item .= ul_end(); + $items [] = expanded($slice_item); //////////////////// Admin if( plc_is_admin() || plc_is_pi() ) { @@ -192,13 +186,13 @@ function planetlab_block($op = 'list', $delta = 0, $edit = array()) { $items [] = expanded($bullet_item); } - $bullet_item = ''; - $bullet_item .= href(l_about(),'About MyPLC'); - $bullet_item .= ul_start(); - $bullet_item .= leaf ( href (l_doc_plcapi(),"PLCAPI doc")); - $bullet_item .= leaf ( href (l_doc_nmapi(),"NMAPI doc")); - $bullet_item .= ul_end(); - $items[] = expanded($bullet_item); + $doc_item = ''; + $doc_item .= href(l_about(),'About MyPLC'); + $doc_item .= ul_start(); + $doc_item .= leaf ( href (l_doc_plcapi(),"PLCAPI doc")); + $doc_item .= leaf ( href (l_doc_nmapi(),"NMAPI doc")); + $doc_item .= ul_end(); + $items[] = expanded($doc_item); //$block['content'] = theme('list_item', $items); $block['content'] = menu_theme($items); diff --git a/planetlab/includes/plc_functions.php b/planetlab/includes/plc_functions.php index adffb69..4e8928c 100644 --- a/planetlab/includes/plc_functions.php +++ b/planetlab/includes/plc_functions.php @@ -36,6 +36,27 @@ function plc_my_site_ids () { global $plc; return $plc->person['site_ids']; } +function plc_my_site_names () { + global $plc; + global $api; + $ret = $api->GetSites($plc->person['site_ids'], array('site_id', 'abbreviated_name')); + return $ret; +} + +function plc_my_site_links() +{ + $site_item = ''; + if ( sizeof(plc_my_site_ids()) > 1 ) + { + foreach (plc_my_site_names() as $site) + { + $site_item .= leaf( href(l_site($site['site_id']),$site['abbreviated_name'])); + } + } else { + $site_item .= leaf( href(l_site(plc_my_site_id()),"My Site")); + } + return $site_item; +} function plc_my_site_id () { global $plc; -- 2.43.0