@@ -248,25 +248,39 @@ func (m *Model) BuildMatcherFromDef(mDef *defs.MatcherDef) (matcher.IMatcher, er
248
248
func (m * Model ) AddRule (rule []string ) (bool , error ) {
249
249
key := rule [0 ]
250
250
sec := key [0 ]
251
+ var added bool
252
+ var err error
251
253
switch sec {
252
254
case 'p' :
253
- return m .addPolicyRule (key , rule [1 :])
255
+ added , err = m .addPolicyRule (key , rule [1 :])
254
256
case 'g' :
255
- return m .addRoleRule (key , rule [1 :])
257
+ added , err = m .addRoleRule (key , rule [1 :])
258
+ default :
259
+ return false , fmt .Errorf (str .ERR_POLICY_NOT_FOUND , key )
260
+ }
261
+ if added {
262
+ m .Emitter .EmitEvent (RULE_ADDED , rule )
256
263
}
257
- return false , fmt . Errorf ( str . ERR_POLICY_NOT_FOUND , key )
264
+ return added , err
258
265
}
259
266
260
267
func (m * Model ) RemoveRule (rule []string ) (bool , error ) {
261
268
key := rule [0 ]
262
269
sec := key [0 ]
270
+ var removed bool
271
+ var err error
263
272
switch sec {
264
273
case 'p' :
265
- return m .removePolicyRule (key , rule [1 :])
274
+ removed , err = m .removePolicyRule (key , rule [1 :])
266
275
case 'g' :
267
- return m .removeRoleRule (key , rule [1 :])
276
+ removed , err = m .removeRoleRule (key , rule [1 :])
277
+ default :
278
+ return false , fmt .Errorf (str .ERR_POLICY_NOT_FOUND , key )
279
+ }
280
+ if removed {
281
+ m .Emitter .EmitEvent (RULE_REMOVED , rule )
268
282
}
269
- return false , fmt . Errorf ( str . ERR_POLICY_NOT_FOUND , key )
283
+ return removed , err
270
284
}
271
285
272
286
func (m * Model ) addPolicyRule (key string , rule []string ) (bool , error ) {
0 commit comments