@@ -3,6 +3,7 @@ import { CachedByArg } from '@seedcompany/common';
3
3
import { identity , intersection } from 'lodash' ;
4
4
import { type EnhancedResource , type Session } from '~/common' ;
5
5
import { type QueryFragment } from '~/core/database/query' ;
6
+ import { SessionHost } from '../../../authentication/session.host' ;
6
7
import { withoutScope } from '../../dto' ;
7
8
import { RoleCondition } from '../../policies/conditions/role.condition' ;
8
9
import { type Permission } from '../builder/perm-granter' ;
@@ -21,7 +22,7 @@ import { ConditionOptimizer } from './condition-optimizer';
21
22
22
23
export interface ResolveParams {
23
24
action : string ;
24
- session : Session ;
25
+ session ? : Session ;
25
26
resource : EnhancedResource < any > ;
26
27
prop ?: string ;
27
28
calculatedAsCondition ?: boolean ;
@@ -39,14 +40,14 @@ export interface FilterOptions {
39
40
@Injectable ( )
40
41
export class PolicyExecutor {
41
42
constructor (
43
+ private readonly sessionHost : SessionHost ,
42
44
private readonly policyFactory : PolicyFactory ,
43
45
@Inject ( forwardRef ( ( ) => ConditionOptimizer ) )
44
46
private readonly conditionOptimizer : ConditionOptimizer & { } ,
45
47
) { }
46
48
47
49
resolve ( {
48
50
action,
49
- session,
50
51
resource,
51
52
prop,
52
53
calculatedAsCondition,
@@ -63,6 +64,7 @@ export class PolicyExecutor {
63
64
}
64
65
}
65
66
67
+ const session = this . sessionHost . current ;
66
68
const policies = this . getPolicies ( session ) ;
67
69
const isChildRelation = prop && resource . childKeys . has ( prop ) ;
68
70
@@ -185,7 +187,7 @@ export class PolicyExecutor {
185
187
186
188
const other = {
187
189
resource : params . resource ,
188
- session : params . session ,
190
+ session : this . sessionHost . current ,
189
191
} ;
190
192
return query
191
193
. comment ( "Loading policy condition's context" )
0 commit comments