mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-20 00:46:46 +00:00
67 lines
2.1 KiB
Go
67 lines
2.1 KiB
Go
|
|
package role
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"net/http"
|
||
|
|
|
||
|
|
"github.com/SigNoz/signoz/pkg/types/authtypes"
|
||
|
|
"github.com/SigNoz/signoz/pkg/types/roletypes"
|
||
|
|
"github.com/SigNoz/signoz/pkg/valuer"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Module interface {
|
||
|
|
// Creates the role metadata
|
||
|
|
Create(context.Context, valuer.UUID, string, string) (*roletypes.Role, error)
|
||
|
|
|
||
|
|
// Gets the role metadata
|
||
|
|
Get(context.Context, valuer.UUID, valuer.UUID) (*roletypes.Role, error)
|
||
|
|
|
||
|
|
// Gets the objects associated with the given role and relation
|
||
|
|
GetObjects(context.Context, valuer.UUID, valuer.UUID, authtypes.Relation) ([]*authtypes.Object, error)
|
||
|
|
|
||
|
|
// Lists all the roles metadata for the organization
|
||
|
|
List(context.Context, valuer.UUID) ([]*roletypes.Role, error)
|
||
|
|
|
||
|
|
// Gets all the typeable resources registered from role registry
|
||
|
|
GetResources(context.Context) []*authtypes.Resource
|
||
|
|
|
||
|
|
// Patches the roles metadata
|
||
|
|
Patch(context.Context, valuer.UUID, valuer.UUID, *string, *string) error
|
||
|
|
|
||
|
|
// Patches the objects in authorization server associated with the given role and relation
|
||
|
|
PatchObjects(context.Context, valuer.UUID, valuer.UUID, authtypes.Relation, []*authtypes.Object, []*authtypes.Object) error
|
||
|
|
|
||
|
|
// Deletes the role metadata and tuples in authorization server
|
||
|
|
Delete(context.Context, valuer.UUID, valuer.UUID) error
|
||
|
|
}
|
||
|
|
|
||
|
|
type RegisterTypeable interface {
|
||
|
|
MustGetTypeables() []authtypes.Typeable
|
||
|
|
}
|
||
|
|
|
||
|
|
type Handler interface {
|
||
|
|
// Creates the role metadata and tuples in authorization server
|
||
|
|
Create(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Gets the role metadata
|
||
|
|
Get(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Gets the objects for the given relation and role
|
||
|
|
GetObjects(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Gets all the resources and the relations
|
||
|
|
GetResources(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Lists all the roles metadata for the organization
|
||
|
|
List(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Patches the role metdata
|
||
|
|
Patch(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Patches the objects for the given relation and role
|
||
|
|
PatchObjects(http.ResponseWriter, *http.Request)
|
||
|
|
|
||
|
|
// Deletes the role metadata and tuples in authorization server
|
||
|
|
Delete(http.ResponseWriter, *http.Request)
|
||
|
|
}
|