dev: rbac
This commit is contained in:
11
model/privilege.go
Normal file
11
model/privilege.go
Normal file
@ -0,0 +1,11 @@
|
||||
package model
|
||||
|
||||
type Privilege struct {
|
||||
CreatedAt int64 `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
|
||||
UpdatedAt int64 `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
|
||||
DeletedAt int64 `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`
|
||||
Code string `json:"code" gorm:"column:code;primaryKey"`
|
||||
Label string `json:"label" gorm:"column:label"`
|
||||
Parent string `json:"parent" gorm:"column:parent"`
|
||||
Scope string `json:"scope" gorm:"column:scope"`
|
||||
}
|
13
model/role.go
Normal file
13
model/role.go
Normal file
@ -0,0 +1,13 @@
|
||||
package model
|
||||
|
||||
import "uauth/internal/sqlType"
|
||||
|
||||
type Role struct {
|
||||
CreatedAt int64 `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
|
||||
UpdatedAt int64 `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
|
||||
DeletedAt int64 `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`
|
||||
Code string `json:"code" gorm:"primaryKey;column:code"`
|
||||
Label string `json:"label" gorm:"column:label"`
|
||||
Parent string `json:"parent" gorm:"column:parent"`
|
||||
PrivilegeCodes sqlType.StrSlice `json:"privilege_codes" gorm:"column:privilege_codes"`
|
||||
}
|
11
model/scope.go
Normal file
11
model/scope.go
Normal file
@ -0,0 +1,11 @@
|
||||
package model
|
||||
|
||||
// 用户权限作用域
|
||||
type Scope struct {
|
||||
Code string `json:"code" gorm:"column:code;type:varchar(8);not null;primaryKey"`
|
||||
CreatedAt int64 `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
|
||||
UpdatedAt int64 `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
|
||||
DeletedAt int64 `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`
|
||||
Label string `json:"label" gorm:"column:label;type:varchar(64)"`
|
||||
Parent string `json:"parent" gorm:"column:parent;type:varchar(8)"`
|
||||
}
|
@ -6,6 +6,7 @@ import (
|
||||
"github.com/loveuer/nf/nft/log"
|
||||
"time"
|
||||
"uauth/internal/opt"
|
||||
"uauth/internal/sqlType"
|
||||
)
|
||||
|
||||
type Status int64
|
||||
@ -29,6 +30,9 @@ type User struct {
|
||||
CreatedByName string `json:"created_by_name" gorm:"column:created_by_name;type:varchar(64)"`
|
||||
|
||||
LoginAt int64 `json:"login_at" gorm:"-"`
|
||||
|
||||
Roles []*Role `json:"-" gorm:"-"`
|
||||
RoleNames sqlType.StrSlice `json:"role_names" column:"role_names"`
|
||||
}
|
||||
|
||||
func (u *User) JwtEncode() (token string, err error) {
|
||||
@ -40,6 +44,7 @@ func (u *User) JwtEncode() (token string, err error) {
|
||||
"username": u.Username,
|
||||
"nickname": u.Nickname,
|
||||
"status": u.Status,
|
||||
"avatar": u.Avatar,
|
||||
"login_at": now.UnixMilli(),
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user