Skip to content

Commit 858c8ff

Browse files
committed
fix(model): emit events
1 parent 8677eeb commit 858c8ff

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

model/model.go

+20-6
Original file line numberDiff line numberDiff line change
@@ -248,25 +248,39 @@ func (m *Model) BuildMatcherFromDef(mDef *defs.MatcherDef) (matcher.IMatcher, er
248248
func (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

260267
func (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

272286
func (m *Model) addPolicyRule(key string, rule []string) (bool, error) {

storage/controller.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ func (sc *StorageController) addOp(opc opcode, rule []string) {
105105
if sc.autosave {
106106
sc.wait--
107107
if sc.wait <= 0 {
108-
sc.Flush()
108+
err := sc.Flush()
109+
if err != nil {
110+
panic(err)
111+
}
109112
}
110113
}
111114
}

0 commit comments

Comments
 (0)