@@ -248,25 +248,39 @@ func (m *Model) BuildMatcherFromDef(mDef *defs.MatcherDef) (matcher.IMatcher, er
248248func (m * Model ) AddRule (rule []string ) (bool , error ) {
249249 key := rule [0 ]
250250 sec := key [0 ]
251+ var added bool
252+ var err error
251253 switch sec {
252254 case 'p' :
253- return m .addPolicyRule (key , rule [1 :])
255+ added , err = m .addPolicyRule (key , rule [1 :])
254256 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 )
256263 }
257- return false , fmt . Errorf ( str . ERR_POLICY_NOT_FOUND , key )
264+ return added , err
258265}
259266
260267func (m * Model ) RemoveRule (rule []string ) (bool , error ) {
261268 key := rule [0 ]
262269 sec := key [0 ]
270+ var removed bool
271+ var err error
263272 switch sec {
264273 case 'p' :
265- return m .removePolicyRule (key , rule [1 :])
274+ removed , err = m .removePolicyRule (key , rule [1 :])
266275 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 )
268282 }
269- return false , fmt . Errorf ( str . ERR_POLICY_NOT_FOUND , key )
283+ return removed , err
270284}
271285
272286func (m * Model ) addPolicyRule (key string , rule []string ) (bool , error ) {
0 commit comments