Documentation
¶
Index ¶
- func SetupRoutes(rbacHandler *RBACHandler, jwtSecret, internalSecret string) http.Handler
- type RBACHandler
- func (h *RBACHandler) AssignDefaultRoleInternal(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) AssignPermissionToRole(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) AssignRoleByNameInternal(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) AssignRoleToUser(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) CheckPermission(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) CheckPermissions(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) CreatePermission(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) CreateRole(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) DeleteRole(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetPermission(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetRole(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetRoleHierarchy(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetRolePermissions(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetUserPermissions(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetUserPermissionsInternal(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) GetUserRoles(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) ListPermissions(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) ListRoles(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) RemovePermissionFromRole(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) RemoveRoleFromUser(w http.ResponseWriter, r *http.Request)
- func (h *RBACHandler) UpdateRole(w http.ResponseWriter, r *http.Request)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetupRoutes ¶
func SetupRoutes(rbacHandler *RBACHandler, jwtSecret, internalSecret string) http.Handler
SetupRoutes configures all routes for the RBAC service using Go 1.22+ stdlib router.
Types ¶
type RBACHandler ¶
type RBACHandler struct {
// contains filtered or unexported fields
}
RBACHandler handles all RBAC HTTP requests.
func NewRBACHandler ¶
func NewRBACHandler(service *service.RBACService) *RBACHandler
NewRBACHandler creates a new RBAC handler.
func (*RBACHandler) AssignDefaultRoleInternal ¶
func (h *RBACHandler) AssignDefaultRoleInternal(w http.ResponseWriter, r *http.Request)
AssignDefaultRoleInternal handles POST /internal/v1/users/{userId}/assign-default-role This is an internal endpoint for service-to-service communication (no auth required).
func (*RBACHandler) AssignPermissionToRole ¶
func (h *RBACHandler) AssignPermissionToRole(w http.ResponseWriter, r *http.Request)
AssignPermissionToRole handles POST /api/v1/roles/{id}/permissions
func (*RBACHandler) AssignRoleByNameInternal ¶
func (h *RBACHandler) AssignRoleByNameInternal(w http.ResponseWriter, r *http.Request)
AssignRoleByNameInternal handles POST /internal/v1/users/{userId}/assign-role This is an internal endpoint for service-to-service communication (no auth required). Request body: {"role_name": "user_admin"}
func (*RBACHandler) AssignRoleToUser ¶
func (h *RBACHandler) AssignRoleToUser(w http.ResponseWriter, r *http.Request)
AssignRoleToUser handles POST /api/v1/users/{userId}/roles
func (*RBACHandler) CheckPermission ¶
func (h *RBACHandler) CheckPermission(w http.ResponseWriter, r *http.Request)
CheckPermission handles POST /api/v1/check-permission
func (*RBACHandler) CheckPermissions ¶
func (h *RBACHandler) CheckPermissions(w http.ResponseWriter, r *http.Request)
CheckPermissions handles POST /api/v1/check-permissions (batch)
func (*RBACHandler) CreatePermission ¶
func (h *RBACHandler) CreatePermission(w http.ResponseWriter, r *http.Request)
CreatePermission handles POST /api/v1/permissions
func (*RBACHandler) CreateRole ¶
func (h *RBACHandler) CreateRole(w http.ResponseWriter, r *http.Request)
CreateRole handles POST /api/v1/roles
func (*RBACHandler) DeleteRole ¶
func (h *RBACHandler) DeleteRole(w http.ResponseWriter, r *http.Request)
DeleteRole handles DELETE /api/v1/roles/{id}
func (*RBACHandler) GetPermission ¶
func (h *RBACHandler) GetPermission(w http.ResponseWriter, r *http.Request)
GetPermission handles GET /api/v1/permissions/{id}
func (*RBACHandler) GetRole ¶
func (h *RBACHandler) GetRole(w http.ResponseWriter, r *http.Request)
GetRole handles GET /api/v1/roles/{id}
func (*RBACHandler) GetRoleHierarchy ¶
func (h *RBACHandler) GetRoleHierarchy(w http.ResponseWriter, r *http.Request)
GetRoleHierarchy handles GET /api/v1/roles/{id}/hierarchy
func (*RBACHandler) GetRolePermissions ¶
func (h *RBACHandler) GetRolePermissions(w http.ResponseWriter, r *http.Request)
GetRolePermissions handles GET /api/v1/roles/{id}/permissions
func (*RBACHandler) GetUserPermissions ¶
func (h *RBACHandler) GetUserPermissions(w http.ResponseWriter, r *http.Request)
GetUserPermissions handles GET /api/v1/users/{userId}/permissions
func (*RBACHandler) GetUserPermissionsInternal ¶
func (h *RBACHandler) GetUserPermissionsInternal(w http.ResponseWriter, r *http.Request)
GetUserPermissionsInternal handles GET /internal/v1/users/{userId}/permissions This is an internal endpoint for service-to-service communication (no authentication required).
func (*RBACHandler) GetUserRoles ¶
func (h *RBACHandler) GetUserRoles(w http.ResponseWriter, r *http.Request)
GetUserRoles handles GET /api/v1/users/{userId}/roles
func (*RBACHandler) ListPermissions ¶
func (h *RBACHandler) ListPermissions(w http.ResponseWriter, r *http.Request)
ListPermissions handles GET /api/v1/permissions
func (*RBACHandler) ListRoles ¶
func (h *RBACHandler) ListRoles(w http.ResponseWriter, r *http.Request)
ListRoles handles GET /api/v1/roles
func (*RBACHandler) RemovePermissionFromRole ¶
func (h *RBACHandler) RemovePermissionFromRole(w http.ResponseWriter, r *http.Request)
RemovePermissionFromRole handles DELETE /api/v1/roles/{roleId}/permissions/{permissionId}
func (*RBACHandler) RemoveRoleFromUser ¶
func (h *RBACHandler) RemoveRoleFromUser(w http.ResponseWriter, r *http.Request)
RemoveRoleFromUser handles DELETE /api/v1/users/{userId}/roles/{roleId}
func (*RBACHandler) UpdateRole ¶
func (h *RBACHandler) UpdateRole(w http.ResponseWriter, r *http.Request)
UpdateRole handles PUT /api/v1/roles/{id}