File tree Expand file tree Collapse file tree 3 files changed +16
-34
lines changed
Expand file tree Collapse file tree 3 files changed +16
-34
lines changed Original file line number Diff line number Diff line change 1- import User from '#users/models/user'
2- import { BasePolicy } from '@adonisjs/bouncer'
3- import { AuthorizerResponse } from '@adonisjs/bouncer/types'
4-
5- export default class AdminPolicy extends BasePolicy {
6- /**
7- * Check if the user can impersonate other users
8- */
9- async impersonate ( user : User , targetUser : User ) : Promise < AuthorizerResponse > {
10- // Check if user has impersonate-users permission
11- const hasPermission = await user . can ( 'impersonate-users' )
12-
13- if ( ! hasPermission ) {
14- return false
15- }
16-
17- // Prevent impersonating yourself
18- if ( user . id === targetUser . id ) {
19- return false
20- }
21-
22- return true
23- }
24-
25- /**
26- * Check if the user can access admin features
27- */
28- async accessAdmin ( user : User ) : Promise < AuthorizerResponse > {
29- // Check if user has admin-access permission
30- return await user . can ( 'admin-access' )
31- }
32- }
1+ import { BasePolicy } from '@adonisjs/bouncer'
2+ import User from '#users/models/user'
3+
4+ export default class AdminPolicy extends BasePolicy {
5+ async impersonate ( user : User , targetUser : User ) {
6+ return (
7+ ( await user . hasPermission ( 'validate_entities' ) ) &&
8+ ! ( await targetUser . hasPermission ( 'validate_entities' ) )
9+ )
10+ }
11+
12+ async accessAdmin ( user : User ) {
13+ return await user . hasPermission ( 'admin_access' )
14+ }
15+ }
Original file line number Diff line number Diff line change @@ -21,4 +21,4 @@ const dbConfig = defineConfig({
2121 } ,
2222} )
2323
24- export default dbConfig
24+ export default dbConfig
Original file line number Diff line number Diff line change 66 "dev" : " vite dev" ,
77 "build" : " vite build" ,
88 "serve" : " vite preview" ,
9- "test" : " vitest run" ,
109 "lint" : " eslint" ,
1110 "format" : " prettier" ,
1211 "check" : " prettier --write . && eslint --fix" ,
You can’t perform that action at this time.
0 commit comments