From 35155dfc4c80e7064c16381db491eeeccf3b05a2 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 29 Nov 2013 16:57:24 -0500 Subject: [PATCH 1/4] Prevent user from being deleted if they still have assets assigned to them --- app/controllers/admin/UsersController.php | 17 +++++++++++++++-- app/models/Asset.php | 1 - 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/UsersController.php b/app/controllers/admin/UsersController.php index 90023c4a91..2c9a594a3c 100755 --- a/app/controllers/admin/UsersController.php +++ b/app/controllers/admin/UsersController.php @@ -353,6 +353,7 @@ class UsersController extends AdminController { return Redirect::route('users')->with('error', $error); } + // Do we have permission to delete this user? if ($user->isSuperUser() and ! Sentry::getUser()->isSuperUser()) { @@ -360,14 +361,26 @@ class UsersController extends AdminController { return Redirect::route('users')->with('error', 'Insufficient permissions!'); } + if (count($user->assets) > 0) { + //print_r ($user->assets()); + // Redirect to the user management page + return Redirect::route('users')->with('error', 'This user still has '.count($user->assets).' assets associated with them.'); + } + + if (count($user->licenses) > 0) { + //print_r ($user->licenses()); + // Redirect to the user management page + return Redirect::route('users')->with('error', 'This user still has '.count($user->licenses).' licenses associated with them.'); + } + // Delete the user - $user->delete(); + //$user->delete(); // Prepare the success message $success = Lang::get('admin/users/message.success.delete'); // Redirect to the user management page - return Redirect::route('users')->with('success', $success); + //return Redirect::route('users')->with('success', $success); } catch (UserNotFoundException $e) { diff --git a/app/models/Asset.php b/app/models/Asset.php index 9ffe50744b..bd4fc09c64 100644 --- a/app/models/Asset.php +++ b/app/models/Asset.php @@ -83,7 +83,6 @@ class Asset extends Elegant { public static function assetcount() { return DB::table('assets') - ->where('physical', '=', '1') ->whereNull('deleted_at','and') ->count(); From 2be6c6f5da1a3e9cc2856a7605975a6de8c47d12 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 29 Nov 2013 16:57:49 -0500 Subject: [PATCH 2/4] Hurr. --- app/controllers/admin/UsersController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/UsersController.php b/app/controllers/admin/UsersController.php index 2c9a594a3c..ad64792fa3 100755 --- a/app/controllers/admin/UsersController.php +++ b/app/controllers/admin/UsersController.php @@ -362,25 +362,25 @@ class UsersController extends AdminController { } if (count($user->assets) > 0) { - //print_r ($user->assets()); + // Redirect to the user management page return Redirect::route('users')->with('error', 'This user still has '.count($user->assets).' assets associated with them.'); } if (count($user->licenses) > 0) { - //print_r ($user->licenses()); + // Redirect to the user management page return Redirect::route('users')->with('error', 'This user still has '.count($user->licenses).' licenses associated with them.'); } // Delete the user - //$user->delete(); + $user->delete(); // Prepare the success message $success = Lang::get('admin/users/message.success.delete'); // Redirect to the user management page - //return Redirect::route('users')->with('success', $success); + return Redirect::route('users')->with('success', $success); } catch (UserNotFoundException $e) { From 8f9a82e400a78ed9a4d3a0376c3f02758f4bbfe5 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 29 Nov 2013 17:05:55 -0500 Subject: [PATCH 3/4] Prevent user editing on deleted user --- app/views/backend/users/view.blade.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/views/backend/users/view.blade.php b/app/views/backend/users/view.blade.php index 9214da40c8..dcaeb4f777 100644 --- a/app/views/backend/users/view.blade.php +++ b/app/views/backend/users/view.blade.php @@ -17,7 +17,13 @@ View User {{ $user->fullName() }} ::

{{ $user->fullName() }}

{{ $user->jobtitle }} - @lang('button.edit') This User + @if ($user->deleted_at != NULL) + Restore This User + + @else + @lang('button.edit') This User + + @endif
@@ -26,6 +32,17 @@ View User {{ $user->fullName() }} ::
+ @if ($user->deleted_at != NULL) + +
+
+ + Error: + This user has been deleted. You will have to restore this user to edit them or assign them new assets. +
+
+ + @endif
Assets Checked Out to {{ $user->first_name }}

From f62ce4039d123b2b73324ece9f3f1e2cb18f16dd Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 29 Nov 2013 17:07:49 -0500 Subject: [PATCH 4/4] @uberbrady is a pedantic shitbag. --- app/views/backend/users/view.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/backend/users/view.blade.php b/app/views/backend/users/view.blade.php index dcaeb4f777..f9c5cb1409 100644 --- a/app/views/backend/users/view.blade.php +++ b/app/views/backend/users/view.blade.php @@ -37,7 +37,7 @@ View User {{ $user->fullName() }} ::
- Error: + Warning: This user has been deleted. You will have to restore this user to edit them or assign them new assets.