Skip to content

Commit 16f963f

Browse files
committed
Merge branch 'master' of https://github.com/snipe/snipe-it
2 parents e032cf1 + 10c26f3 commit 16f963f

File tree

8 files changed

+26
-3
lines changed

8 files changed

+26
-3
lines changed

app/Http/Controllers/Api/AssetModelsController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ public function destroy($id)
234234
public function selectlist(Request $request)
235235
{
236236

237+
$this->authorize('view.selectlists');
237238
$assetmodels = AssetModel::select([
238239
'models.id',
239240
'models.name',

app/Http/Controllers/Api/CategoriesController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public function destroy($id)
148148
*/
149149
public function selectlist(Request $request, $category_type = 'asset')
150150
{
151-
151+
$this->authorize('view.selectlists');
152152
$categories = Category::select([
153153
'id',
154154
'name',

app/Http/Controllers/Api/CompaniesController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public function destroy($id)
159159
*/
160160
public function selectlist(Request $request)
161161
{
162-
162+
$this->authorize('view.selectlists');
163163
$companies = Company::select([
164164
'companies.id',
165165
'companies.name',

app/Http/Controllers/Api/DepartmentsController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ public function destroy($id)
168168
public function selectlist(Request $request)
169169
{
170170

171+
$this->authorize('view.selectlists');
171172
$departments = Department::select([
172173
'id',
173174
'name',

app/Http/Controllers/Api/LocationsController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ public function destroy($id)
223223
public function selectlist(Request $request)
224224
{
225225

226+
$this->authorize('view.selectlists');
227+
226228
$locations = Location::select([
227229
'locations.id',
228230
'locations.name',

app/Http/Controllers/Api/ManufacturersController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ public function destroy($id)
155155
public function selectlist(Request $request)
156156
{
157157

158+
$this->authorize('view.selectlists');
158159
$manufacturers = Manufacturer::select([
159160
'id',
160161
'name',

app/Http/Controllers/Api/SuppliersController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ public function destroy($id)
155155
public function selectlist(Request $request)
156156
{
157157

158+
$this->authorize('view.selectlists');
159+
158160
$suppliers = Supplier::select([
159161
'id',
160162
'name',

app/Providers/AuthServiceProvider.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ public function boot()
156156
return $user->hasAccess('self.checkout_assets');
157157
});
158158

159+
// This is largely used to determine whether to display the gear icon sidenav
160+
// in the left-side navigation
159161
Gate::define('backend.interact', function ($user) {
160162
return $user->can('view', Statuslabel::class)
161163
|| $user->can('view', AssetModel::class)
@@ -168,7 +170,21 @@ public function boot()
168170
|| $user->can('view', Manufacturer::class)
169171
|| $user->can('view', CustomField::class)
170172
|| $user->can('view', CustomFieldset::class)
171-
|| $user->can('view', Depreciation::class);
173+
|| $user->can('view', Depreciation::class);
174+
});
175+
176+
177+
// This determines whether or not an API user should be able to get the selectlists.
178+
// This can seem a little confusing, since view properties may not have been granted
179+
// to the logged in API user, but creating assets, licenses, etc won't work
180+
// if the user can't view and interact with the select lists.
181+
Gate::define('view.selectlists', function ($user) {
182+
return $user->can(['create','update'], Asset::class)
183+
|| $user->can(['create','update'], License::class)
184+
|| $user->can(['create','update'], Component::class)
185+
|| $user->can(['create','update'], Consumable::class)
186+
|| $user->can(['create','update'], Accessory::class)
187+
|| $user->can(['create','update'], User::class);
172188
});
173189
}
174190
}

0 commit comments

Comments
 (0)