Skip to content

Commit 16f3bc0

Browse files
Copilotsagilio
andcommitted
Propagate logger via property setters instead of per-call in InternalEnforce
Co-authored-by: sagilio <42855245+sagilio@users.noreply.github.com>
1 parent 0ad3518 commit 16f3bc0

2 files changed

Lines changed: 31 additions & 8 deletions

File tree

Casbin/Enforcer.Internal.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,6 @@ private bool InternalEnforce<TRequest, TPolicy>(in EnforceContext context, in TR
7272
{
7373
EnforceSession session = new EnforceSession();
7474
IExpressionHandler expressionHandler = Model.ExpressionHandler;
75-
#if !NET452
76-
if (expressionHandler is ExpressionHandler exprHandler)
77-
{
78-
exprHandler.Logger = Logger;
79-
}
80-
#endif
8175
PolicyScanner<TRequest> scanner = context.View.PolicyAssertion.Scan(in requestValues);
8276

8377
EffectChain effectChain = new();

Casbin/Enforcer.cs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Threading.Tasks;
33
using Casbin.Caching;
44
using Casbin.Effect;
5+
using Casbin.Evaluation;
56
using Casbin.Model;
67
using Casbin.Persist;
78
using Casbin.Persist.Adapter.File;
@@ -84,7 +85,22 @@ public IReadOnlyWatcher Watcher
8485
set => Model.WatcherHolder.Watcher = value;
8586
}
8687

87-
public IModel Model { get; set; }
88+
private IModel _model;
89+
90+
public IModel Model
91+
{
92+
get => _model;
93+
set
94+
{
95+
_model = value;
96+
#if !NET452
97+
if (value?.ExpressionHandler is ExpressionHandler exprHandler)
98+
{
99+
exprHandler.Logger = _logger;
100+
}
101+
#endif
102+
}
103+
}
88104

89105
public IReadOnlyAdapter Adapter
90106
{
@@ -99,7 +115,20 @@ public IEnforceCache EnforceCache
99115
}
100116

101117
#if !NET452
102-
public ILogger Logger { get; set; }
118+
private ILogger _logger;
119+
120+
public ILogger Logger
121+
{
122+
get => _logger;
123+
set
124+
{
125+
_logger = value;
126+
if (_model?.ExpressionHandler is ExpressionHandler exprHandler)
127+
{
128+
exprHandler.Logger = value;
129+
}
130+
}
131+
}
103132
#endif
104133

105134
#endregion

0 commit comments

Comments
 (0)