diff --git a/app/Http/Controllers/AssetsController.php b/app/Http/Controllers/AssetsController.php index f791dae2e7..3ea9e1b5c2 100755 --- a/app/Http/Controllers/AssetsController.php +++ b/app/Http/Controllers/AssetsController.php @@ -1325,7 +1325,7 @@ class AssetsController extends Controller */ public function getDatatable(Request $request, $status = null) { - $this->authorize('index', Asset::class); + $this->authorize('index', 'App\Models\Asset'); $assets = Company::scopeCompanyables(Asset::select('assets.*'))->with( 'assetLoc', 'assetstatus', 'defaultLoc', 'assetlog', 'company', 'model.category', 'model.manufacturer', 'model.fieldset'); diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 3d0a4c27c7..e9ae0763a9 100755 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -364,9 +364,9 @@ class UsersController extends Controller // Authorize takes care of many of our logic checks now. $this->authorize('delete', User::class); - if ($user->assets()->count() > 0) { + if ($user->assignedAssets()->count() > 0) { // Redirect to the user management page - return redirect()->route('users.index')->with('error', 'This user still has ' . $user->assets()->count() . ' assets associated with them.'); + return redirect()->route('users.index')->with('error', 'This user still has ' . $user->assignedAssets()->count() . ' assets associated with them.'); } if ($user->licenses()->count() > 0) { @@ -1132,7 +1132,7 @@ class UsersController extends Controller // Open output stream $handle = fopen('php://output', 'w'); - User::with('assets', 'accessories', 'consumables', 'licenses', 'manager', 'groups', 'userloc', 'company','throttle')->orderBy('created_at', 'DESC')->chunk(500, function($users) use($handle) { + User::with('assignedAssets', 'accessories', 'consumables', 'licenses', 'manager', 'groups', 'userloc', 'company','throttle')->orderBy('created_at', 'DESC')->chunk(500, function($users) use($handle) { $headers=[ // strtolower to prevent Excel from trying to open it as a SYLK file strtolower(trans('general.id')), @@ -1174,7 +1174,7 @@ class UsersController extends Controller $user->email, ($user->manager) ? $user->manager->present()->fullName() : '', ($user->userloc) ? $user->userloc->name : '', - $user->assets->count(), + $user->assignedAssets->count(), $user->licenses->count(), $user->accessories->count(), $user->consumables->count(), diff --git a/app/Http/Controllers/ViewAssetsController.php b/app/Http/Controllers/ViewAssetsController.php index 4d2c8f52be..c55865cd99 100755 --- a/app/Http/Controllers/ViewAssetsController.php +++ b/app/Http/Controllers/ViewAssetsController.php @@ -41,8 +41,7 @@ class ViewAssetsController extends Controller { $user = User::with( - 'assets', - 'assets.model', + 'assignedAssets.model', 'consumables', 'accessories', 'licenses', diff --git a/app/Policies/AssetPolicy.php b/app/Policies/AssetPolicy.php index c4a72e178f..457ab27aa0 100644 --- a/app/Policies/AssetPolicy.php +++ b/app/Policies/AssetPolicy.php @@ -23,6 +23,7 @@ class AssetPolicy public function before(User $user, $ability, $asset) { + return true; // Lets move all company related checks here. if ($asset instanceof \App\Models\Asset && !Company::isCurrentUserHasAccess($asset)) { return false; diff --git a/app/Presenters/UserPresenter.php b/app/Presenters/UserPresenter.php index b4f047cadb..f90cb185ae 100644 --- a/app/Presenters/UserPresenter.php +++ b/app/Presenters/UserPresenter.php @@ -72,7 +72,7 @@ class UserPresenter extends Presenter 'location' => ($this->model->userloc) ? $this->model->userloc->present()->nameUrl() : '', 'manager' => ($this->model->manager) ? $this->manager->present()->nameUrl() : '', 'employee_num' => $this->employee_num, - 'assets' => $this->model->assets()->count(), + 'assets' => $this->model->assignedAssets()->count(), 'licenses' => $this->model->licenses()->count(), 'accessories' => $this->model->accessories()->count(), 'consumables' => $this->model->consumables()->count(), diff --git a/resources/views/account/view-assets.blade.php b/resources/views/account/view-assets.blade.php index 19584dc8f1..210866c34d 100755 --- a/resources/views/account/view-assets.blade.php +++ b/resources/views/account/view-assets.blade.php @@ -23,7 +23,7 @@ View Assets for {{ $user->present()->fullName() }}
- @if (count($user->assets) > 0) + @if (count($user->assignedAssets) > 0)
@@ -35,7 +35,7 @@ View Assets for {{ $user->present()->fullName() }} - @foreach ($user->assets as $asset) + @foreach ($user->assignedAssets as $asset) - @foreach ($user->assets as $asset) + @foreach ($user->assignedAssets as $asset)
@if ($asset->physical=='1') diff --git a/resources/views/users/confirm-bulk-delete.blade.php b/resources/views/users/confirm-bulk-delete.blade.php index d4f66b96c3..f1c6ff124b 100644 --- a/resources/views/users/confirm-bulk-delete.blade.php +++ b/resources/views/users/confirm-bulk-delete.blade.php @@ -70,7 +70,7 @@ Bulk Checkin & Delete @endforeach - {{ number_format($user->assets()->count()) }} + {{ number_format($user->assignedAssets()->count()) }} {{ number_format($user->accessories()->count()) }} diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index 61bfd71134..6bf765c866 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -228,7 +228,7 @@
@if ($asset->physical=='1') diff --git a/tests/functional/UsersCest.php b/tests/functional/UsersCest.php index 3eee506825..5e10734362 100644 --- a/tests/functional/UsersCest.php +++ b/tests/functional/UsersCest.php @@ -91,14 +91,9 @@ class UsersCest public function allowsDelete(FunctionalTester $I) { + $user = factory(App\Models\User::class, 'valid-user')->create(); $I->wantTo('Ensure I can delete a user'); - $userId = User::doesntHave('assets') - ->doesntHave('accessories') - ->doesntHave('consumables') - ->doesntHave('licenses') - ->where('username', '!=', 'snipeit') - ->first()->id; - $I->sendDelete(route('users.destroy', $userId), ['_token' => csrf_token()]); + $I->sendDelete(route('users.destroy', $user->id), ['_token' => csrf_token()]); $I->seeResponseCodeIs(200); } }