Documentation
¶
Overview ¶
Package shared provides shared types and utilities across packages.
Index ¶
- Constants
- func EnsurePendingTime(untilTime int) int
- func GetEffectivePendingTime(untilTime int) time.Time
- func GetEffectivePendingTimeUnix(untilTime int) int64
- func GetJWTManager() *auth.JWTManager
- func GetSessionService() *service.SessionService
- func GetSystemSessionIdleTime() int
- func GetSystemSessionMaxTime() int
- func GetUserID(c *gin.Context) int
- func GetUserIDFromCtx(c *gin.Context, fallback int) int
- func GetUserIDFromCtxUint(c *gin.Context, fallback uint) uint
- func GetUserMapForTemplate(c *gin.Context) map[string]interface{}
- func IsAdmin(c *gin.Context) bool
- func IsAuthenticated(c *gin.Context) bool
- func IsPendingStateType(typeID int) bool
- func LoadTicketStatesForForm(db *sql.DB) ([]gin.H, map[string]gin.H, error)
- func ResolveSessionTimeout(userPref int) int
- func SendToastResponse(c *gin.Context, success bool, message, redirectPath string)
- func SessionServiceAvailable() bool
- func SetGlobalRenderer(renderer *TemplateRenderer)
- func ToInt(v interface{}, fallback int) int
- func ToString(v interface{}, fallback string) string
- func ToUint(v interface{}, fallback uint) uint
- type TemplateRenderer
- type UserContext
Constants ¶
const ( PendingReminderStateTypeID = 4 PendingAutoStateTypeID = 5 )
Pending state type IDs
const DefaultPendingDuration = 24 * time.Hour
DefaultPendingDuration is the default duration to use when a pending ticket has no explicit pending_until time set. This provides a fallback for legacy/migrated data that may be missing the date.
Variables ¶
This section is empty.
Functions ¶
func EnsurePendingTime ¶ added in v0.6.2
EnsurePendingTime returns the provided untilTime if valid, or a default time (now + DefaultPendingDuration) as a unix timestamp. This is useful when setting the pending time on state changes.
func GetEffectivePendingTime ¶ added in v0.6.2
GetEffectivePendingTime returns the effective pending time for a ticket. If untilTime is set (> 0), it returns that time. If untilTime is not set (0 or negative), it returns now + DefaultPendingDuration. This ensures pending tickets always have a usable deadline.
func GetEffectivePendingTimeUnix ¶ added in v0.6.2
GetEffectivePendingTimeUnix returns the effective pending time as a unix timestamp. This is useful for SQL queries and comparisons.
func GetJWTManager ¶
func GetJWTManager() *auth.JWTManager
This ensures auth service and middleware use the same JWT configuration.
func GetSessionService ¶ added in v0.6.0
func GetSessionService() *service.SessionService
GetSessionService returns the global session service singleton. Returns nil if database is not available.
func GetSystemSessionIdleTime ¶ added in v0.5.0
func GetSystemSessionIdleTime() int
GetSystemSessionIdleTime returns the configured idle timeout in seconds.
func GetSystemSessionMaxTime ¶ added in v0.5.0
func GetSystemSessionMaxTime() int
GetSystemSessionMaxTime returns the configured session lifetime in seconds.
func GetUserIDFromCtx ¶ added in v0.6.2
GetUserIDFromCtx extracts the authenticated user's ID from gin context. Handles multiple types since different auth middleware may set different types. Returns the fallback value if user_id is not found or cannot be converted.
func GetUserIDFromCtxUint ¶ added in v0.6.2
GetUserIDFromCtxUint is like GetUserIDFromCtx but returns uint.
func GetUserMapForTemplate ¶ added in v0.5.0
GetUserMapForTemplate builds a user context map for template rendering.
func IsAuthenticated ¶ added in v0.5.0
IsAuthenticated checks if user is authenticated.
func IsPendingStateType ¶ added in v0.6.2
IsPendingStateType returns true if the state type is a pending state (either pending reminder or pending auto-close).
func LoadTicketStatesForForm ¶ added in v0.5.0
LoadTicketStatesForForm fetches valid ticket states and builds alias lookup data for forms.
func ResolveSessionTimeout ¶ added in v0.5.0
ResolveSessionTimeout picks the effective timeout based on user preference.
func SendToastResponse ¶ added in v0.5.0
sendToastResponse sends either an HTMX toast notification or redirects with success message.
func SessionServiceAvailable ¶ added in v0.6.0
func SessionServiceAvailable() bool
SessionServiceAvailable returns true if the session service is available.
func SetGlobalRenderer ¶ added in v0.5.0
func SetGlobalRenderer(renderer *TemplateRenderer)
SetGlobalRenderer sets the global template renderer instance.
Types ¶
type TemplateRenderer ¶ added in v0.5.0
type TemplateRenderer struct {
// contains filtered or unexported fields
}
TemplateRenderer handles template rendering with pongo2.
func GetGlobalRenderer ¶ added in v0.5.0
func GetGlobalRenderer() *TemplateRenderer
GetGlobalRenderer returns the global template renderer instance.
func NewTemplateRenderer ¶ added in v0.5.0
func NewTemplateRenderer(templateDir string) (*TemplateRenderer, error)
NewTemplateRenderer creates a new template renderer.
func (*TemplateRenderer) HTML ¶ added in v0.5.0
func (r *TemplateRenderer) HTML(c *gin.Context, code int, name string, data interface{})
HTML renders a template.
func (*TemplateRenderer) TemplateSet ¶ added in v0.5.0
func (r *TemplateRenderer) TemplateSet() *pongo2.TemplateSet
TemplateSet returns the underlying pongo2 template set for modules that need direct access.
type UserContext ¶ added in v0.5.0
type UserContext struct {
ID int `json:"id"`
Login string `json:"login"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Email string `json:"email"`
IsInAdminGroup bool `json:"is_in_admin_group"`
GroupIDs []int `json:"group_ids"`
RoleIDs []int `json:"role_ids"`
CustomerCompany string `json:"customer_company"`
}
UserContext represents user information for templates.