blob: d79ee5de563d6f93590c28b02d6b8aae34e675d2 [file] [log] [blame]
<?php
class CommonUtilities
{
/**
* Print success message
* @param $message
*/
public static function print_success_message($message)
{
echo '<div class="alert alert-success">' . $message . '</div>';
}
/**
* Print warning message
* @param $message
*/
public static function print_warning_message($message)
{
echo '<div class="alert alert-warning">' . $message . '</div>';
}
/**
* Print error message
* @param $message
*/
public static function print_error_message($message)
{
echo '<div class="alert alert-danger">' . $message . '</div>';
}
/**
* Print info message
* @param $message
*/
public static function print_info_message($message)
{
echo '<div class="alert alert-info">' . $message . '</div>';
}
/**
* Redirect to the given url
* @param $url
*/
public static function redirect($url)
{
echo '<meta http-equiv="Refresh" content="0; URL=' . $url . '">';
}
/**
* Return true if the form has been submitted
* @return bool
*/
public static function form_submitted()
{
return isset($_POST['Submit']);
}
/**
* Store username in session variables
* @param $username
*/
public static function store_id_in_session($username)
{
Session::put('username', $username);
Session::put('loggedin', true);
}
/**
* Return true if the username stored in the session
* @return bool
*/
public static function id_in_session()
{
if (Session::has("username") && Session::has('loggedin'))
return true;
else
return false;
}
/**
* Verify if the user is already logged in. If not, redirect to the home page.
*/
public static function verify_login()
{
if (CommonUtilities::id_in_session()) {
return true;
} else {
CommonUtilities::print_error_message('User is not logged in!');
return false;
}
}
/**
* Create navigation bar
* Used for all pages
*/
public static function create_nav_bar()
{
$menus = array();
if (Session::has('loggedin') && (Session::has('authorized-user') || Session::has('admin')
|| Session::has('admin-read-only'))) {
$menus = array
(
'Project' => array
(
array('label' => 'Create', 'url' => URL::to('/') . '/project/create', "nav-active" => "project"),
array('label' => 'Browse', 'url' => URL::to('/') . '/project/browse', "nav-active" => "project")
),
'Experiment' => array
(
array('label' => 'Create', 'url' => URL::to('/') . '/experiment/create', "nav-active" => "experiment"),
array('label' => 'Browse', 'url' => URL::to('/') . '/experiment/browse', "nav-active" => "experiment")
),
'Data' => array
(
array('label' => 'Browse', 'url' => URL::to('/') . '/data/browse', "nav-active" => "experiment")
)
);
// if (Session::has("admin")) {
// $menus['Compute Resource'] = array
// (
// array('label' => 'Register', 'url' => URL::to('/') . '/cr/create', "nav-active" => "compute-resource"),
// array('label' => 'Browse', 'url' => URL::to('/') . '/cr/browse', "nav-active" => "compute-resource")
// );
// $menus['App Catalog'] = array
// (
// array('label' => 'Module', 'url' => URL::to('/') . '/app/module', "nav-active" => "app-catalog"),
// array('label' => 'Interface', 'url' => URL::to('/') . '/app/interface', "nav-active" => "app-catalog"),
// array('label' => 'Deployment', 'url' => URL::to('/') . '/app/deployment', "nav-active" => "app-catalog")
// );
// }
if( isset( Config::get('pga_config.portal')['jira-help']))
{
$menus['Help'] = array();
if( Config::get('pga_config.portal')['jira-help']['report-issue-script'] != ''
&& Config::get('pga_config.portal')['jira-help']['report-issue-collector-id'] != '')
{
$menus['Help'][] = array('label' => 'Report Issue', 'url' => '#', "nav-active", "");
}
// array('label' => 'Forgot Password?', 'url' => URL::to('/') . '/forgot-password', "nav-active" => "")
if( Config::get('pga_config.portal')['jira-help']['request-feature-script'] != ''
&& Config::get('pga_config.portal')['jira-help']['request-feature-collector-id'] != '')
{
$menus['Help'][] = array('label' => 'Request Feature', 'url' => '#', "nav-active", "");
}
if( count( $menus['Help'] ) == 0 )
unset( $menus['Help']);
}
}
echo '<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!--
<a class="navbar-brand" href="' . URL::to('home') . '" title="PHP Gateway with Airavata">PGA</a>
-->
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">';
foreach ($menus as $label => $options) {
Session::has('loggedin') ? $disabled = '' : $disabled = ' class="disabled"';
$active = "";
if (Session::has("nav-active") && isset($options[0]['nav-active'])) {
if ($options[0]['nav-active'] == Session::get("nav-active"))
$active = " active ";
}
echo '<li class="dropdown ' . $active . '">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">' . $label . '<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">';
if (Session::has('loggedin')) {
foreach ($options as $option) {
$id = strtolower(str_replace(' ', '-', $option['label']));
echo '<li' . $disabled . '><a href="' . $option['url'] . '" id=' . $id . '>' . $option['label'] . '</a></li>';
}
}
echo '</ul>
</li>';
}
echo '</ul>
<ul class="nav navbar-nav navbar-right">';
// right-aligned content
if (Session::has('loggedin')) {
$active = "";
if (Session::has("nav-active")) {
if ("user-console" == Session::get("nav-active"))
$active = " active ";
}
if (Session::has("admin") || Session::has("admin-read-only"))
echo '<li class="' . $active . '"><a href="' . URL::to("/") . '/admin/dashboard"><span class="glyphicon glyphicon-user"></span>Admin Dashboard</a></li>';
// else
// echo '<li><a href="' . URL::to("/") . '/user/profile"><span class="glyphicon glyphicon-user"></span> Profile</a></li>';
echo '<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">' . Session::get("username") . ' <span class="caret"></span></a>';
echo '<ul class="dropdown-menu" role="menu">';
echo '<li><a href="' . URL::to('/') . '/logout"><span class="glyphicon glyphicon-log-out"></span> Log out</a></li>';
echo '</ul></li></ul>';
} else {
echo '<li><a href="' . URL::to('/') . '/create"><span class="glyphicon glyphicon-user"></span> Create account</a></li>';
echo '<li><a href="' . URL::to('/') . '/login"><span class="glyphicon glyphicon-log-in"></span> Log in</a></li>';
echo '</ul>';
}
echo '</div></div></nav>';
}
/**
* Add attributes to the HTTP header.
*/
public static function create_http_header()
{
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
}
/**
* Open the XML file containing the community token
* @param $tokenFilePath
* @throws Exception
*/
public static function open_tokens_file($tokenFilePath)
{
if (file_exists($tokenFilePath)) {
$tokenFile = simplexml_load_file($tokenFilePath);
} else {
throw new Exception('Error: Cannot connect to tokens database!');
}
if (!$tokenFile) {
throw new Exception('Error: Cannot open tokens database!');
}
}
}