diff --git a/app/Controllers/Http/UsersController.ts b/app/Controllers/Http/UsersController.ts index 41f609d..4c6aa2a 100644 --- a/app/Controllers/Http/UsersController.ts +++ b/app/Controllers/Http/UsersController.ts @@ -24,7 +24,15 @@ export default class UsersController { public async store({}: HttpContextContract) {} - public async show({}: HttpContextContract) {} + public async show({ bouncer, params, inertia }: HttpContextContract) { + const queriedUser: User = await User.findByOrFail('id', params.id) + + await bouncer + .with('UserPolicy') + .authorize('show', queriedUser) + + return inertia.render('Users/Show', { queriedUser }) + } public async edit({}: HttpContextContract) {} diff --git a/components.d.ts b/components.d.ts index 65c29dd..c6953a9 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,6 +10,7 @@ declare module 'vue' { NButton: typeof import('naive-ui')['NButton'] NForm: typeof import('naive-ui')['NForm'] NFormItem: typeof import('naive-ui')['NFormItem'] + NIcon: typeof import('naive-ui')['NIcon'] NInput: typeof import('naive-ui')['NInput'] NMenu: typeof import('naive-ui')['NMenu'] NMessageProvider: typeof import('naive-ui')['NMessageProvider'] diff --git a/resources/js/components/MainNav.vue b/resources/js/components/MainNav.vue index 8b05594..fcea292 100644 --- a/resources/js/components/MainNav.vue +++ b/resources/js/components/MainNav.vue @@ -7,26 +7,34 @@ /> - \ No newline at end of file diff --git a/resources/js/types/User.ts b/resources/js/types/User.ts new file mode 100644 index 0000000..154c498 --- /dev/null +++ b/resources/js/types/User.ts @@ -0,0 +1,10 @@ +import type { DateTime } from 'luxon' + +export type User = { + id: Number, + username: String, + is_admin: Boolean, + updated_at: DateTime, + created_at: DateTime, + remember_me_token: String | null, +} \ No newline at end of file diff --git a/start/inertia.ts b/start/inertia.ts index fb920d0..ec12f79 100644 --- a/start/inertia.ts +++ b/start/inertia.ts @@ -11,8 +11,8 @@ import Inertia from '@ioc:EidelLev/Inertia' Inertia.share({ - //errors: ({session}) => session.flashMessages.get('errors'), + errors: ({ session }) => session.flashMessages.get('errors'), request: ({ request }) => request, - isAdmin: ({ auth }) => auth.user?.isAdmin, + user: ({ auth }) => auth.user, flashMessages: ({ session }) => session.flashMessages.all(), }).version(() => Inertia.manifestFile('public/assets/manifest.json'))