api_role

package
v0.0.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

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) Create

func (h *Handler) Create(c *app.Context, req CreateRequest) (api.Created[models.Role], error)

func (*Handler) CreateBinding

func (h *Handler) CreateBinding(c *app.Context, req CreateBindingRequest) (api.Created[models.RoleBinding], error)

func (*Handler) Delete

func (h *Handler) Delete(c *app.Context, req IDRequest) (api.StatusResponse, error)

func (*Handler) DeleteBinding

func (h *Handler) DeleteBinding(c *app.Context, req IDRequest) (api.StatusResponse, error)

func (*Handler) Get

func (h *Handler) Get(c *app.Context, req IDRequest) (RoleResponse, error)

func (*Handler) List

func (*Handler) ListBindings

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 IDRequest

type IDRequest struct {
	ID string `uri:"id" binding:"required"`
}

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"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL