blob: 4935d717a51d2d593d6d22208dc4a93ed4cf5564 [file] [log] [blame]
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/
/*
* User Routes
*/
Route::get("create", "AccountController@createAccountView");
Route::post("create", "AccountController@createAccountSubmit");
Route::get("login", "AccountController@loginView");
Route::post("login", "AccountController@loginSubmit");
Route::get("login-desktop", "AccountController@loginDesktopView");
Route::get("refreshed-token-desktop", "AccountController@getRefreshedTokenForDesktop");
Route::get("account/dashboard", "AccountController@dashboard");
Route::get("account/update-gateway", "GatewayRequestUpdateController@updateGateway");
Route::get("callback-url", "AccountController@oauthCallback");
Route::get("logout", "AccountController@logout");
Route::post("api-login", "AccountController@apiLoginSubmit");
Route::get("forgot-password", "AccountController@forgotPassword");
Route::get("reset-password", "AccountController@resetPassword");
Route::post("reset-password", "AccountController@resetPasswordSubmit");
Route::post("forgot-password", "AccountController@forgotPasswordSubmit");
Route::get("confirm-user-registration", "AccountController@confirmAccountCreation");
Route::post("confirm-user-registration", "AccountController@confirmAccountCreation");
Route::get("setUserTimezone", function () {
Session::set("user_timezone", Input::get("timezone"));
});
Route::get("allocation-request", "AccountController@allocationRequestView");
Route::post("allocation-request", "AccountController@allocationRequestSubmit");
Route::get("account/settings", "UserSettingsController@getUserSettings");
Route::get("account/credential-store", "UserSettingsController@getCredentialStore");
Route::post("account/set-default-credential", "UserSettingsController@setDefaultCredential");
Route::post("account/add-credential", "UserSettingsController@addCredential");
Route::post("account/delete-credential", "UserSettingsController@deleteCredential");
Route::get("account/user-compute-resources", "UserSettingsController@getComputeResources");
Route::post("account/add-user-crp", "UserSettingsController@addUserComputeResourcePreference");
Route::post("account/update-user-crp", "UserSettingsController@updateUserComputeResourcePreference");
Route::post("account/delete-user-crp", "UserSettingsController@deleteUserComputeResourcePreference");
Route::get("account/user-storage-resources", "UserSettingsController@getStorageResources");
Route::post("account/add-user-srp", "UserSettingsController@addUserStorageResourcePreference");
Route::post("account/update-user-srp", "UserSettingsController@updateUserStorageResourcePreference");
Route::post("account/delete-user-srp", "UserSettingsController@deleteUserStorageResourcePreference");
Route::get("account/user-profile", "UserSettingsController@getUserProfile");
Route::post("account/user-profile", "UserSettingsController@updateUserProfile");
Route::get("account/user-profile-update-email", "UserSettingsController@showUpdateEmailView");
Route::post("account/user-profile-update-email", "UserSettingsController@submitUpdateEmail");
Route::get("user-profile-confirm-email", "UserSettingsController@confirmUpdateEmail");
/*
* The following routes will not work without logging in.
*
*/
/*
* Project Routes
*/
Route::get("project/create", "ProjectController@createView");
Route::post("project/create", "ProjectController@createSubmit");
Route::get("project/summary", "ProjectController@summary");
Route::get("project/edit", "ProjectController@editView");
Route::post("project/edit", "ProjectController@editSubmit");
Route::get("project/browse", "ProjectController@browseView");
Route::post("project/browse", "ProjectController@browseView");
Route::get("project/shared-users", "ProjectController@sharedUsers");
Route::get("project/unshared-users", "ProjectController@unsharedUsers");
Route::get("project/all-users", "ProjectController@allUsers");
/*
* Experiment Routes
*/
Route::get("experiment/create", "ExperimentController@createView");
Route::post("experiment/create", "ExperimentController@createSubmit");
Route::get("experiment/summary", "ExperimentController@summary");
Route::post("experiment/summary", "ExperimentController@expChange");
Route::post("experiment/clone", "ExperimentController@cloneExperiment");
Route::get("experiment/edit", "ExperimentController@editView");
Route::post("experiment/edit", "ExperimentController@editSubmit");
Route::get("experiment/getQueueView", "ExperimentController@getQueueView");
Route::get("experiment/browse", "ExperimentController@browseView");
Route::post("experiment/browse", "ExperimentController@browseView");
Route::get("experiment/shared-users", "ExperimentController@sharedUsers");
Route::get("experiment/unshared-users", "ExperimentController@unsharedUsers");
Route::post("experiment/update-sharing", "ExperimentController@updateSharing");
Route::get("download", function(){
if(Input::has("path") && (0 == strpos(Input::get("path"), Session::get('username'))
|| 0 == strpos(Input::get("path"), "/" . Session::get('username')))){
$path = Input::get("path");
if (strpos($path, '/../') !== false || strpos($path, '/..') !== false || strpos($path, '../') !== false)
return null;
if(0 === strpos($path, '/')){
$path = substr($path, 1);
}
$downloadLink = Config::get('pga_config.airavata')['experiment-data-absolute-path'] . '/' . $path;
return Response::download( $downloadLink);
}else if(Input::has("id") && (0 == strpos(Input::get("id"), "airavata-dp"))){
$id = Input::get("id");
$dataRoot = Config::get("pga_config.airavata")["experiment-data-absolute-path"];
if(!((($temp = strlen($dataRoot) - strlen("/")) >= 0 && strpos($dataRoot, "/", $temp) !== false)))
$dataRoot = $dataRoot . "/";
$dataProductModel = Airavata::getDataProduct(Session::get('authz-token'), $id);
$currentOutputPath = "";
foreach ($dataProductModel->replicaLocations as $rp) {
if($rp->replicaLocationCategory == Airavata\Model\Data\Replica\ReplicaLocationCategory::GATEWAY_DATA_STORE){
$currentOutputPath = $rp->filePath;
break;
}
}
//TODO check permission
$path = str_replace($dataRoot, "", parse_url($currentOutputPath, PHP_URL_PATH));
$downloadLink = parse_url(URL::to('/') . Config::get('pga_config.airavata')['experiment-data-absolute-path'] . '/' . $path, PHP_URL_PATH);
return Response::download( $downloadLink);
}
});
Route::get("files/browse", "FilemanagerController@browse");
Route::get("files/get","FilemanagerController@get");
/*
* Group Routes
*/
Route::get("group/create", "GroupController@createView");
Route::post("group/create", "GroupController@createSubmit");
Route::get("group/view", "GroupController@viewView");
Route::post("group/edit", "GroupController@editSubmit");
/*
* Compute Resources Routes
*/
Route::get("cr/create", function () {
return Redirect::to("cr/create/step1");
});
Route::get("cr/create", "ComputeResourceController@createView");
Route::post("cr/create", "ComputeResourceController@createSubmit");
Route::get("cr/edit", "ComputeResourceController@editView");
Route::post("cr/edit", "ComputeResourceController@editSubmit");
Route::get("cr/view", "ComputeResourceController@viewView");
Route::get("cr/browse", "ComputeResourceController@browseView");
Route::post("cr/delete-jsi", "ComputeResourceController@deleteActions");
Route::post("cr/delete-dmi", "ComputeResourceController@deleteActions");
Route::post("cr/delete-cr", "ComputeResourceController@deleteActions");
/*
* Data Storage Resources Routes
*/
Route::get("sr/create", function () {
return Redirect::to("sr/create/step1");
});
Route::get("sr/create", "StorageResourceController@createView");
Route::post("sr/create", "StorageResourceController@createSubmit");
Route::get("sr/edit", "StorageResourceController@editView");
Route::post("sr/edit", "StorageResourceController@editSubmit");
Route::get("sr/view", "StorageResourceController@srView");
Route::get("sr/browse", "StorageResourceController@browseView");
Route::post("sr/delete-jsi", "StorageResourceController@deleteActions");
Route::post("sr/delete-dmi", "StorageResourceController@deleteActions");
Route::post("sr/delete-sr", "StorageResourceController@deleteActions");
/*
* Application Catalog Routes
*/
Route::get("app/module", "ApplicationController@showAppModuleView");
Route::post("app/module-create", "ApplicationController@modifyAppModuleSubmit");
Route::post("app/module-edit", "ApplicationController@modifyAppModuleSubmit");
Route::post("app/module-delete", "ApplicationController@deleteAppModule");
Route::get("app/interface", "ApplicationController@showAppInterfaceView");
Route::post("app/interface-create", "ApplicationController@createAppInterfaceSubmit");
Route::post("app/interface-clone", "ApplicationController@cloneAppInterfaceSubmit");
Route::post("app/interface-edit", "ApplicationController@editAppInterfaceSubmit");
Route::post("app/interface-delete", "ApplicationController@deleteAppInterface");
Route::get("app/deployment", "ApplicationController@showAppDeploymentView");
Route::post("app/deployment-create", "ApplicationController@createAppDeploymentSubmit");
Route::post("app/deployment-edit", "ApplicationController@editAppDeploymentSubmit");
Route::post("app/deployment-delete", "ApplicationController@deleteAppDeployment");
Route::get("gp/create", "GatewayprofileController@createView");
Route::post("gp/create", "GatewayprofileController@createSubmit");
Route::post("gp/edit", "GatewayprofileController@editGP");
Route::get("gp/browse", "GatewayprofileController@browseView");
Route::post("gp/delete-gp", "GatewayprofileController@delete");
Route::post("gp/remove-cr", "GatewayprofileController@delete");
Route::post("gp/add-crp", "GatewayprofileController@modifyCRP");
Route::post("gp/update-crp", "GatewayprofileController@modifyCRP");
Route::post("gp/add-srp", "GatewayprofileController@modifySRP");
Route::post("gp/update-srp", "GatewayprofileController@modifySRP");
Route::post("gp/update-idp", "GatewayprofileController@modifyIDP");
Route::post("gp/remove-sr", "GatewayprofileController@delete");
Route::post("gp/credential-store-token-change", "GatewayprofileController@cstChange");
//DataCat
Route::get("datacat/select", "DataCatController@select");
Route::get("datacat/summary", "DataCatController@summary");
//Management Dashboard
//Added to reroute the admin page to the new django portal
if( Config::get('pga_config.portal')['super-admin-portal'] == false and Config::get('pga_config.portal')['reroute-to-django'] == true){
Route::get("admin/dashboard", "AdminController@reRoute");
}
else{
Route::get("admin/dashboard", "AdminController@dashboard");
}
Route::get("admin/dashboard/gateway", "AdminController@gatewayView");
Route::get("admin/dashboard/users", "AdminController@usersView");
Route::post("admin/dashboard/users", "AdminController@searchUsersView");
Route::get("admin/dashboard/roles", "AdminController@rolesView");
Route::get("admin/dashboard/experiments", "AdminController@experimentsView");
Route::get("admin/dashboard/experimentsOfTimeRange", "AdminController@getExperimentsOfTimeRange");
Route::get("admin/dashboard/experimentStatistics", "AdminController@experimentStatistics");
Route::get("admin/dashboard/resources", "AdminController@resourcesView");
Route::get("admin/dashboard/experiment/summary", function () {
return Redirect::to("experiment/summary?expId=" . urlencode($_GET["expId"]) . "&dashboard=true");
});
Route::get("admin/dashboard/credential-store", "AdminController@credentialStoreView");
Route::get("manage/users", "AdminController@usersView");
Route::post("admin/adduser", "AdminController@addAdminSubmit");
Route::get("admin/getusercountinrole", "AdminController@getUserCountInRole");
Route::post("admin/addgatewayadmin", "AdminController@addGatewayAdminSubmit");
Route::post("admin/add-role", "AdminController@addRole");
Route::post("admin/check-roles", "AdminController@getRoles");
Route::post("admin/delete-role", "AdminController@deleteRole");
Route::post("admin/enable-cr", "AdminController@enableComputeResource");
Route::post("admin/disable-cr", "AdminController@disableComputeResource");
Route::post("admin/enable-sr", "AdminController@enableStorageResource");
Route::post("admin/disable-sr", "AdminController@disableStorageResource");
Route::post("admin/add-roles-to-user", "AdminController@addRolesToUser");
Route::post("admin/remove-role-from-user", "AdminController@removeRoleFromUser");
Route::post("admin/create-ssh-token", "AdminController@createSSH");
Route::post("admin/remove-ssh-token", "AdminController@removeSSH");
Route::post("admin/create-pwd-token", "AdminController@createPWD");
Route::post("admin/remove-pwd-token", "AdminController@removePWD");
//GatewayProviders
Route::get("provider/request-gateway", "AdminController@checkRequest");
Route::get("provider/add-gateway", "AdminController@requestGateway");
Route::get("provider/update-details", "GatewayRequestUpdateController@updateDetails");
//notices
Route::get("admin/dashboard/notices", "AdminController@noticesView");
Route::post("add-notice", "AdminController@addNotice");
Route::post("update-notice", "AdminController@updateNotice");
Route::post("delete-notice", "AdminController@deleteNotice");
Route::post("notice-seen-ack", "AccountController@noticeSeenAck");
//Super Admin Specific calls
Route::get("admin/add-gateway", "AdminController@createGateway");
Route::get("admin/add-new-gateway", "AdminController@addGateway");
Route::get("admin/update-gateway-request", "AdminController@updateGateway");
/*
* Theme Pages Routes
*/
Route::get( "pages/{theme_view}", function( $theme_view){
//In some cases, theme doesn't get loaded in session, so doing that here
//as well incase it does not.
if(! Session::has("theme")){
Session::put("theme", Config::get('pga_config.portal')['theme']);
}
return View::make("pages", array("page" => $theme_view) );
});
//Airavata Server Check
Route::get("airavata/down", function () {
return View::make("server-down");
});
/*
* Test Routes.
*/
Route::get("testjob", function () {
return Markdown::render( View::make('edit-mode'));
});
/*handling errors on production */
App::missing(function($exception)
{
return Response::view('error', array(), 404);
});
/*
* Following base Routes need to be at the bottom.
*/
Route::controller("home", "HomeController");
Route::controller("/", "HomeController");