de30497f59
- 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.
29 lines
517 B
Go
29 lines
517 B
Go
package middleware
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
const RequestIDHeader = "X-Request-ID"
|
|
const requestIDKey = "request_id"
|
|
|
|
func RequestID() gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
rid := c.GetHeader(RequestIDHeader)
|
|
if rid == "" {
|
|
rid = uuid.New().String()
|
|
}
|
|
c.Set(requestIDKey, rid)
|
|
c.Header(RequestIDHeader, rid)
|
|
c.Next()
|
|
}
|
|
}
|
|
|
|
func RequestIDFromGin(c *gin.Context) string {
|
|
if rid, ok := c.Get(requestIDKey); ok {
|
|
return rid.(string)
|
|
}
|
|
return ""
|
|
}
|