Documentation
¶
Index ¶
- Variables
- func GetAPIKey(c *fiber.Ctx) (*models.APIKey, bool)
- func GetAuthType(c *fiber.Ctx) string
- func GetClerkClaims(c *fiber.Ctx) (*clerk.SessionClaims, bool)
- func GetOrganizationID(c *fiber.Ctx) (string, bool)
- func GetProjectID(c *fiber.Ctx) (uint, bool)
- func GetUserID(c *fiber.Ctx) (string, bool)
- func IsAPIKeyAuth(c *fiber.Ctx) bool
- func IsClerkAuth(c *fiber.Ctx) bool
- func RequireAPIKeyAuth(c *fiber.Ctx) error
- func RequireClerkAuth(c *fiber.Ctx) error
- type APIKeyAuthContext
- type AuthContext
- type AuthProvider
- type AuthType
- type ClerkAuthContext
- type ClerkAuthProvider
- func (p *ClerkAuthProvider) GetOrganizationRole(ctx context.Context, userID, organizationID string) (string, error)
- func (p *ClerkAuthProvider) GetUserOrganizations(ctx context.Context, userID string) ([]string, error)
- func (p *ClerkAuthProvider) ValidateOrganizationAccess(ctx context.Context, userID, organizationID string) (bool, error)
- func (p *ClerkAuthProvider) ValidateProjectAccess(ctx context.Context, userID string, projectID uint, requiredRole Role) (bool, error)
- func (p *ClerkAuthProvider) ValidateToken(ctx context.Context, token string) (*clerk.SessionClaims, error)
- type DatabaseAuthProvider
- func (p *DatabaseAuthProvider) GetOrganizationRole(ctx context.Context, userID, organizationID string) (string, error)
- func (p *DatabaseAuthProvider) GetUserOrganizations(ctx context.Context, userID string) ([]string, error)
- func (p *DatabaseAuthProvider) ValidateOrganizationAccess(ctx context.Context, userID, organizationID string) (bool, error)
- func (p *DatabaseAuthProvider) ValidateProjectAccess(ctx context.Context, userID string, projectID uint, requiredRole Role) (bool, error)
- type Member
- type Organization
- type Role
Constants ¶
This section is empty.
Variables ¶
View Source
var RoleHierarchy = map[Role]int{ RoleOwner: 3, RoleAdmin: 2, RoleMember: 1, }
Functions ¶
func GetAuthType ¶
func GetClerkClaims ¶
func GetClerkClaims(c *fiber.Ctx) (*clerk.SessionClaims, bool)
func IsAPIKeyAuth ¶
func IsClerkAuth ¶
func RequireAPIKeyAuth ¶
func RequireClerkAuth ¶
Types ¶
type APIKeyAuthContext ¶
type AuthContext ¶
type AuthContext struct {
Type AuthType
Clerk *ClerkAuthContext
APIKey *APIKeyAuthContext
}
func GetAuthContext ¶
func GetAuthContext(c *fiber.Ctx) *AuthContext
func (*AuthContext) GetOrganizationID ¶
func (a *AuthContext) GetOrganizationID() (string, bool)
func (*AuthContext) GetProjectID ¶
func (a *AuthContext) GetProjectID() (uint, bool)
func (*AuthContext) GetUserID ¶
func (a *AuthContext) GetUserID() (string, bool)
func (*AuthContext) IsAPIKey ¶
func (a *AuthContext) IsAPIKey() bool
func (*AuthContext) IsClerk ¶
func (a *AuthContext) IsClerk() bool
type AuthProvider ¶
type AuthProvider interface {
ValidateOrganizationAccess(ctx context.Context, userID, organizationID string) (bool, error)
ValidateProjectAccess(ctx context.Context, userID string, projectID uint, requiredRole Role) (bool, error)
GetUserOrganizations(ctx context.Context, userID string) ([]string, error)
GetOrganizationRole(ctx context.Context, userID, organizationID string) (string, error)
}
type ClerkAuthContext ¶
type ClerkAuthContext struct {
UserID string
Claims *clerk.SessionClaims
}
type ClerkAuthProvider ¶
type ClerkAuthProvider struct {
// contains filtered or unexported fields
}
func NewClerkAuthProvider ¶
func NewClerkAuthProvider(secretKey string, db *gorm.DB) *ClerkAuthProvider
func (*ClerkAuthProvider) GetOrganizationRole ¶
func (*ClerkAuthProvider) GetUserOrganizations ¶
func (*ClerkAuthProvider) ValidateOrganizationAccess ¶
func (*ClerkAuthProvider) ValidateProjectAccess ¶
func (*ClerkAuthProvider) ValidateToken ¶
func (p *ClerkAuthProvider) ValidateToken(ctx context.Context, token string) (*clerk.SessionClaims, error)
type DatabaseAuthProvider ¶
type DatabaseAuthProvider struct {
// contains filtered or unexported fields
}
func NewDatabaseAuthProvider ¶
func NewDatabaseAuthProvider(db *gorm.DB) *DatabaseAuthProvider
func (*DatabaseAuthProvider) GetOrganizationRole ¶
func (*DatabaseAuthProvider) GetUserOrganizations ¶
func (*DatabaseAuthProvider) ValidateOrganizationAccess ¶
func (*DatabaseAuthProvider) ValidateProjectAccess ¶
type Organization ¶
Click to show internal directories.
Click to hide internal directories.