You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/11/14 20:49:36 UTC

airavata-php-gateway git commit: AIRAVATA-2211 Moved UserResourceProfile UIs under new User Settings menu

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/develop de3ac07ad -> d36574e5b


AIRAVATA-2211 Moved UserResourceProfile UIs under new User Settings menu


Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/d36574e5
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/d36574e5
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/d36574e5

Branch: refs/heads/develop
Commit: d36574e5b4f6966d6af0109c49acf02fb579828f
Parents: de3ac07
Author: Marcus Christie <ma...@iu.edu>
Authored: Mon Nov 14 15:14:40 2016 -0500
Committer: Marcus Christie <ma...@iu.edu>
Committed: Mon Nov 14 15:14:40 2016 -0500

----------------------------------------------------------------------
 app/controllers/AccountController.php           | 176 -----------------
 app/controllers/UserSettingsController.php      | 189 +++++++++++++++++++
 app/libraries/CommonUtilities.php               |   3 +-
 app/routes.php                                  |  29 +--
 app/views/account/credential-store.blade.php    |   7 +-
 app/views/account/dashboard.blade.php           |  41 ----
 app/views/account/settings.blade.php            |  58 ++++++
 .../account/user-compute-resources.blade.php    |   6 +-
 .../account/user-storage-resources.blade.php    |   6 +-
 public/css/user-settings.css                    |  13 ++
 10 files changed, 292 insertions(+), 236 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/controllers/AccountController.php
----------------------------------------------------------------------
diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php
index 65bcdc8..6cd9c38 100644
--- a/app/controllers/AccountController.php
+++ b/app/controllers/AccountController.php
@@ -466,180 +466,4 @@ class AccountController extends BaseController
         Session::put( "notice-count", Input::get("notice-count"));
         Session::put("notice-seen", true);
     }
