Improve error message in InitEnforcer()

This commit is contained in:
Yang Luo 2023-08-11 02:36:29 +08:00
parent 3cb46c3628
commit 6746551447

View File

@ -15,7 +15,7 @@
package object
import (
"errors"
"fmt"
"github.com/casbin/casbin/v2"
"github.com/casdoor/casdoor/util"
@ -120,28 +120,34 @@ func DeleteEnforcer(enforcer *Enforcer) (bool, error) {
return affected != 0, nil
}
func (p *Enforcer) GetId() string {
return fmt.Sprintf("%s/%s", p.Owner, p.Name)
}
func (enforcer *Enforcer) InitEnforcer() error {
if enforcer.Enforcer == nil {
if enforcer == nil {
return errors.New("enforcer is nil")
}
if enforcer.Model == "" || enforcer.Adapter == "" {
return errors.New("missing model or adapter")
if enforcer.Enforcer != nil {
return nil
}
var err error
var m *Model
var a *Adapter
if enforcer.Model == "" {
return fmt.Errorf("the model for enforcer: %s should not be empty", enforcer.GetId())
}
if enforcer.Adapter == "" {
return fmt.Errorf("the adapter for enforcer: %s should not be empty", enforcer.GetId())
}
if m, err = GetModel(enforcer.Model); err != nil {
m, err := GetModel(enforcer.Model)
if err != nil {
return err
} else if m == nil {
return errors.New("model not found")
return fmt.Errorf("the model: %s for enforcer: %s is not found", enforcer.Model, enforcer.GetId())
}
if a, err = GetAdapter(enforcer.Adapter); err != nil {
a, err := GetAdapter(enforcer.Adapter)
if err != nil {
return err
} else if a == nil {
return errors.New("adapter not found")
return fmt.Errorf("the adapter: %s for enforcer: %s is not found", enforcer.Adapter, enforcer.GetId())
}
err = m.initModel()
@ -157,8 +163,7 @@ func (enforcer *Enforcer) InitEnforcer() error {
if err != nil {
return err
}
enforcer.Enforcer = casbinEnforcer
}
enforcer.Enforcer = casbinEnforcer
return nil
}