- 重构authz结构

- 角色管理初版完成
This commit is contained in:
gazebo
2019-08-08 17:06:58 +08:00
parent 60f3ec9c3b
commit b51614946f
18 changed files with 161 additions and 98 deletions

View File

@@ -1,30 +1,16 @@
package casbinauth
import (
jxmodel "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm"
"github.com/casbin/casbin/model"
"github.com/casbin/casbin/persist"
)
type CasbinRule struct {
ID int `orm:"column(id)" json:"id"`
PType string
V0 string
V1 string
V2 string
V3 string
V4 string
V5 string
}
type Adapter struct {
}
func RegisterModel() {
orm.RegisterModel(new(CasbinRule))
}
// finalizer is the destructor for Adapter.
func finalizer(a *Adapter) {
}
@@ -33,7 +19,7 @@ func NewAdapter() *Adapter {
return &Adapter{}
}
func loadPolicyLine(line CasbinRule, model model.Model) {
func loadPolicyLine(line jxmodel.CasbinRule, model model.Model) {
lineText := line.PType
if line.V0 != "" {
lineText += ", " + line.V0
@@ -58,7 +44,7 @@ func loadPolicyLine(line CasbinRule, model model.Model) {
}
func (a *Adapter) LoadPolicy(model model.Model) error {
var lines []CasbinRule
var lines []jxmodel.CasbinRule
o := orm.NewOrm()
_, err := o.QueryTable("casbin_rule").Limit(-1).All(&lines)
if err != nil {
@@ -71,8 +57,8 @@ func (a *Adapter) LoadPolicy(model model.Model) error {
return nil
}
func savePolicyLine(ptype string, rule []string) CasbinRule {
line := CasbinRule{}
func savePolicyLine(ptype string, rule []string) jxmodel.CasbinRule {
line := jxmodel.CasbinRule{}
line.PType = ptype
if len(rule) > 0 {
@@ -111,7 +97,7 @@ func (a *Adapter) SavePolicy(model model.Model) error {
o := orm.NewOrm()
a.clearAll(o)
var lines []CasbinRule
var lines []jxmodel.CasbinRule
for ptype, ast := range model["p"] {
for _, rule := range ast.Policy {
@@ -149,7 +135,7 @@ func (a *Adapter) RemovePolicy(sec string, ptype string, rule []string) error {
// RemoveFilteredPolicy removes policy rules that match the filter from the storage.
func (a *Adapter) RemoveFilteredPolicy(sec string, ptype string, fieldIndex int, fieldValues ...string) error {
line := CasbinRule{}
line := jxmodel.CasbinRule{}
line.PType = ptype
filter := []string{}

View File

@@ -2,6 +2,7 @@ package casbinauth
import (
"git.rosy.net.cn/jx-callback/business/authz"
"git.rosy.net.cn/jx-callback/business/authz/autils"
"git.rosy.net.cn/jx-callback/globals"
"github.com/casbin/casbin"
)
@@ -29,7 +30,7 @@ func (c *CasbinAuthz) DeleteRole4User(userID string, r *authz.RoleInfo) (err err
func (c *CasbinAuthz) GetUserRoleList(userID string) (roleList []*authz.RoleInfo, err error) {
roleNameList, err := c.enforcer.GetRolesForUser(userID)
if err == nil && len(roleNameList) > 0 {
roleList = authz.FullRoleName2RoleList(roleNameList)
roleList = autils.FullRoleName2RoleList(roleNameList)
}
return roleList, err
}