Documentation
¶
Index ¶
- type CreateBindingRequest
- type CreateRequest
- type Handler
- func (h *Handler) Create(c *app.Context, req CreateRequest) (api.Created[models.Role], error)
- func (h *Handler) CreateBinding(c *app.Context, req CreateBindingRequest) (api.Created[models.RoleBinding], error)
- func (h *Handler) Delete(c *app.Context, req IDRequest) (api.StatusResponse, error)
- func (h *Handler) DeleteBinding(c *app.Context, req IDRequest) (api.StatusResponse, error)
- func (h *Handler) Get(c *app.Context, req IDRequest) (RoleResponse, error)
- func (h *Handler) List(c *app.Context, req ListRequest) (api.PaginatedResponse[RoleResponse], error)
- func (h *Handler) ListBindings(c *app.Context, req ListBindingRequest) (api.PaginatedResponse[models.RoleBinding], error)
- func (h *Handler) Update(c *app.Context, req UpdateRequest) (api.StatusResponse, error)
- func (h *Handler) UpdateBinding(c *app.Context, req UpdateBindingRequest) (api.StatusResponse, error)
- type IDRequest
- type ListBindingRequest
- type ListRequest
- type PermissionRequest
- type RoleMemberRequest
- type RolePublisher
- type RoleResponse
- type UpdateBindingRequest
- type UpdateRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateBindingRequest ¶
type CreateBindingRequest struct {
PrincipalType models.APIPrincipalType `json:"principal_type" binding:"required"`
PrincipalID uint `json:"principal_id"`
RoleID uint `json:"role_id"`
}
type CreateRequest ¶
type CreateRequest struct {
Key string `json:"key" binding:"required,max=64"`
Name string `json:"name" binding:"required,max=128"`
Description string `json:"description"`
Status *int `json:"status"`
Permissions []PermissionRequest `json:"permissions"`
Members []RoleMemberRequest `json:"members"`
}
type Handler ¶
type Handler struct {
App app.Application
Publisher RolePublisher
}
Handler owns administrative generic API role and binding reads.
func (*Handler) CreateBinding ¶
func (h *Handler) CreateBinding(c *app.Context, req CreateBindingRequest) (api.Created[models.RoleBinding], error)
func (*Handler) DeleteBinding ¶
func (*Handler) List ¶
func (h *Handler) List(c *app.Context, req ListRequest) (api.PaginatedResponse[RoleResponse], error)
func (*Handler) ListBindings ¶
func (h *Handler) ListBindings(c *app.Context, req ListBindingRequest) (api.PaginatedResponse[models.RoleBinding], error)
func (*Handler) Update ¶
func (h *Handler) Update(c *app.Context, req UpdateRequest) (api.StatusResponse, error)
func (*Handler) UpdateBinding ¶
func (h *Handler) UpdateBinding(c *app.Context, req UpdateBindingRequest) (api.StatusResponse, error)
type ListBindingRequest ¶
type ListBindingRequest struct {
api.PaginationQuery
PrincipalType *models.APIPrincipalType `form:"principal_type"`
PrincipalID *uint `form:"principal_id"`
RoleID *uint `form:"role_id"`
}
type ListRequest ¶
type ListRequest struct {
api.PaginationQuery
Search string `form:"search"`
Status *int `form:"status"`
Assignable *bool `form:"assignable"`
}
type PermissionRequest ¶
type PermissionRequest struct {
Resource models.APIResource `json:"resource" binding:"required"`
ResourceID uint `json:"resource_id"`
Action models.APIPermissionAction `json:"action" binding:"required"`
}
type RoleMemberRequest ¶
type RoleMemberRequest struct {
PrincipalType models.APIPrincipalType `json:"principal_type" binding:"required"`
PrincipalID uint `json:"principal_id" binding:"required"`
}
type RolePublisher ¶
type RolePublisher interface {
PublishRole(context.Context, dao.AdminQuery, string, uint) error
PublishRoleBindingChange(context.Context, dao.AdminQuery, models.APIPrincipalType, uint) error
}
type RoleResponse ¶
type RoleResponse struct {
models.Role
Permissions []models.Permission `json:"permissions"`
Members []RoleMemberRequest `json:"members"`
}
type UpdateBindingRequest ¶
type UpdateBindingRequest struct {
ID string `uri:"id" binding:"required"`
PrincipalType models.APIPrincipalType `json:"principal_type" binding:"required"`
PrincipalID uint `json:"principal_id"`
RoleID uint `json:"role_id"`
}
type UpdateRequest ¶
type UpdateRequest struct {
ID string `uri:"id" binding:"required"`
Key string `json:"key" binding:"required,max=64"`
Name string `json:"name" binding:"required,max=128"`
Description string `json:"description"`
Status *int `json:"status"`
Permissions []PermissionRequest `json:"permissions"`
Members []RoleMemberRequest `json:"members"`
}
Click to show internal directories.
Click to hide internal directories.