X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab%2Fincludes%2Fplc_functions.php;h=76c81e73a0c9fcca2757d6b6c8633a26a051d8f7;hb=c410670fb3c8027ceb0f111e1a3242335b4fd2f5;hp=3e69f23fddbd1a6023d379ba9011b7809687eff8;hpb=c75673b4b6262e2c4370c862911dc1ecbf8291c8;p=plewww.git diff --git a/planetlab/includes/plc_functions.php b/planetlab/includes/plc_functions.php index 3e69f23..76c81e7 100644 --- a/planetlab/includes/plc_functions.php +++ b/planetlab/includes/plc_functions.php @@ -119,6 +119,7 @@ function l_sliver_t ($node_id,$slice_id,$text) { function l_persons () { return "/db/persons/index.php&active_line_tab=All Accounts"; } function l_persons_peer ($peer_id) { return "/db/persons/index.php?peerscope=$peer_id&active_line_tab=Local Accounts"; } function l_person ($person_id) { return "/db/persons/index.php?id=$person_id"; } +function l_person_roles ($person_id) { return "/db/persons/index.php?id=$person_id&show_details=0&show_roles=1"; } function l_person_t ($person_id,$text) { return href (l_person($person_id),$text); } function l_persons_site ($site_id) { return "/db/persons/index.php?site_id=$site_id"; } function l_persons_slice ($slice_id) { return "/db/persons/index.php?slice_id=$slice_id"; } @@ -305,6 +306,19 @@ function plc_role_global_hash ($api) { return $hash; } +// because GetRoles does not correctly support filters, it's really painful to do this +function sort_roles ($r1, $r2) { return $r2['role_id'] - $r1['role_id']; } +function roles_except ($roles, $exception_ids) { + $result=array(); + if ($roles) foreach ($roles as $role) { + if ( ! in_array ($role['role_id'],$exception_ids) ) { + $result[]=$role; + } + } + usort($result,sort_roles); + return $result; +} + //////////////////////////////////////////////////////////// nodegroups // hash by 'tagname=value' function plc_nodegroup_global_hash ($api,$tagnames=NULL) {