Closed umairrsyedd closed 1 year ago
@PokIsemaine
Any updates on this @PokIsemaine ?
@umairrsyedd
package main
import (
"fmt"
"github.com/casbin/casbin/v2"
gormadapter "github.com/casbin/gorm-adapter/v3"
_ "github.com/go-sql-driver/mysql"
)
type SampleWatcher struct {
callback func(string)
}
func myCallBack(s string) {
fmt.Println(s)
}
func (w *SampleWatcher) Close() {
}
func (w *SampleWatcher) SetUpdateCallback(callback func(string)) error {
w.callback = callback
return nil
}
func (w *SampleWatcher) Update() error {
if w.callback != nil {
fmt.Println("watcher Update")
w.callback("myCallBack")
}
return nil
}
func main() {
a, _ := gormadapter.NewAdapter("mysql", "root:root@tcp(127.0.0.1:3307)/") // Your driver and data source.
e, _ := casbin.NewEnforcer("examples/rbac_model.conf", a)
//e, _ := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
sampleWatcher := &SampleWatcher{}
_ = e.SetWatcher(sampleWatcher)
_ = sampleWatcher.SetUpdateCallback(myCallBack)
e.EnableAutoNotifyWatcher(true)
_ = e.SavePolicy() //calls watcher.Update()
}
@tangyang9464 @JalinWang @imp2002