Files
sendico/api/pkg/auth/management/role.go
2026-01-31 00:26:42 +01:00

42 lines
924 B
Go

package management
import (
"context"
"github.com/tech/sendico/pkg/model"
"go.mongodb.org/mongo-driver/v2/bson"
)
type Role interface {
// Create a new role in an organization (returns the created Role with its ID).
Create(
ctx context.Context,
orgRef bson.ObjectID,
description *model.Describable,
) (*model.RoleDescription, error)
// Delete a role entirely. This will cascade and remove all associated
Delete(
ctx context.Context,
roleRef bson.ObjectID,
) error
// Assign a role to a user in a specific organization.
Assign(
ctx context.Context,
role *model.Role,
) error
// Revoke a role from a user in a specific organization.
Revoke(
ctx context.Context,
roleRef, accountRef, orgRef bson.ObjectID,
) error
// List all roles in an organization or globally if orgRef is bson.NilObjectID.
List(
ctx context.Context,
orgRef bson.ObjectID,
) ([]model.RoleDescription, error)
}