mirror of https://github.com/veypi/OneAuth.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.2 KiB
Go
29 lines
1.2 KiB
Go
|
1 week ago
|
// Copyright (C) 2024 veypi <i@veypi.com>
|
||
|
|
// 2025-03-04 16:08:06
|
||
|
|
// Distributed under terms of the MIT license.
|
||
|
|
|
||
|
|
package role
|
||
|
|
|
||
|
|
import (
|
||
|
|
"github.com/veypi/vbase/api/middleware"
|
||
|
|
"github.com/veypi/vigo"
|
||
|
|
)
|
||
|
|
|
||
|
|
var Router = vigo.NewRouter()
|
||
|
|
|
||
|
|
func init() {
|
||
|
|
// 列表和详情 - 需要读取权限
|
||
|
|
Router.Get("/", middleware.Permission("role", "list"), "角色列表", list)
|
||
|
|
Router.Get("/{role_id}", middleware.Permission("role", "read"), "获取角色详情", get)
|
||
|
|
|
||
|
|
// 创建、更新、删除 - 需要管理权限
|
||
|
|
Router.Post("/", middleware.Permission("role", "create"), "创建角色", create)
|
||
|
|
Router.Patch("/{role_id}", middleware.Permission("role", "update"), "更新角色", patch)
|
||
|
|
Router.Delete("/{role_id}", middleware.Permission("role", "delete"), "删除角色", del)
|
||
|
|
|
||
|
|
// 角色策略管理 - 需要角色管理权限
|
||
|
|
Router.Get("/{role_id}/policies", middleware.Permission("role", "read"), "获取角色策略", listPolicies)
|
||
|
|
Router.Post("/{role_id}/policies", middleware.Permission("role", "update"), "为角色添加策略", addPolicy)
|
||
|
|
Router.Delete("/{role_id}/policies/{policy_id}", middleware.Permission("role", "update"), "从角色移除策略", removePolicy)
|
||
|
|
}
|