You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2016/01/27 20:50:09 UTC

airavata-php-gateway git commit: Addition of user count info in warning before deleting a role.

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/develop 944b35917 -> d7b2ab01b


Addition of user count info in warning before deleting a role.


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/d7b2ab01
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/d7b2ab01
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/d7b2ab01

Branch: refs/heads/develop
Commit: d7b2ab01b65ae7b6b6f82af7c9b5b5c78db56637
Parents: 944b359
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Wed Jan 27 14:49:35 2016 -0500
Committer: Nipurn Doshi <ni...@gmail.com>
Committed: Wed Jan 27 14:49:35 2016 -0500

----------------------------------------------------------------------
 app/controllers/AdminController.php    | 44 ++++++++++-------------------
 app/routes.php                         |  2 ++
 app/views/admin/manage-roles.blade.php | 39 +++++++++++++++++++++++--
 3 files changed, 53 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d7b2ab01/app/controllers/AdminController.php
----------------------------------------------------------------------
diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php
index 5b40f86..54b92e1 100644
--- a/app/controllers/AdminController.php
+++ b/app/controllers/AdminController.php
@@ -13,21 +13,15 @@ class AdminController extends BaseController {
 	}
 
 	public function addAdminSubmit(){
-		$this->beforeFilter('verifyadmin');
 		WSIS::update_user_roles( Input::get("username"), array( "new"=>array("admin"), "deleted"=>array() ) );
 
    		return View::make("account/admin-dashboard")->with("message", "User has been added to Admin.");
 	}
 
 	public function usersView(){
-		$this->beforeFilter('verifyadmin');
 		if( Input::has("role"))
 		{
-			$users = WSIS::getUserlistOfRole(Input::get("role"));
-			if( isset( $users->return))
-		    	$users = $users->return;
-		    else
-		    	$users = array();
+			$users = AdminController::getUsersWithRole( Input::get("role"));
 		}
 		else
 	    	$users =  WSIS::listUsers();
@@ -35,11 +29,14 @@ class AdminController extends BaseController {
 	    $roles = WSIS::getAllRoles();
         Session::put("admin-nav", "manage-users");
 	    return View::make("admin/manage-users", array("users" => $users, "roles" => $roles));
+	}
 
+	public function getUserCountInRole(){
+			$users = AdminController::getUsersWithRole( Input::get("role"));
+			return count( $users);
 	}
 
     public function searchUsersView(){
-		$this->beforeFilter('verifyadmin');
         if(Input::has("search_val"))
         {
             $users =  WSIS::searchUsers(Input::get("search_val"));
@@ -57,7 +54,6 @@ class AdminController extends BaseController {
     }
 
     public function gatewayView(){
-		$this->beforeFilter('verifyadmin');
     	//only for super admin
 		//Session::put("super-admin", true);
 		$crData = CRUtilities::getEditCRData();
@@ -81,7 +77,6 @@ class AdminController extends BaseController {
     }
 
 	public function addGatewayAdminSubmit(){
-		$this->beforeFilter('verifyadmin');
 		//check if username exists
 		if(WSIS::usernameExists( Input::get("username")) )
 		{
@@ -95,33 +90,28 @@ class AdminController extends BaseController {
 	}
 
 	public function rolesView(){
-		$this->beforeFilter('verifyadmin');
 		$roles = WSIS::getAllRoles();
         Session::put("admin-nav", "manage-roles");
         return View::make("admin/manage-roles", array("roles" => $roles));
 	}
 
 	public function experimentsView(){
-		$this->beforeFilter('verifyadmin');
         Session::put("admin-nav", "exp-statistics");
 		return View::make("admin/manage-experiments" );
 	}
 
 	public function resourcesView(){
-		$this->beforeFilter('verifyadmin');
 		$data = CRUtilities::getBrowseCRData(false);
 		$allCRs = $data["crObjects"];
 		return View::make("admin/manage-resources", array("resources" => $allCRs) );
 	}
 
 	public function addRole(){
-		$this->beforeFilter('verifyadmin');
 		WSIS::addRole( Input::get("role") );
 		return Redirect::to("admin/dashboard/roles")->with( "message", "Role has been added.");
 	}
 
     public function addRolesToUser(){
-		$this->beforeFilter('verifyadmin');
         $currentRoles = (array)WSIS::getUserRoles(Input::get("username"));
         $roles["new"] = array_diff(Input::all()["roles"], $currentRoles);
         $roles["deleted"] = array_diff($currentRoles, Input::all()["roles"]);
@@ -142,7 +132,6 @@ class AdminController extends BaseController {
     }
 
     public function removeRoleFromUser(){
-		$this->beforeFilter('verifyadmin');
         $roles["deleted"] = array(Input::all()["roleName"]);
         $roles["new"] = array();
         $username = Input::all()["username"];
@@ -151,19 +140,16 @@ class AdminController extends BaseController {
     }
 
 	public function getRoles(){
-		$this->beforeFilter('verifyadmin');
 		return json_encode((array)WSIS::getUserRoles(Input::get("username")));
 	}
 
 	public function deleteRole(){
-		$this->beforeFilter('verifyadmin');
 		WSIS::deleteRole( Input::get("role") );
 		return Redirect::to("admin/dashboard/roles")->with( "message", "Role has been deleted.");
 
 	}
 
 	public function credentialStoreView(){
-		$this->beforeFilter('verifyadmin');
         Session::put("admin-nav", "credential-store");
         $tokens = AdminUtilities::get_all_ssh_tokens();
         //var_dump( $tokens); exit;
@@ -171,7 +157,6 @@ class AdminController extends BaseController {
 	}
 
 	public function updateUserRoles(){
-		$this->beforeFilter('verifyadmin');
 		if( Input::has("add"))
 			return WSIS::updateUserRoles(Input::get("username"), array("new"=> Input::get("roles"), "deleted" => array() ) );
 		else
@@ -182,7 +167,6 @@ class AdminController extends BaseController {
 	/* ---- Super Admin Functions ------- */
 
 	public function addGateway(){
-		$this->beforeFilter('verifyadmin');
 		$inputs = Input::all();
 
         $gateway = AdminUtilities::add_gateway(Input::all());
@@ -198,7 +182,6 @@ class AdminController extends BaseController {
 
     public function experimentStatistics()
     {
-		$this->beforeFilter('verifyadmin');
         if (Request::ajax()) {
             $inputs = Input::all();
             $expStatistics = AdminUtilities::get_experiment_execution_statistics(strtotime($inputs['fromTime']) * 1000
@@ -209,7 +192,6 @@ class AdminController extends BaseController {
 
     public function getExperimentsOfTimeRange()
     {
-		$this->beforeFilter('verifyadmin');
         if (Request::ajax()) {
             $inputs = Input::all();
             $expContainer = AdminUtilities::get_experiments_of_time_range($inputs);
@@ -223,7 +205,6 @@ class AdminController extends BaseController {
     }
 
     public function enableComputeResource(){
-		$this->beforeFilter('verifyadmin');
         $resourceId = Input::get("resourceId");
         $computeResource = CRUtilities::get_compute_resource($resourceId);
         $computeResource->enabled = true;
@@ -231,7 +212,6 @@ class AdminController extends BaseController {
     }
 
     public function disableComputeResource(){
-		$this->beforeFilter('verifyadmin');
         $resourceId = Input::get("resourceId");
         $computeResource = CRUtilities::get_compute_resource($resourceId);
         $computeResource->enabled = false;
@@ -239,7 +219,6 @@ class AdminController extends BaseController {
     }
 
     public function enableStorageResource(){
-		$this->beforeFilter('verifyadmin');
         $resourceId = Input::get("resourceId");
         $storageResource = SRUtilities::get_storage_resource($resourceId);
         $storageResource->enabled = true;
@@ -247,7 +226,6 @@ class AdminController extends BaseController {
     }
 
     public function disableStorageResource(){
-		$this->beforeFilter('verifyadmin');
         $resourceId = Input::get("resourceId");
         $storageResource = SRUtilities::get_storage_resource($resourceId);
         $storageResource->enabled = false;
@@ -256,7 +234,6 @@ class AdminController extends BaseController {
 
 
 	public function createSSH(){
-		$this->beforeFilter('verifyadmin');
 		$newToken = AdminUtilities::create_ssh_token();
 		$pubkey = AdminUtilities::get_pubkey_from_token( $newToken);
 		return Response::json( array( "token" => $newToken, "pubkey" => $pubkey));
@@ -264,7 +241,6 @@ class AdminController extends BaseController {
 	}
 
 	public function removeSSH(){
-		$this->beforeFilter('verifyadmin');
 		$removeToken = Input::get("token");
 		if( AdminUtilities::remove_ssh_token( $removeToken) )
 			return 1;
@@ -273,4 +249,14 @@ class AdminController extends BaseController {
 
 	}
 
+	public function getUsersWithRole( $role){
+			$users = WSIS::getUserlistOfRole( $role);
+			if( isset( $users->return))
+		    	$users = $users->return;
+		    else
+		    	$users = array();
+
+		    return $users;
+	}
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d7b2ab01/app/routes.php
----------------------------------------------------------------------
diff --git a/app/routes.php b/app/routes.php
index a180cba..60c8832 100755
--- a/app/routes.php
+++ b/app/routes.php
@@ -234,6 +234,8 @@ 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");

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d7b2ab01/app/views/admin/manage-roles.blade.php
----------------------------------------------------------------------
diff --git a/app/views/admin/manage-roles.blade.php b/app/views/admin/manage-roles.blade.php
index 3bdc278..f78283e 100644
--- a/app/views/admin/manage-roles.blade.php
+++ b/app/views/admin/manage-roles.blade.php
@@ -96,13 +96,18 @@
                     <h3 class="text-center">Delete Role Confirmation</h3>
                 </div>
                 <div class="modal-body">
+                    <div class="loading-count">
+                        <img src="{{URL::to('/')}}/assets/ajax-loader.gif"/>
+                    </div>
+                    <div class="delete-warning-text hide">
                     <input type="hidden" class="form-control delete-roleName" name="role"/>
-                    Do you really want to delete the role - <span class="delete-role-name"></span>
+                    <h4 class="alert alert-warning"><span class="role-user-count"> 0 </span> users currently have the role - <span class="delete-role-name"></span>. Do you really want to delete this role? </span></h2>
+                    </div>
                 </div>
                 <div class="modal-footer">
                     <div class="form-group">
                         <input type="submit" class="btn btn-danger" value="Delete"/>
-                        <input type="button" class="btn btn-default" data-dismiss="modal" value="Cancel"/>
+                        <input type="button" class="btn btn-default cancel-delete-role" data-dismiss="modal" value="Cancel"/>
                     </div>
                 </div>
             </div>
@@ -137,10 +142,38 @@
     });
 
     $(".delete-role").click(function () {
-        $("#delete-role-block").modal("show");
         var roleName = $(this).parent().parent().find(".role-name").html();
+        $(".loading-count")
+        $.ajax({
+            type: "GET",
+            url: "{{URL::to('/')}}/admin/getusercountinrole",
+            data: {
+                role: roleName
+            }
+        }).success( function( data){
+            data = parseInt(data);
+            if( data === parseInt(data, 10)){
+                $(".role-user-count").html( data);
+                $(".loading-count").addClass("hide");
+                $(".delete-warning-text").removeClass("hide");
+            }
+            else{
+                $(".loading-count").after("<h4 class='problem-retrieving-count alert alert-warning'>There was a problem retrieving number of users connected with this role. Do you still want to delete the role - " + roleName + "?</h4>");
+                $(".loading-count").addClass("hide");
+            }
+        }).error( function(){
+            $(".loading-count").after("<h4 class='problem-retrieving-count alert alert-warning'>There was a problem retrieving number of users connected with this role. Do you still want to delete the role - " + roleName + "?</h4>");
+            $(".loading-count").addClass("hide");
+        });
+        $("#delete-role-block").modal("show");
         $(".delete-role-name").html(roleName);
         $(".delete-roleName").val(roleName);
     });
+
+    $(".cancel-delete-role").click( function(){
+            $(".loading-count").removeClass("hide");
+            $(".delete-warning-text").addClass("hide");
+            $(".problem-retrieving-count").remove();
+    });
 </script>
 @stop
\ No newline at end of file