mirror of
https://github.com/1f349/lavender.git
synced 2025-04-16 07:47:55 +01:00
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package authContext
|
|
|
|
import (
|
|
"github.com/1f349/lavender/auth/process"
|
|
"github.com/1f349/lavender/database"
|
|
"net/http"
|
|
)
|
|
|
|
func NewFormContext(req *http.Request, user *database.User, rw http.ResponseWriter) *BaseFormContext {
|
|
return &BaseFormContext{
|
|
BaseTemplateContext: BaseTemplateContext{
|
|
req: req,
|
|
user: user,
|
|
},
|
|
rw: rw,
|
|
}
|
|
}
|
|
|
|
type FormContext interface {
|
|
TemplateContext
|
|
SetUser(user *database.User)
|
|
UpdateSession(data process.LoginProcessData)
|
|
GetLoginProcessData() process.LoginProcessData
|
|
ResponseWriter() http.ResponseWriter
|
|
__formContext()
|
|
Hijack()
|
|
}
|
|
|
|
var _ FormContext = &BaseFormContext{}
|
|
|
|
type BaseFormContext struct {
|
|
BaseTemplateContext
|
|
loginProcessData process.LoginProcessData
|
|
rw http.ResponseWriter
|
|
hijack bool
|
|
}
|
|
|
|
func (b *BaseFormContext) GetLoginProcessData() process.LoginProcessData { return b.loginProcessData }
|
|
|
|
func (b *BaseFormContext) SetUser(user *database.User) { b.BaseTemplateContext.user = user }
|
|
|
|
func (b *BaseFormContext) UpdateSession(data process.LoginProcessData) { b.loginProcessData = data }
|
|
|
|
func (b *BaseFormContext) ResponseWriter() http.ResponseWriter { return b.rw }
|
|
|
|
func (b *BaseFormContext) __formContext() {}
|
|
|
|
func (b *BaseFormContext) Hijack() { b.hijack = true }
|
|
|
|
func (b *BaseFormContext) HijackCalled() bool { return b.hijack }
|