diff --git a/api/app/init.go b/api/app/init.go index 67a2f48..30ba67c 100644 --- a/api/app/init.go +++ b/api/app/init.go @@ -21,5 +21,5 @@ func init() { crud.All(appRouter.SubRouter("resource"), cfg.DB, models.Resource{}) crud.All(appRouter.SubRouter("user"), cfg.DB, models.AppUser{}) crud.All(appRouter.SubRouter("role"), cfg.DB, models.Role{}) - crud.All(Router.SubRouter("access"), cfg.DB, models.Access{}) + crud.All(appRouter.SubRouter("access"), cfg.DB, models.Access{}) } diff --git a/api/init.go b/api/init.go index 1832fce..c8f5ff7 100644 --- a/api/init.go +++ b/api/init.go @@ -8,8 +8,6 @@ package api import ( - "fmt" - "github.com/veypi/OneAuth/api/app" "github.com/veypi/OneAuth/api/token" "github.com/veypi/OneAuth/api/user" @@ -26,5 +24,5 @@ var ( ) var _ = Router.Any("*", func(x *vigo.X) error { - return fmt.Errorf("404") + return vigo.ErrNotFound }) diff --git a/api/user/init.go b/api/user/init.go index 3703e35..6b3414c 100644 --- a/api/user/init.go +++ b/api/user/init.go @@ -8,12 +8,15 @@ package user import ( - "github.com/veypi/OneAuth/api/user/role" + "github.com/veypi/OneAuth/cfg" + "github.com/veypi/OneAuth/models" "github.com/vyes/vigo" + "github.com/vyes/vigo/contrib/crud" ) var Router = vigo.NewRouter() -var ( - _ = Router.Extend("/:user_id/user_role", role.Router) -) +func init() { + crud.All(Router.SubRouter("/:user_id/user_role"), cfg.DB, models.UserRole{}) + +} diff --git a/api/user/user.go b/api/user/user.go index 268f962..6992b62 100644 --- a/api/user/user.go +++ b/api/user/user.go @@ -5,6 +5,7 @@ import ( "github.com/veypi/OneAuth/libs/auth" "github.com/veypi/OneAuth/models" "github.com/vyes/vigo" + "github.com/vyes/vigo/contrib/crud" ) var _ = Router.Delete("/:user_id", auth.Check("user", "user_id", auth.DoDelete), userDelete) @@ -34,7 +35,7 @@ func userGet(x *vigo.X) (any, error) { return data, err } -var _ = Router.Get("/", "list user", listOpts{}, auth.Check("user", "", auth.DoRead), userList) +var _ = Router.Get("/", "list user", listOpts{}, auth.Check("user", "", auth.DoUpdate), crud.List(cfg.DB, &models.User{})) type listOpts struct { Username *string `json:"username" parse:"query"` diff --git a/models/app.go b/models/app.go index bb05694..cdd00cc 100644 --- a/models/app.go +++ b/models/app.go @@ -69,10 +69,10 @@ func (m *AppUser) AfterUpdate(tx *gorm.DB) error { type Resource struct { BaseModel - AppID string `json:"app_id" methods:"*list,post" parse:"path"` + AppID string `json:"app_id" parse:"path@app_id"` App *App `json:"-" gorm:"foreignKey:AppID;references:ID"` - Name string `json:"name" methods:"post" parse:"json"` - Des string `json:"des" methods:"post,*patch" parse:"json"` + Name string `json:"name" parse:"json"` + Des string `json:"des" parse:"json"` } type Role struct { @@ -87,20 +87,19 @@ type Role struct { type Access struct { BaseModel - AppID string `json:"app_id" gorm:"index;type:varchar(32)" methods:"post,list" parse:"json"` + AppID string `json:"app_id" gorm:"index;type:varchar(32)" parse:"path@app_id"` App *App `json:"-" gorm:"foreignKey:AppID;references:ID"` - UserID *string `json:"user_id" gorm:"index;type:varchar(32);default: null" methods:"post,list" parse:"json"` + UserID *string `json:"user_id" gorm:"index;type:varchar(32);default: null" parse:"json"` User *User `json:"-" gorm:"foreignKey:UserID;references:ID"` - RoleID *string `json:"role_id" gorm:"index;type:varchar(32);default: null" methods:"post,list" parse:"json"` + RoleID *string `json:"role_id" gorm:"index;type:varchar(32);default: null" parse:"json"` Role *Role `json:"-" gorm:"foreignKey:RoleID;references:ID"` - ResourceID *string `json:"resource_id" gorm:"index;type:varchar(32);default: null" methods:"post,list" parse:"json"` + ResourceID *string `json:"resource_id" gorm:"index;type:varchar(32);default: null" parse:"json"` Resource *Resource `json:"-" gorm:"foreignKey:ResourceID;references:ID"` - Name string `json:"name" methods:"post,*list" parse:"json"` - - TID string `json:"tid" methods:"post,*patch" parse:"json"` - Level uint `json:"level" methods:"post,*patch" parse:"json"` + Name string `json:"name" parse:"json"` + TID string `json:"tid" parse:"json"` + Level uint `json:"level" parse:"json"` } diff --git a/models/user.go b/models/user.go index 81271d9..a29281f 100644 --- a/models/user.go +++ b/models/user.go @@ -24,16 +24,16 @@ type User struct { type UserRole struct { BaseModel - UserID string `json:"user_id" methods:"*list,post" parse:"path"` + UserID string `json:"user_id" parse:"path@user_id"` User *User `json:"-" gorm:"foreignKey:UserID;references:ID"` - RoleID string `json:"role_id" methods:"*list,post" parse:"json"` + RoleID string `json:"role_id" parse:"json"` Role *Role `json:"-" gorm:"foreignKey:RoleID;references:ID"` - AppID string `json:"app_id" methods:"*list,post" parse:"json"` + AppID string `json:"app_id" parse:"json"` App *App `json:"-" gorm:"foreignKey:AppID;references:ID"` - Status string `json:"status" methods:"post,*patch,*list, *go@get@/go" parse:"json@ssss"` + Status string `json:"status"` } func (m *UserRole) AfterCreate(tx *gorm.DB) error { diff --git a/ui/assets/common.css b/ui/assets/common.css index b01dcfa..b86d577 100644 --- a/ui/assets/common.css +++ b/ui/assets/common.css @@ -167,16 +167,6 @@ line-height: 1.6; } - a { - color: var(--color-link); - text-decoration: none; - transition: var(--transition); - } - - a:hover { - color: var(--color-link-hover); - text-decoration: underline; - } hr { border: 0; @@ -278,9 +268,7 @@ input[type="number"], textarea { border: 1px solid var(--color-border); - padding: 8px 12px; border-radius: 4px; - background-color: white; color: var(--text-color); transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; } diff --git a/ui/c/app/menu.html b/ui/c/app/menu.html index a5799d9..cb354b9 100644 --- a/ui/c/app/menu.html +++ b/ui/c/app/menu.html @@ -1,33 +1,10 @@ - -
- - - - diff --git a/ui/c/table.html b/ui/c/table.html index 29046f9..04a2e94 100644 --- a/ui/c/table.html +++ b/ui/c/table.html @@ -1,630 +1,260 @@ - + - - - -