feat: add tenant and user management with migrations, handlers, and tests
- Implemented tenant and user management features including: - Tenant creation and management with associated migrations. - User creation and management with associated migrations. - Tenant membership management with associated migrations. - Platform user roles management with associated migrations. - Quota management with associated migrations. - Article and template management with associated migrations. - Added HTTP handlers for templates and workspaces. - Created tests for protected and public routes. - Introduced a script to check tenant scope in SQL queries. - Documented task plan for backend completion and frontend foundation.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package auth
|
||||
|
||||
import "context"
|
||||
|
||||
type Actor struct {
|
||||
UserID int64
|
||||
TenantID int64
|
||||
Role string
|
||||
}
|
||||
|
||||
type actorKey struct{}
|
||||
|
||||
func WithActor(ctx context.Context, actor Actor) context.Context {
|
||||
return context.WithValue(ctx, actorKey{}, actor)
|
||||
}
|
||||
|
||||
func ActorFromCtx(ctx context.Context) (Actor, bool) {
|
||||
actor, ok := ctx.Value(actorKey{}).(Actor)
|
||||
return actor, ok
|
||||
}
|
||||
|
||||
func MustActor(ctx context.Context) Actor {
|
||||
actor, ok := ActorFromCtx(ctx)
|
||||
if !ok {
|
||||
panic("auth: actor not in context")
|
||||
}
|
||||
return actor
|
||||
}
|
||||
Reference in New Issue
Block a user