53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
|
|
package entity
|
||
|
|
|
||
|
|
import (
|
||
|
|
"backend/pkg/permission/domain/permission"
|
||
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
||
|
|
)
|
||
|
|
|
||
|
|
// Permission 權限實體 (MongoDB)
|
||
|
|
type Permission struct {
|
||
|
|
ID bson.ObjectID `bson:"_id,omitempty" json:"id"`
|
||
|
|
ParentID bson.ObjectID `bson:"parent_id,omitempty" json:"parent_id"`
|
||
|
|
Name string `bson:"name" json:"name"`
|
||
|
|
HTTPMethod string `bson:"http_method,omitempty" json:"http_method,omitempty"`
|
||
|
|
HTTPPath string `bson:"http_path,omitempty" json:"http_path,omitempty"`
|
||
|
|
State permission.RecordState `bson:"status" json:"status"` // 本筆資料的週期
|
||
|
|
Type permission.Type `bson:"type" json:"type"`
|
||
|
|
|
||
|
|
permission.TimeStamp `bson:",inline"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// CollectionName 集合名稱
|
||
|
|
func (p *Permission) CollectionName() string {
|
||
|
|
return "permission"
|
||
|
|
}
|
||
|
|
|
||
|
|
//// IsActive 是否啟用
|
||
|
|
//func (p *Permission) IsActive() bool {
|
||
|
|
// return p.Status.IsActive()
|
||
|
|
//}
|
||
|
|
|
||
|
|
//IsActive
|
||
|
|
//// IsParent 是否為父權限
|
||
|
|
//func (p *Permission) IsParent() bool {
|
||
|
|
// return p.ParentID.IsZero()
|
||
|
|
//}
|
||
|
|
//
|
||
|
|
//// IsAPIPermission 是否為 API 權限
|
||
|
|
//func (p *Permission) IsAPIPermission() bool {
|
||
|
|
// return p.HTTPPath != "" && p.HTTPMethod != ""
|
||
|
|
//}
|
||
|
|
//
|
||
|
|
//// Validate 驗證資料
|
||
|
|
//func (p *Permission) Validate() error {
|
||
|
|
// if p.Name == "" {
|
||
|
|
// return ErrInvalidData("permission name is required")
|
||
|
|
// }
|
||
|
|
// // API 權限必須有 path 和 method
|
||
|
|
// if (p.HTTPPath != "" && p.HTTPMethod == "") || (p.HTTPPath == "" && p.HTTPMethod != "") {
|
||
|
|
// return ErrInvalidData("permission http_path and http_method must be both set or both empty")
|
||
|
|
// }
|
||
|
|
// return nil
|
||
|
|
//}
|