diff --git a/app/Controllers/Http/UsersController.ts b/app/Controllers/Http/UsersController.ts
index 4c6aa2a..297587e 100644
--- a/app/Controllers/Http/UsersController.ts
+++ b/app/Controllers/Http/UsersController.ts
@@ -34,7 +34,15 @@ export default class UsersController {
return inertia.render('Users/Show', { queriedUser })
}
- public async edit({}: HttpContextContract) {}
+ public async edit({ bouncer, params, inertia }: HttpContextContract) {
+ const queriedUser: User = await User.findByOrFail('id', params.id)
+
+ await bouncer
+ .with("UserPolicy")
+ .authorize('edit', queriedUser)
+
+ return inertia.render("Users/Edit", { queriedUser })
+ }
public async update({}: HttpContextContract) {}
diff --git a/app/Policies/UserPolicy.ts b/app/Policies/UserPolicy.ts
index f5549e4..9b11ea3 100644
--- a/app/Policies/UserPolicy.ts
+++ b/app/Policies/UserPolicy.ts
@@ -5,10 +5,18 @@ export default class UserPolicy extends BasePolicy {
public async index(user: User) {
return user.isAdmin
}
+
+ public async create(user: User) {
+ return user.isAdmin
+ }
public async show(user: User, query: User) {
return user.isAdmin || user.id === query.id
}
+
+ public async edit(user: User, query: User) {
+ return user.isAdmin || user.id === query.id
+ }
public async update(user: User, query: User) {
return user.isAdmin || user.id === query.id
diff --git a/components.d.ts b/components.d.ts
index 225e00b..f702939 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -8,6 +8,7 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
NButton: typeof import('naive-ui')['NButton']
+ NConfigProvider: typeof import('naive-ui')['NConfigProvider']
NDataTable: typeof import('naive-ui')['NDataTable']
NForm: typeof import('naive-ui')['NForm']
NFormItem: typeof import('naive-ui')['NFormItem']
diff --git a/resources/js/Layouts/BELayout.vue b/resources/js/Layouts/BELayout.vue
index 7200fd5..d476f8d 100644
--- a/resources/js/Layouts/BELayout.vue
+++ b/resources/js/Layouts/BELayout.vue
@@ -1,9 +1,11 @@
-