Skip to content

Commit 90de648

Browse files
authored
Merge pull request #151 from CyanFox/develop
2 parents 24df5ef + e47ab1c commit 90de648

28 files changed

+833
-439
lines changed

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ on:
44
workflow_dispatch:
55
pull_request:
66
branches:
7-
- v4
7+
- main
88
push:
99
branches:
10-
- v4
10+
- main
1111

1212
jobs:
1313
test:
@@ -32,7 +32,7 @@ jobs:
3232
coverage: none
3333

3434
- name: Clone CyanFox-Base
35-
run: git clone --branch v4 https://github.com/CyanFox/Base CyanFox-Base
35+
run: git clone https://github.com/CyanFox/Base CyanFox-Base
3636

3737
- name: Setup problem matchers
3838
run: |

Admin/app/Http/Controllers/AdminActivityController.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,28 @@
22

33
namespace Modules\Admin\Http\Controllers;
44

5+
use Dedoc\Scramble\Attributes\Group;
56
use Dedoc\Scramble\Attributes\QueryParameter;
67
use Illuminate\Http\Request;
78
use Spatie\Activitylog\Models\Activity;
89

10+
#[Group('Admin Activity')]
911
class AdminActivityController
1012
{
1113
#[QueryParameter('per_page', description: 'Number of activity entries per page', type: 'integer', default: 20, example: 10)]
1214
public function getActivity(Request $request)
1315
{
14-
$user = $request->attributes->get('api_key')->user;
16+
$apiKey = $request->attributes->get('api_key');
1517

16-
if (! $user->can('admin.activity') || ! $request->attributes->get('api_key')->can('admin.activity')) {
17-
return response()->json(['error' => 'Unauthorized'], 403);
18+
if (!$apiKey->hasPermission('admin.activity')) {
19+
return $apiKey->sendNoPermissionResponse();
1820
}
1921

2022
$activityLog = Activity::orderBy('created_at', 'desc')
2123
->paginate($request->query('per_page', 20));
2224

23-
return response()->json([
24-
'message' => 'Activity retrieved successfully',
25-
'activity_log' => $activityLog->map(function (Activity $activity) {
25+
return apiResponse('Activity retrieved successfully',
26+
$activityLog->map(function (Activity $activity) {
2627
$properties = json_decode($activity->properties, true) ?? [];
2728

2829
return [
@@ -34,7 +35,6 @@ public function getActivity(Request $request)
3435
'old_values' => $properties['old'] ?? [],
3536
'new_values' => $properties['attributes'] ?? [],
3637
];
37-
}),
38-
]);
38+
}));
3939
}
4040
}

Admin/app/Http/Controllers/AdminGroupsController.php

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,45 +17,41 @@ class AdminGroupsController
1717
#[QueryParameter('per_page', description: 'Number of groups per page', type: 'integer', default: 20, example: 10)]
1818
public function getGroups(Request $request)
1919
{
20-
$user = $request->attributes->get('api_key')->user;
20+
$apiKey = $request->attributes->get('api_key');
2121

22-
if (! $user->can('admin.groups') || ! $request->attributes->get('api_key')->can('admin.groups')) {
23-
return response()->json(['error' => 'Unauthorized'], 403);
22+
if (!$apiKey->hasPermission('admin.groups')) {
23+
return $apiKey->sendNoPermissionResponse();
2424
}
2525

26-
return response()->json([
27-
'message' => 'Groups retrieved successfully',
28-
'groups' => Role::orderBy('created_at')->paginate($request->query('per_page', 20)),
29-
]);
26+
return apiResponse('Groups retrieved successfully',
27+
Role::orderBy('created_at')->paginate($request->query('per_page', 20)));
3028
}
3129

3230
#[PathParameter('groupId', description: 'ID of the group to retrieve', type: 'integer', example: 1)]
3331
public function getGroup(Request $request, $groupId)
3432
{
35-
$user = $request->attributes->get('api_key')->user;
33+
$apiKey = $request->attributes->get('api_key');
3634

37-
if (! $user->can('admin.groups') || ! $request->attributes->get('api_key')->can('admin.groups')) {
38-
return response()->json(['error' => 'Unauthorized'], 403);
35+
if (!$apiKey->hasPermission('admin.groups')) {
36+
return $apiKey->sendNoPermissionResponse();
3937
}
4038

4139
$group = Role::find($groupId);
4240

4341
if (! $group) {
44-
return response()->json(['error' => 'Group not found'], 404);
42+
return apiResponse('Group not found', null, false, 404);
4543
}
4644

47-
return response()->json([
48-
'message' => 'Group retrieved successfully',
49-
'group' => $group->load(['permissions']),
50-
]);
45+
return apiResponse('Group retrieved successfully',
46+
$group->load(['permissions']));
5147
}
5248

5349
public function createGroup(Request $request)
5450
{
55-
$user = $request->attributes->get('api_key')->user;
51+
$apiKey = $request->attributes->get('api_key');
5652

57-
if (! $user->can('admin.groups.create') || ! $request->attributes->get('api_key')->can('admin.groups.create')) {
58-
return response()->json(['error' => 'Unauthorized'], 403);
53+
if (!$apiKey->hasPermission('admin.groups.create')) {
54+
return $apiKey->sendNoPermissionResponse();
5955
}
6056

6157
$request->validate([
@@ -66,25 +62,23 @@ public function createGroup(Request $request)
6662
$group = CreateGroupAction::run($request->only(['name', 'guard_name']));
6763
$group->syncPermissions($request->input('permissions', []));
6864

69-
return response()->json([
70-
'message' => 'Group created successfully',
71-
'group' => $group->load(['permissions']),
72-
]);
65+
return apiResponse('Group created successfully',
66+
$group->load(['permissions']));
7367
}
7468

7569
#[PathParameter('groupId', description: 'ID of the group to update', type: 'integer', example: 1)]
7670
public function updateGroup(Request $request, $groupId)
7771
{
78-
$user = $request->attributes->get('api_key')->user;
72+
$apiKey = $request->attributes->get('api_key');
7973

80-
if (! $user->can('admin.groups.update') || ! $request->attributes->get('api_key')->can('admin.groups.update')) {
81-
return response()->json(['error' => 'Unauthorized'], 403);
74+
if (!$apiKey->hasPermission('admin.groups.update')) {
75+
return $apiKey->sendNoPermissionResponse();
8276
}
8377

8478
$group = Role::find($groupId);
8579

8680
if (! $group) {
87-
return response()->json(['error' => 'Group not found'], 404);
81+
return apiResponse('Group not found', null, false, 404);
8882
}
8983

9084
$request->validate([
@@ -95,31 +89,27 @@ public function updateGroup(Request $request, $groupId)
9589
UpdateGroupAction::run($group, $request->only(['name', 'guard_name']));
9690
$group->syncPermissions($request->input('permissions', []));
9791

98-
return response()->json([
99-
'message' => 'Group updated successfully',
100-
'group' => $group->fresh()->load(['permissions']),
101-
]);
92+
return apiResponse('Group updated successfully',
93+
$group->fresh()->load(['permissions']));
10294
}
10395

10496
#[PathParameter('groupId', description: 'ID of the group to delete', type: 'integer', example: 1)]
10597
public function deleteGroup(Request $request, $groupId)
10698
{
107-
$user = $request->attributes->get('api_key')->user;
99+
$apiKey = $request->attributes->get('api_key');
108100

109-
if (! $user->can('admin.groups.delete') || ! $request->attributes->get('api_key')->can('admin.groups.delete')) {
110-
return response()->json(['error' => 'Unauthorized'], 403);
101+
if (!$apiKey->hasPermission('admin.groups.delete')) {
102+
return $apiKey->sendNoPermissionResponse();
111103
}
112104

113105
$group = Role::find($groupId);
114106

115107
if (! $group) {
116-
return response()->json(['error' => 'Group not found'], 404);
108+
return apiResponse('Group not found', null, false, 404);
117109
}
118110

119111
DeleteGroupAction::run($group);
120112

121-
return response()->json([
122-
'message' => 'Group deleted successfully',
123-
]);
113+
return apiResponse('Group deleted successfully');
124114
}
125115
}

0 commit comments

Comments
 (0)