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.
OneAuth/api/role/init.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)
}