role_access.go 1.2 KB
package domain

// 角色权限
type RoleAccess struct {
	// dcc
	Id int64 `json:"id"`
	// 角色id
	RoleId int64 `json:"roleId"`
	// 权限编号
	AccessId int64 `json:"accessId"`
	// 请求对象 接口地址/对象
	Object string `json:"object"`
	// 操作方法 httpMethod/read/write
	Action string `json:"action"`
	// 可选对象
	Option string `json:"option"`
}

type RoleAccessRepository interface {
	Save(roleAccess *RoleAccess) (*RoleAccess, error)
	Remove(roleAccess *RoleAccess) (*RoleAccess, error)
	FindOne(queryOptions map[string]interface{}) (*RoleAccess, error)
	Find(queryOptions map[string]interface{}) (int64, []*RoleAccess, error)
}

func (roleAccess *RoleAccess) Identify() interface{} {
	if roleAccess.Id == 0 {
		return nil
	}
	return roleAccess.Id
}

func (roleAccess *RoleAccess) Update(data map[string]interface{}) error {
	if RoleId, ok := data["RoleId"]; ok {
		roleAccess.RoleId = RoleId.(int64)
	}
	if AccessId, ok := data["AccessId"]; ok {
		roleAccess.AccessId = AccessId.(int64)
	}
	if Object, ok := data["Object"]; ok {
		roleAccess.Object = Object.(string)
	}
	if Action, ok := data["Action"]; ok {
		roleAccess.Action = Action.(string)
	}
	if Option, ok := data["Option"]; ok {
		roleAccess.Option = Option.(string)
	}
	return nil
}