You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.6 KiB
38 lines
1.6 KiB
package model |
|
|
|
import ( |
|
"gofaster/internal/shared/model" |
|
) |
|
|
|
// Resource 权限资源模型 |
|
type Resource struct { |
|
model.BaseModel |
|
Name string `gorm:"uniqueIndex;size:100" json:"name"` // 资源名称,如 "用户管理" |
|
Code string `gorm:"uniqueIndex;size:100" json:"code"` // 资源代码,如 "user:manage" |
|
Type string `gorm:"size:50" json:"type"` // 资源类型:api, menu, button, data |
|
Path string `gorm:"size:200" json:"path"` // 资源路径,如 "/api/users" |
|
Method string `gorm:"size:20" json:"method"` // HTTP方法,如 "GET", "POST" |
|
Description string `gorm:"size:200" json:"description"` // 资源描述 |
|
Module string `gorm:"size:50" json:"module"` // 所属模块,如 "auth", "workflow" |
|
Status int `gorm:"default:1" json:"status"` // 状态:1-启用,0-禁用 |
|
Sort int `gorm:"default:0" json:"sort"` // 排序 |
|
ParentID *uint `gorm:"index" json:"parent_id"` // 父资源ID,用于层级结构 |
|
Icon string `gorm:"size:50" json:"icon"` // 图标(用于菜单) |
|
IsPublic bool `gorm:"default:false" json:"is_public"` // 是否公开资源(无需权限验证) |
|
} |
|
|
|
// ResourcePermission 资源权限关联表 |
|
type ResourcePermission struct { |
|
ResourceID uint `gorm:"primaryKey"` |
|
PermissionID uint `gorm:"primaryKey"` |
|
} |
|
|
|
// TableName 指定表名 |
|
func (Resource) TableName() string { |
|
return "resources" |
|
} |
|
|
|
// TableName 指定表名 |
|
func (ResourcePermission) TableName() string { |
|
return "resource_permissions" |
|
}
|
|
|