1
0
mirror of https://github.com/astaxie/beego.git synced 2025-06-12 07:30:40 +00:00

beego: fix dependency of cache / session sub package

This commit is contained in:
slene
2014-04-04 08:31:22 +08:00
parent acbdeb62e8
commit f4d62d3193
8 changed files with 53 additions and 39 deletions

View File

@ -34,6 +34,9 @@ import (
"net/http"
"sync"
"time"
"github.com/astaxie/beego/session"
_ "github.com/lib/pq"
)
@ -93,7 +96,7 @@ func (st *PostgresqlSessionStore) SessionID() string {
// must call this method to save values to database.
func (st *PostgresqlSessionStore) SessionRelease(w http.ResponseWriter) {
defer st.c.Close()
b, err := encodeGob(st.values)
b, err := session.EncodeGob(st.values)
if err != nil {
return
}
@ -126,7 +129,7 @@ func (mp *PostgresqlProvider) SessionInit(maxlifetime int64, savePath string) er
}
// get postgresql session by sid
func (mp *PostgresqlProvider) SessionRead(sid string) (SessionStore, error) {
func (mp *PostgresqlProvider) SessionRead(sid string) (session.SessionStore, error) {
c := mp.connectInit()
row := c.QueryRow("select session_data from session where session_key=$1", sid)
var sessiondata []byte
@ -138,7 +141,7 @@ func (mp *PostgresqlProvider) SessionRead(sid string) (SessionStore, error) {
if err != nil {
return nil, err
}
} else if err != nil {
} else if err != nil {
return nil, err
}
@ -146,7 +149,7 @@ func (mp *PostgresqlProvider) SessionRead(sid string) (SessionStore, error) {
if len(sessiondata) == 0 {
kv = make(map[interface{}]interface{})
} else {
kv, err = decodeGob(sessiondata)
kv, err = session.DecodeGob(sessiondata)
if err != nil {
return nil, err
}
@ -162,7 +165,7 @@ func (mp *PostgresqlProvider) SessionExist(sid string) bool {
row := c.QueryRow("select session_data from session where session_key=$1", sid)
var sessiondata []byte
err := row.Scan(&sessiondata)
if err == sql.ErrNoRows {
return false
} else {
@ -171,21 +174,21 @@ func (mp *PostgresqlProvider) SessionExist(sid string) bool {
}
// generate new sid for postgresql session
func (mp *PostgresqlProvider) SessionRegenerate(oldsid, sid string) (SessionStore, error) {
func (mp *PostgresqlProvider) SessionRegenerate(oldsid, sid string) (session.SessionStore, error) {
c := mp.connectInit()
row := c.QueryRow("select session_data from session where session_key=$1", oldsid)
var sessiondata []byte
err := row.Scan(&sessiondata)
if err == sql.ErrNoRows {
c.Exec("insert into session(session_key,session_data,session_expiry) values($1,$2,$3)",
oldsid, "", time.Now().Format(time.RFC3339))
oldsid, "", time.Now().Format(time.RFC3339))
}
c.Exec("update session set session_key=$1 where session_key=$2", sid, oldsid)
var kv map[interface{}]interface{}
if len(sessiondata) == 0 {
kv = make(map[interface{}]interface{})
} else {
kv, err = decodeGob(sessiondata)
kv, err = session.DecodeGob(sessiondata)
if err != nil {
return nil, err
}
@ -223,5 +226,5 @@ func (mp *PostgresqlProvider) SessionAll() int {
}
func init() {
Register("postgresql", postgresqlpder)
session.Register("postgresql", postgresqlpder)
}