Add a trivial sessions example of SetImmutable.

https://github.com/iris-contrib/community-board/issues/5#issuecomment-307030072

Former-commit-id: 2d6267465cceeba31c96feba19f4851d4db7f7aa
This commit is contained in:
kataras 2017-06-08 14:39:55 +03:00
parent acd3389dd7
commit 8b66c2de3b

View File

@ -8,8 +8,8 @@ import (
"github.com/kataras/iris/sessions" "github.com/kataras/iris/sessions"
) )
type myobject struct { type businessModel struct {
name string Name string
} }
func main() { func main() {
@ -84,5 +84,20 @@ func main() {
// mySessions.DestroyByID // mySessions.DestroyByID
// mySessions.DestroyAll // mySessions.DestroyAll
app.Get("/immutable", func(ctx context.Context) {
business := []businessModel{{Name: "Edward"}, {Name: "value 2"}}
ctx.Session().SetImmutable("businessEdit", business)
businessGet := ctx.Session().Get("businessEdit").([]businessModel)
// businessGet[0].Name is equal to Edward initially
businessGet[0].Name = "Gabriel"
})
app.Get("/immutable_get", func(ctx context.Context) {
if ctx.Session().Get("businessEdit").([]businessModel)[0].Name == "Gabriel" {
panic("Report this as a bug, immutable data cannot be changed from the caller without re-SetImmutable")
}
// the name should remains "Edward"
})
app.Run(iris.Addr(":8080")) app.Run(iris.Addr(":8080"))
} }