-
-    public function getCredentialStore() {
-
-        $userResourceProfile = URPUtilities::get_or_create_user_resource_profile();
-        $userCredentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
-        $defaultCredentialSummary = $userCredentialSummaries[$userResourceProfile->credentialStoreToken];
-        foreach ($userCredentialSummaries as $credentialSummary) {
-            $credentialSummary->canDelete = ($credentialSummary->token != $defaultCredentialSummary->token);
-        }
-
-        return View::make("account/credential-store", array(
-            "userResourceProfile" => $userResourceProfile,
-            "credentialSummaries" => $userCredentialSummaries,
-            "defaultCredentialSummary" => $defaultCredentialSummary
-        ));
-    }
-
-    public function setDefaultCredential() {
-
-        $defaultToken = Input::get("defaultToken");
-        $userResourceProfile = URPUtilities::get_user_resource_profile();
-        $userResourceProfile->credentialStoreToken = $defaultToken;
-        URPUtilities::update_user_resource_profile($userResourceProfile);
-
-        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
-        $description = $credentialSummaries[$defaultToken]->description;
-
-        return Redirect::to("account/credential-store")->with("message", "SSH Key '$description' is now the default");
-    }
-
-    public function addCredential() {
-
-        $rules = array(
-            "credential-description" => "required",
-        );
-
-        $messages = array(
-            "credential-description.required" => "A description is required for a new SSH key",
-        );
-
-        $validator = Validator::make(Input::all(), $rules, $messages);
-        if ($validator->fails()) {
-            return Redirect::to("account/credential-store")
-                ->withErrors($validator);
-        }
-
-        $description = Input::get("credential-description");
-
-        if (AdminUtilities::create_ssh_token_with_description($description)) {
-            return Redirect::to("account/credential-store")->with("message", "SSH Key '$description' was added");
-        }
-    }
-
-    public function deleteCredential() {
-
-        $userResourceProfile = URPUtilities::get_user_resource_profile();
-        $credentialStoreToken = Input::get("credentialStoreToken");
-        if ($credentialStoreToken == $userResourceProfile->credentialStoreToken) {
-            return Redirect::to("account/credential-store")->with("error-message", "You are not allowed to delete the default SSH key.");
-        }
-
-        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
-        $description = $credentialSummaries[$credentialStoreToken]->description;
-
-        if (AdminUtilities::remove_ssh_token($credentialStoreToken)) {
-            return Redirect::to("account/credential-store")->with("message", "SSH Key '$description' was deleted");
-        }
-    }
-
-    public function getComputeResources(){
-
-        $userResourceProfile = URPUtilities::get_or_create_user_resource_profile();
-
-        $allCRs = CRUtilities::getAllCRObjects();
-        foreach( $allCRs as $index => $crObject)
-        {
-            $allCRsById[$crObject->computeResourceId] = $crObject;
-        }
-        // Add crDetails to each UserComputeResourcePreference
-        foreach ($userResourceProfile->userComputeResourcePreferences as $index => $userCompResPref) {
-            $userCompResPref->crDetails = $allCRsById[$userCompResPref->computeResourceId];
-            // To figure out the unselectedCRs, remove this compute resource from allCRsById
-            unset($allCRsById[$userCompResPref->computeResourceId]);
-        }
-        $unselectedCRs = array_values($allCRsById);
-
-        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
-        $defaultCredentialSummary = $credentialSummaries[$userResourceProfile->credentialStoreToken];
-
-        return View::make("account/user-compute-resources", array(
-            "userResourceProfile" => $userResourceProfile,
-            "computeResources" => $allCRs,
-            "unselectedCRs" => $unselectedCRs,
-            "credentialSummaries" => $credentialSummaries,
-            "defaultCredentialSummary" => $defaultCredentialSummary
-        ));
-    }
-
-    public function addUserComputeResourcePreference() {
-
-        if( URPUtilities::add_or_update_user_CRP( Input::all()) )
-        {
-            return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been saved.");
-        }
-    }
-
-    public function updateUserComputeResourcePreference() {
-
-        if( URPUtilities::add_or_update_user_CRP( Input::all(), true ) )
-        {
-            return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been updated.");
-        }
-    }
-
-    public function deleteUserComputeResourcePreference() {
-        $computeResourceId = Input::get("rem-user-crId");
-        $result = URPUtilities::delete_user_CRP( $computeResourceId );
-        if( $result )
-        {
-            return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been deleted.");
-        }
-    }
-
-    public function getStorageResources(){
-
-        $userResourceProfile = URPUtilities::get_or_create_user_resource_profile();
-
-        $allSRs = SRUtilities::getAllSRObjects();
-        foreach( $allSRs as $index => $srObject )
-        {
-            $allSRsById[$srObject->storageResourceId] = $srObject;
-        }
-        // Add srDetails to each UserStoragePreference
-        foreach ($userResourceProfile->userStoragePreferences as $index => $userStoragePreference) {
-            $userStoragePreference->srDetails = $allSRsById[$userStoragePreference->storageResourceId];
-            // To figure out the unselectedSRs, remove this storage resource from allSRsById
-            unset($allSRsById[$userStoragePreference->storageResourceId]);
-        }
-        $unselectedSRs = array_values($allSRsById);
-
-        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
-        $defaultCredentialSummary = $credentialSummaries[$userResourceProfile->credentialStoreToken];
-
-        return View::make("account/user-storage-resources", array(
-            "userResourceProfile" => $userResourceProfile,
-            "storageResources" => $allSRs,
-            "unselectedSRs" => $unselectedSRs,
-            "credentialSummaries" => $credentialSummaries,
-            "defaultCredentialSummary" => $defaultCredentialSummary
-        ));
-    }
-
-    public function addUserStorageResourcePreference() {
-
-        if( URPUtilities::add_or_update_user_SRP( Input::all()) )
-        {
-            return Redirect::to("account/user-storage-resources")->with("message","Storage Resource Account Settings have been saved.");
-        }
-    }
-
-    public function updateUserStorageResourcePreference() {
-
-        if( URPUtilities::add_or_update_user_SRP( Input::all(), true ) )
-        {
-            return Redirect::to("account/user-storage-resources")->with("message","Storage Resource Account Settings have been updated.");
-        }
-    }
-
-    public function deleteUserStorageResourcePreference() {
-        $storageResourceId = Input::get("rem-user-srId");
-        $result = URPUtilities::delete_user_SRP( $storageResourceId );
-        if( $result )
-        {
-            return Redirect::to("account/user-storage-resources")->with("message","Storage Resource Account Settings have been deleted.");
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/controllers/UserSettingsController.php
----------------------------------------------------------------------
diff --git a/app/controllers/UserSettingsController.php b/app/controllers/UserSettingsController.php
new file mode 100644
index 0000000..88fdc37
--- /dev/null
+++ b/app/controllers/UserSettingsController.php
@@ -0,0 +1,189 @@
+<?php
+
+class UserSettingsController extends BaseController
+{
+    public function __construct()
+    {
+        Session::put("nav-active", "user-menu");
+    }
+
+    public function getUserSettings() {
+        return View::make("account/settings");
+    }
+
+    public function getCredentialStore() {
+
+        $userResourceProfile = URPUtilities::get_or_create_user_resource_profile();
+        $userCredentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
+        $defaultCredentialSummary = $userCredentialSummaries[$userResourceProfile->credentialStoreToken];
+        foreach ($userCredentialSummaries as $credentialSummary) {
+            $credentialSummary->canDelete = ($credentialSummary->token != $defaultCredentialSummary->token);
+        }
+
+        return View::make("account/credential-store", array(
+            "userResourceProfile" => $userResourceProfile,
+            "credentialSummaries" => $userCredentialSummaries,
+            "defaultCredentialSummary" => $defaultCredentialSummary
+        ));
+    }
+
+    public function setDefaultCredential() {
+
+        $defaultToken = Input::get("defaultToken");
+        $userResourceProfile = URPUtilities::get_user_resource_profile();
+        $userResourceProfile->credentialStoreToken = $defaultToken;
+        URPUtilities::update_user_resource_profile($userResourceProfile);
+
+        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
+        $description = $credentialSummaries[$defaultToken]->description;
+
+        return Redirect::to("account/credential-store")->with("message", "SSH Key '$description' is now the default");
+    }
+
+    public function addCredential() {
+
+        $rules = array(
+            "credential-description" => "required",
+        );
+
+        $messages = array(
+            "credential-description.required" => "A description is required for a new SSH key",
+        );
+
+        $validator = Validator::make(Input::all(), $rules, $messages);
+        if ($validator->fails()) {
+            return Redirect::to("account/credential-store")
+                ->withErrors($validator);
+        }
+
+        $description = Input::get("credential-description");
+
+        if (AdminUtilities::create_ssh_token_with_description($description)) {
+            return Redirect::to("account/credential-store")->with("message", "SSH Key '$description' was added");
+        }
+    }
+
+    public function deleteCredential() {
+
+        $userResourceProfile = URPUtilities::get_user_resource_profile();
+        $credentialStoreToken = Input::get("credentialStoreToken");
+        if ($credentialStoreToken == $userResourceProfile->credentialStoreToken) {
+            return Redirect::to("account/credential-store")->with("error-message", "You are not allowed to delete the default SSH key.");
+        }
+
+        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
+        $description = $credentialSummaries[$credentialStoreToken]->description;
+
+        if (AdminUtilities::remove_ssh_token($credentialStoreToken)) {
+            return Redirect::to("account/credential-store")->with("message", "SSH Key '$description' was deleted");
+        }
+    }
+
+    public function getComputeResources(){
+
+        $userResourceProfile = URPUtilities::get_or_create_user_resource_profile();
+
+        $allCRs = CRUtilities::getAllCRObjects();
+        foreach( $allCRs as $index => $crObject)
+        {
+            $allCRsById[$crObject->computeResourceId] = $crObject;
+        }
+        // Add crDetails to each UserComputeResourcePreference
+        foreach ($userResourceProfile->userComputeResourcePreferences as $index => $userCompResPref) {
+            $userCompResPref->crDetails = $allCRsById[$userCompResPref->computeResourceId];
+            // To figure out the unselectedCRs, remove this compute resource from allCRsById
+            unset($allCRsById[$userCompResPref->computeResourceId]);
+        }
+        $unselectedCRs = array_values($allCRsById);
+
+        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
+        $defaultCredentialSummary = $credentialSummaries[$userResourceProfile->credentialStoreToken];
+
+        return View::make("account/user-compute-resources", array(
+            "userResourceProfile" => $userResourceProfile,
+            "computeResources" => $allCRs,
+            "unselectedCRs" => $unselectedCRs,
+            "credentialSummaries" => $credentialSummaries,
+            "defaultCredentialSummary" => $defaultCredentialSummary
+        ));
+    }
+
+    public function addUserComputeResourcePreference() {
+
+        if( URPUtilities::add_or_update_user_CRP( Input::all()) )
+        {
+            return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been saved.");
+        }
+    }
+
+    public function updateUserComputeResourcePreference() {
+
+        if( URPUtilities::add_or_update_user_CRP( Input::all(), true ) )
+        {
+            return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been updated.");
+        }
+    }
+
+    public function deleteUserComputeResourcePreference() {
+        $computeResourceId = Input::get("rem-user-crId");
+        $result = URPUtilities::delete_user_CRP( $computeResourceId );
+        if( $result )
+        {
+            return Redirect::to("account/user-compute-resources")->with("message","Compute Resource Account Settings have been deleted.");
+        }
+    }
+
+    public function getStorageResources(){
+
+        $userResourceProfile = URPUtilities::get_or_create_user_resource_profile();
+
+        $allSRs = SRUtilities::getAllSRObjects();
+        foreach( $allSRs as $index => $srObject )
+        {
+            $allSRsById[$srObject->storageResourceId] = $srObject;
+        }
+        // Add srDetails to each UserStoragePreference
+        foreach ($userResourceProfile->userStoragePreferences as $index => $userStoragePreference) {
+            $userStoragePreference->srDetails = $allSRsById[$userStoragePreference->storageResourceId];
+            // To figure out the unselectedSRs, remove this storage resource from allSRsById
+            unset($allSRsById[$userStoragePreference->storageResourceId]);
+        }
+        $unselectedSRs = array_values($allSRsById);
+
+        $credentialSummaries = URPUtilities::get_all_ssh_pub_keys_summary_for_user();
+        $defaultCredentialSummary = $credentialSummaries[$userResourceProfile->credentialStoreToken];
+
+        return View::make("account/user-storage-resources", array(
+            "userResourceProfile" => $userResourceProfile,
+            "storageResources" => $allSRs,
+            "unselectedSRs" => $unselectedSRs,
+            "credentialSummaries" => $credentialSummaries,
+            "defaultCredentialSummary" => $defaultCredentialSummary
+        ));
+    }
+
+    public function addUserStorageResourcePreference() {
+
+        if( URPUtilities::add_or_update_user_SRP( Input::all()) )
+        {
+            return Redirect::to("account/user-storage-resources")->with("message","Storage Resource Account Settings have been saved.");
+        }
+    }
+
+    public function updateUserStorageResourcePreference() {
+
+        if( URPUtilities::add_or_update_user_SRP( Input::all(), true ) )
+        {
+            return Redirect::to("account/user-storage-resources")->with("message","Storage Resource Account Settings have been updated.");
+        }
+    }
+
+    public function deleteUserStorageResourcePreference() {
+        $storageResourceId = Input::get("rem-user-srId");
+        $result = URPUtilities::delete_user_SRP( $storageResourceId );
+        if( $result )
+        {
+            return Redirect::to("account/user-storage-resources")->with("message","Storage Resource Account Settings have been deleted.");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/libraries/CommonUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/CommonUtilities.php b/app/libraries/CommonUtilities.php
index 1fef810..daa0923 100644
--- a/app/libraries/CommonUtilities.php
+++ b/app/libraries/CommonUtilities.php
@@ -219,7 +219,7 @@ class CommonUtilities
             else
                 $navbar .= '<li class="' . $active . '"><a href="' . URL::to("/") . '/account/dashboard"><span class="glyphicon glyphicon-user"></span> Dashboard</a></li>';
 
-            $navbar .= '<li class="dropdown">
+            $navbar .= '<li class="dropdown' . (Session::get("nav-active") == 'user-menu' ? ' active' : '') . '">
 
                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">' . Session::get("username") . ' <span class="caret"></span></a>';
             $navbar .= '<ul class="dropdown-menu" role="menu">';
@@ -233,6 +233,7 @@ class CommonUtilities
                 }
             }
 
+            $navbar .= '<li><a href="' . URL::to('/') . '/account/settings"><span class="glyphicon glyphicon-cog"></span> User settings</a></li>';
             $navbar .= '<li><a href="' . URL::to('/') . '/logout"><span class="glyphicon glyphicon-log-out"></span> Log out</a></li>';
             $navbar .= '</ul></li>';
         } else {

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/routes.php
----------------------------------------------------------------------
diff --git a/app/routes.php b/app/routes.php
index 4136655..c331072 100755
--- a/app/routes.php
+++ b/app/routes.php
@@ -48,20 +48,21 @@ Route::get("allocation-request", "AccountController@allocationRequestView");
 
 Route::post("allocation-request", "AccountController@allocationRequestSubmit");
 
-Route::get("account/credential-store", "AccountController@getCredentialStore");
-Route::post("account/set-default-credential", "AccountController@setDefaultCredential");
-Route::post("account/add-credential", "AccountController@addCredential");
-Route::post("account/delete-credential", "AccountController@deleteCredential");
-
-Route::get("account/user-compute-resources", "AccountController@getComputeResources");
-Route::post("account/add-user-crp", "AccountController@addUserComputeResourcePreference");
-Route::post("account/update-user-crp", "AccountController@updateUserComputeResourcePreference");
-Route::post("account/delete-user-crp", "AccountController@deleteUserComputeResourcePreference");
-
-Route::get("account/user-storage-resources", "AccountController@getStorageResources");
-Route::post("account/add-user-srp", "AccountController@addUserStorageResourcePreference");
-Route::post("account/update-user-srp", "AccountController@updateUserStorageResourcePreference");
-Route::post("account/delete-user-srp", "AccountController@deleteUserStorageResourcePreference");
+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");
 
 /*
  * The following routes will not work without logging in.

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/views/account/credential-store.blade.php
----------------------------------------------------------------------
diff --git a/app/views/account/credential-store.blade.php b/app/views/account/credential-store.blade.php
index 1cf2bec..d9fa167 100644
--- a/app/views/account/credential-store.blade.php
+++ b/app/views/account/credential-store.blade.php
@@ -2,10 +2,15 @@
 
 @section('page-header')
 @parent
+{{ HTML::style('css/user-settings.css')}}
 @stop
 
 @section('content')
 <div class="container">
+    <ol class="breadcrumb">
+        <li><a href="{{ URL::to('/') }}/account/settings">User Settings</a></li>
+        <li class="active">Compute Resources</li>
+    </ol>
     @if( Session::has("message"))
     <div class="alert alert-success alert-dismissible" role="alert">
         <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span
@@ -24,8 +29,6 @@
     {{ Session::forget("error-message") }}
     @endif
 
-    <h1>SSH Keys</h1>
-
     <ul class="list-group">
         @foreach ($credentialSummaries as $credentialSummary)
         <li class="list-group-item credential-item">

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/views/account/dashboard.blade.php
----------------------------------------------------------------------
diff --git a/app/views/account/dashboard.blade.php b/app/views/account/dashboard.blade.php
index 58c4c7b..b701ca3 100644
--- a/app/views/account/dashboard.blade.php
+++ b/app/views/account/dashboard.blade.php
@@ -383,47 +383,6 @@
                         </div>
                     </div>
                 </a>
-                @else
-
-            <div class="row well">
-
-                <h3>Manage Personal Computing and Storage Resources</h3>
-                <p>Use these settings if you have your own compute and/or
-                storage resource accounts that you would like to use.</p>
-
-                <a href="{{URL::to('/')}}/account/user-compute-resources">
-                    <div class=" col-md-4 well">
-                        <div class="col-md-12">
-                            <span class="glyphicon glyphicon-briefcase  console-icon"></span>
-                        </div>
-                        <div class="col-md-12">
-                            <h4>Compute Resources</h4>
-                        </div>
-                    </div>
-                </a>
-
-                <a href="{{URL::to('/')}}/account/user-storage-resources">
-                    <div class=" col-md-4 well">
-                        <div class="col-md-12">
-                            <span class="glyphicon glyphicon-folder-open console-icon"></span>
-                        </div>
-                        <div class="col-md-12">
-                            <h4>Storage Resources</h4>
-                        </div>
-                    </div>
-                </a>
-
-                <a href="{{URL::to('/')}}/account/credential-store">
-                    <div class=" col-md-4 well">
-                        <div class="col-md-12">
-                            <span class="glyphicon glyphicon-lock console-icon"></span>
-                        </div>
-                        <div class="col-md-12">
-                            <h4>Credential Store</h4>
-                        </div>
-                    </div>
-                </a>
-
                 @endif
 
                 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/views/account/settings.blade.php
----------------------------------------------------------------------
diff --git a/app/views/account/settings.blade.php b/app/views/account/settings.blade.php
new file mode 100644
index 0000000..62f1177
--- /dev/null
+++ b/app/views/account/settings.blade.php
@@ -0,0 +1,58 @@
+@extends('layout.basic')
+
+@section('page-header')
+@parent
+{{ HTML::style('css/user-settings.css')}}
+@stop
+
+@section('content')
+<div class="container">
+    <ol class="breadcrumb">
+        <li class="active">User Settings</li>
+    </ol>
+    <div class="row well user-settings">
+
+        <h3>Manage Personal Computing and Storage Resources</h3>
+        <p>Use these settings if you have your own compute and/or
+        storage resource accounts that you would like to use.</p>
+
+        <a href="{{URL::to('/')}}/account/user-compute-resources">
+            <div class=" col-md-4 well">
+                <div class="col-md-12">
+                    <span class="glyphicon glyphicon-briefcase user-setting-icon"></span>
+                </div>
+                <div class="col-md-12">
+                    <h4>Compute Resources</h4>
+                </div>
+            </div>
+        </a>
+
+        <a href="{{URL::to('/')}}/account/user-storage-resources">
+            <div class=" col-md-4 well">
+                <div class="col-md-12">
+                    <span class="glyphicon glyphicon-folder-open user-setting-icon"></span>
+                </div>
+                <div class="col-md-12">
+                    <h4>Storage Resources</h4>
+                </div>
+            </div>
+        </a>
+
+        <a href="{{URL::to('/')}}/account/credential-store">
+            <div class=" col-md-4 well">
+                <div class="col-md-12">
+                    <span class="glyphicon glyphicon-lock user-setting-icon"></span>
+                </div>
+                <div class="col-md-12">
+                    <h4>Credential Store</h4>
+                </div>
+            </div>
+        </a>
+    </div>
+</div>
+
+@stop
+
+@section('scripts')
+@parent
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/views/account/user-compute-resources.blade.php
----------------------------------------------------------------------
diff --git a/app/views/account/user-compute-resources.blade.php b/app/views/account/user-compute-resources.blade.php
index 2756a91..c0a1249 100644
--- a/app/views/account/user-compute-resources.blade.php
+++ b/app/views/account/user-compute-resources.blade.php
@@ -3,6 +3,7 @@
 @section('page-header')
 @parent
 {{ HTML::style('css/datetimepicker.css')}}
+{{ HTML::style('css/user-settings.css')}}
 <style>
 button.add-user-cr {
     margin-top: 10px;
@@ -21,6 +22,10 @@ button.add-user-cr {
         'defaultCredentialSummary' => $defaultCredentialSummary))
 @endforeach
 <div class="container">
+    <ol class="breadcrumb">
+        <li><a href="{{ URL::to('/') }}/account/settings">User Settings</a></li>
+        <li class="active">Compute Resources</li>
+    </ol>
     @if( Session::has("message"))
         <div class="alert alert-success alert-dismissible" role="alert">
             <button type="button" class="close" data-dismiss="alert"><span
@@ -29,7 +34,6 @@ button.add-user-cr {
         </div>
     {{ Session::forget("message") }}
     @endif
-    <h1>Compute Resource Accounts</h1>
     <button class="btn btn-default add-user-cr">
         <span class="glyphicon glyphicon-plus"></span> Add a Compute Resource Account
     </button>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/app/views/account/user-storage-resources.blade.php
----------------------------------------------------------------------
diff --git a/app/views/account/user-storage-resources.blade.php b/app/views/account/user-storage-resources.blade.php
index b87660e..af429f1 100644
--- a/app/views/account/user-storage-resources.blade.php
+++ b/app/views/account/user-storage-resources.blade.php
@@ -2,6 +2,7 @@
 
 @section('page-header')
 @parent
+{{ HTML::style('css/user-settings.css')}}
 <style>
 button.add-user-sr {
     margin-top: 10px;
@@ -20,6 +21,10 @@ button.add-user-sr {
         'defaultCredentialSummary' => $defaultCredentialSummary))
 @endforeach
 <div class="container">
+    <ol class="breadcrumb">
+        <li><a href="{{ URL::to('/') }}/account/settings">User Settings</a></li>
+        <li class="active">Storage Resources</li>
+    </ol>
     @if( Session::has("message"))
         <div class="alert alert-success alert-dismissible" role="alert">
             <button type="button" class="close" data-dismiss="alert"><span
@@ -28,7 +33,6 @@ button.add-user-sr {
         </div>
     {{ Session::forget("message") }}
     @endif
-    <h1>Storage Resource Accounts</h1>
     <button class="btn btn-default add-user-sr">
         <span class="glyphicon glyphicon-plus"></span> Add a Storage Resource Account
     </button>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d36574e5/public/css/user-settings.css
----------------------------------------------------------------------
diff --git a/public/css/user-settings.css b/public/css/user-settings.css
new file mode 100644
index 0000000..2700686
--- /dev/null
+++ b/public/css/user-settings.css
@@ -0,0 +1,13 @@
+.breadcrumb {
+    background-color: #FFFFFF;
+}
+.user-settings {
+    background-color: #FFFFFF;
+    text-align: center;
+}
+.user-settings .well {
+    background-color: #FFFFFF;
+}
+.user-setting-icon {
+    font-size: 2.5em;
+}
\ No newline at end of file