Skip to content

Commit d456158

Browse files
committed
Apply fix around view-assets to pass request parameter and profile controller to address request parameter
1 parent a272bdc commit d456158

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

app/Http/Controllers/Api/ProfileController.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Illuminate\Contracts\Validation\Factory as ValidationFactory;
1515
use Illuminate\Support\Facades\Gate;
1616
use App\Models\CustomField;
17+
use App\Models\User;
1718
use Illuminate\Support\Facades\DB;
1819
use Illuminate\Http\JsonResponse;
1920
use Symfony\Component\HttpFoundation\BinaryFileResponse;
@@ -179,10 +180,17 @@ public function showApiTokens() : JsonResponse
179180
*@since [v8.1.16]
180181
* @author [Godfrey Martinez] [<[email protected]>]
181182
*/
182-
public function eulas(ProfileTransformer $transformer)
183+
public function eulas(ProfileTransformer $transformer, Request $request)
183184
{
184-
// Only return this user's EULAs
185-
$eulas = auth()->user()->eulas;
185+
if($request->filled('user_id') && $request->input('user_id') != 0) {
186+
// Return selected user's EULAs
187+
$eulas = User::find($request->input('user_id'))->eulas;
188+
}
189+
else {
190+
// Only return this user's EULAs
191+
$eulas = auth()->user()->eulas;
192+
}
193+
186194
return response()->json(
187195
$transformer->transformFiles($eulas, $eulas->count())
188196
);

app/Http/Controllers/ProfileController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use App\Http\Requests\ImageUploadRequest;
66
use App\Http\Transformers\ProfileTransformer;
77
use App\Models\Actionlog;
8+
use App\Models\Asset;
89
use App\Models\Setting;
910
use App\Models\User;
1011
use App\Notifications\CurrentInventory;
@@ -249,7 +250,10 @@ public function getStoredEula($filename) : Response | BinaryFileResponse | Redir
249250
$logentry = Actionlog::where('filename', $filename)->first();
250251

251252
// Make sure the user has permission to view this file
252-
if (auth()->id() != $logentry->target_id) {
253+
// Also allow if the user (manager) able to view both users and assets
254+
$allowed_to_view_users_assets = Gate::allows('view', User::class) && Gate::allows('view', Asset::class);
255+
256+
if (auth()->id() != $logentry->target_id && !$allowed_to_view_users_assets) {
253257
return redirect()->route('account')->with('error', trans('general.generic_model_not_found', ['model' => 'file']));
254258
}
255259

resources/views/account/view-assets.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ class="table table-striped snipe-table table-hover"
759759
data-sort-order="asc"
760760
data-sort-name="name"
761761
class="table table-striped snipe-table table-hover"
762-
data-url="{{ route('api.self.eulas') }}"
762+
data-url="{{ route('api.self.eulas', ['user_id' => e(request('user_id'))]) }}"
763763
data-export-options='{
764764
"fileName": "export-eula-{{ str_slug($user->username) }}-{{ date('Y-m-d') }}",
765765
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","delete","purchasecost", "icon"]

0 commit comments

Comments
 (0)