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/master Commit: d7b2ab01b65ae7b6b6f82af7c9b5b5c78db56637 Parents: 944b359 Author: Nipurn Doshi <[email protected]> Authored: Wed Jan 27 14:49:35 2016 -0500 Committer: Nipurn Doshi <[email protected]> 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
