go-common/app/admin/main/manager/model/user.go

182 lines
4.0 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package model
import (
"go-common/library/time"
)
// const rbac const
const (
// auth_item type
TypePointer = 1
TypeCategory = 2
TypeRole = 3
TypeGroup = 4
// Admin super admin
Admin = 1
// user state
UserStateOn = 0
UserDepOn = 1
)
// Account dashboard user account
type Account struct {
Username string `json:"username"`
}
// Auth .
type Auth struct {
UID int64 `json:"uid"`
Username string `json:"username"`
Nickname string `json:"nickname"`
Perms []string `json:"perms"`
Admin bool `json:"admin"`
Assignable bool `json:"assignable"`
}
// Permissions .
type Permissions struct {
UID int64 `json:"uid"`
Perms []string `json:"perms"`
Admin bool `json:"admin"`
Orgs []*AuthOrg `json:"orgs"`
Roles []*AuthOrg `json:"roles"`
}
// UserDept .
type UserDept struct {
ID int64 `json:"id" gorm:"column:id"`
Department string `json:"department" gorm:"column:department"`
}
// user table
// User struct info of table user
type User struct {
ID int64 `json:"id"`
Username string `json:"username"`
Nickname string `json:"nickname"`
Email string `json:"email"`
Phone string `json:"phone"`
DepartmentID int `json:"department_id"`
State int `json:"state"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
// TableName return table name
func (a *User) TableName() string {
return "user"
}
// UserPager def.
type UserPager struct {
Pn int `json:"pn"`
Ps int `json:"ps"`
Items []*User `json:"items"`
}
// auth table
// AuthAssign struct info of table auth_assignment
type AuthAssign struct {
ID int64 `json:"id"`
ItemID int64 `json:"item_id"`
UserID int64 `json:"user_id"`
Ctime time.Time `json:"ctime"`
}
// TableName return table name
func (a AuthAssign) TableName() string {
return "auth_assignment"
}
// AuthItem struct info of table auth_item
type AuthItem struct {
ID int64 `json:"id"`
Name string `json:"name"`
Type int `json:"type"`
Description string `json:"description"`
RuleID int64 `json:"rule_id"`
Data string `json:"data"`
Ctime time.Time `json:"ctime"`
Mtime time.Time `json:"mtime"`
}
// TableName return table name
func (a AuthItem) TableName() string {
return "auth_item"
}
// AuthItemChild stuct info of table auth_item_child
type AuthItemChild struct {
ID int64 `json:"id"`
Parent int64 `json:"parent"`
Child int64 `json:"child"`
}
// TableName return table name
func (a AuthItemChild) TableName() string {
return "auth_item_child"
}
// Role role info.
type Role struct {
ID int64 `json:"id"`
OrgName string `json:"org_name"`
RoleName string `json:"name"`
Users []string `json:"users"`
Description string `json:"description"`
}
// RoleAss .
type RoleAss struct {
ID int64 `json:"id" gorm:"column:id"`
RoleID int64 `json:"role_id" gorm:"column:role_id"`
UserID int64 `json:"user_id" gorm:"column:user_id"`
Ctime time.Time `json:"ctime" gorm:"-"`
}
// Org org info.
type Org struct {
ID int64 `json:"id"`
Name string `json:"name"`
Users []string `json:"users"`
Description string `json:"description"`
}
// AuthOrg org info.
type AuthOrg struct {
ID int64 `json:"id"`
Name string `json:"name"`
Type int `json:"-"` // group or role, ignore it when transform to json
}
// TableName return table name
func (a AuthOrg) TableName() string {
return "auth_item"
}
// RespPerm response Permission
type RespPerm struct {
Res []string
Admin bool
Groups []*AuthOrg
Roles []*AuthOrg
}
// AssignRole auth assignment info.
type AssignRole struct {
Parent string `json:"parent"`
Name string `json:"name"`
Assignable []*AuthItem `json:"children"`
Items []int64 `json:"items"`
}
// AssignOrg auth assignment info.
type AssignOrg struct {
Name string `json:"name"`
Assignable []*AuthItem `json:"children"`
Items []int64 `json:"items"`
}