305e7bac68
Signed-off-by: Michael Mayer <michael@photoprism.app>
232 lines
8.2 KiB
Go
232 lines
8.2 KiB
Go
package entity
|
|
|
|
import (
|
|
"github.com/photoprism/photoprism/pkg/authn"
|
|
"github.com/photoprism/photoprism/pkg/clean"
|
|
"github.com/photoprism/photoprism/pkg/rnd"
|
|
"github.com/photoprism/photoprism/pkg/unix"
|
|
)
|
|
|
|
type SessionMap map[string]Session
|
|
|
|
func (m SessionMap) Get(name string) Session {
|
|
if result, ok := m[name]; ok {
|
|
return result
|
|
}
|
|
|
|
return Session{}
|
|
}
|
|
|
|
func (m SessionMap) Pointer(name string) *Session {
|
|
if result, ok := m[name]; ok {
|
|
return &result
|
|
}
|
|
|
|
return &Session{}
|
|
}
|
|
|
|
var SessionFixtures = SessionMap{
|
|
"alice": {
|
|
authToken: "69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac0",
|
|
ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac0"),
|
|
RefID: "sessxkkcabcd",
|
|
SessTimeout: unix.Day * 3,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
user: UserFixtures.Pointer("alice"),
|
|
UserUID: UserFixtures.Pointer("alice").UserUID,
|
|
UserName: UserFixtures.Pointer("alice").UserName,
|
|
},
|
|
"alice_token": {
|
|
authToken: "bb8658e779403ae524a188712470060f050054324a8b104e",
|
|
ID: rnd.SessionID("bb8658e779403ae524a188712470060f050054324a8b104e"),
|
|
RefID: "sess34q3hael",
|
|
SessTimeout: -1,
|
|
SessExpires: unix.Time() + unix.Day,
|
|
AuthScope: clean.Scope("*"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodDefault.String(),
|
|
ClientName: "alice_token",
|
|
LastActive: -1,
|
|
user: UserFixtures.Pointer("alice"),
|
|
UserUID: UserFixtures.Pointer("alice").UserUID,
|
|
UserName: UserFixtures.Pointer("alice").UserName,
|
|
},
|
|
"alice_token_personal": {
|
|
authToken: "DIbS8T-uyGMe1-R3fmTv-vVaR35",
|
|
ID: rnd.SessionID("DIbS8T-uyGMe1-R3fmTv-vVaR35"),
|
|
RefID: "sess6ey1ykya",
|
|
SessTimeout: -1,
|
|
SessExpires: unix.Time() + unix.Day,
|
|
AuthScope: clean.Scope("*"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodPersonal.String(),
|
|
ClientName: "alice_token_personal",
|
|
LastActive: -1,
|
|
user: UserFixtures.Pointer("alice"),
|
|
UserUID: UserFixtures.Pointer("alice").UserUID,
|
|
UserName: UserFixtures.Pointer("alice").UserName,
|
|
},
|
|
"alice_token_webdav": {
|
|
authToken: "5d0rGx-EvsDnV-DcKtYY-HT1aWL",
|
|
ID: rnd.SessionID("5d0rGx-EvsDnV-DcKtYY-HT1aWL"),
|
|
RefID: "sesshjtgx8qt",
|
|
SessTimeout: -1,
|
|
SessExpires: unix.Time() + unix.Day,
|
|
AuthScope: clean.Scope("webdav"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodPersonal.String(),
|
|
ClientName: "alice_token_webdav",
|
|
LastActive: -1,
|
|
user: UserFixtures.Pointer("alice"),
|
|
UserUID: UserFixtures.Pointer("alice").UserUID,
|
|
UserName: UserFixtures.Pointer("alice").UserName,
|
|
},
|
|
"alice_token_scope": {
|
|
authToken: "778f0f7d80579a072836c65b786145d6e0127505194cc51e",
|
|
ID: rnd.SessionID("778f0f7d80579a072836c65b786145d6e0127505194cc51e"),
|
|
RefID: "sessjr0ge18d",
|
|
SessTimeout: 0,
|
|
SessExpires: unix.Time() + unix.Day,
|
|
AuthScope: clean.Scope("metrics photos albums videos"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodDefault.String(),
|
|
ClientName: "alice_token_scope",
|
|
user: UserFixtures.Pointer("alice"),
|
|
UserUID: UserFixtures.Pointer("alice").UserUID,
|
|
UserName: UserFixtures.Pointer("alice").UserName,
|
|
PreviewToken: "cdd3r0lr",
|
|
DownloadToken: "64ydcbom",
|
|
},
|
|
"bob": {
|
|
authToken: "69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac1",
|
|
ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac1"),
|
|
RefID: "sessxkkcabce",
|
|
SessTimeout: unix.Day * 3,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
user: UserFixtures.Pointer("bob"),
|
|
UserUID: UserFixtures.Pointer("bob").UserUID,
|
|
UserName: UserFixtures.Pointer("bob").UserName,
|
|
},
|
|
"unauthorized": {
|
|
authToken: "69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac2",
|
|
ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac2"),
|
|
RefID: "sessxkkcabcf",
|
|
SessTimeout: unix.Day * 3,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
user: UserFixtures.Pointer("unauthorized"),
|
|
UserUID: UserFixtures.Pointer("unauthorized").UserUID,
|
|
UserName: UserFixtures.Pointer("unauthorized").UserName,
|
|
},
|
|
"visitor": {
|
|
authToken: "69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac3",
|
|
ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac3"),
|
|
RefID: "sessxkkcabcg",
|
|
SessTimeout: unix.Day * 3,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
user: &Visitor,
|
|
UserUID: Visitor.UserUID,
|
|
UserName: Visitor.UserName,
|
|
DataJSON: []byte(`{"tokens":["1jxf3jfn2k"],"shares":["as6sg6bxpogaaba8"]}`),
|
|
data: &SessionData{
|
|
Tokens: []string{"1jxf3jfn2k"},
|
|
Shares: UIDs{"as6sg6bxpogaaba8"},
|
|
},
|
|
},
|
|
"visitor_token_metrics": {
|
|
authToken: "4ebe1048a7384e1e6af2930b5b6f29795ffab691df47a488",
|
|
ID: rnd.SessionID("4ebe1048a7384e1e6af2930b5b6f29795ffab691df47a488"),
|
|
RefID: "sessaae5cxun",
|
|
SessTimeout: 0,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
AuthScope: clean.Scope("metrics"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodDefault.String(),
|
|
ClientName: "visitor_token_metrics",
|
|
user: &Visitor,
|
|
UserUID: Visitor.UserUID,
|
|
UserName: Visitor.UserName,
|
|
},
|
|
"friend": {
|
|
authToken: "69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac4",
|
|
ID: rnd.SessionID("69be27ac5ca305b394046a83f6fda18167ca3d3f2dbe7ac4"),
|
|
RefID: "sessxkkcabch",
|
|
SessTimeout: unix.Day * 3,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
user: UserFixtures.Pointer("friend"),
|
|
UserUID: UserFixtures.Pointer("friend").UserUID,
|
|
UserName: UserFixtures.Pointer("friend").UserName,
|
|
},
|
|
"client_metrics": {
|
|
authToken: "9d8b8801ffa23eb52e08ca7766283799ddfd8dd368212345",
|
|
ID: rnd.SessionID("9d8b8801ffa23eb52e08ca7766283799ddfd8dd368212345"),
|
|
RefID: "sessgh612345",
|
|
SessTimeout: 0,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
AuthScope: clean.Scope("metrics"),
|
|
AuthProvider: authn.ProviderClientCredentials.String(),
|
|
AuthMethod: authn.MethodOAuth2.String(),
|
|
ClientUID: ClientFixtures.Get("metrics").ClientUID,
|
|
ClientName: ClientFixtures.Get("metrics").ClientName,
|
|
user: nil,
|
|
UserUID: "",
|
|
UserName: "",
|
|
PreviewToken: "py212345",
|
|
DownloadToken: "vgl12345",
|
|
},
|
|
"token_metrics": {
|
|
authToken: "9d8b8801ffa23eb52e08ca7766283799ddfd8dd368208a9b",
|
|
ID: rnd.SessionID("9d8b8801ffa23eb52e08ca7766283799ddfd8dd368208a9b"),
|
|
RefID: "sessgh6gjuo1",
|
|
SessTimeout: 0,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
AuthScope: clean.Scope("metrics"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodDefault.String(),
|
|
ClientName: "token_metrics",
|
|
user: nil,
|
|
UserUID: "",
|
|
UserName: "",
|
|
PreviewToken: "py2xrgr3",
|
|
DownloadToken: "vgln2ffb",
|
|
},
|
|
"token_settings": {
|
|
authToken: "3f9684f7d3dd3d5b84edd43289c7fb5ca32ee73bd0233237",
|
|
ID: rnd.SessionID("3f9684f7d3dd3d5b84edd43289c7fb5ca32ee73bd0233237"),
|
|
RefID: "sessyugn54so",
|
|
SessTimeout: 0,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
AuthScope: clean.Scope("settings"),
|
|
AuthProvider: authn.ProviderAccessToken.String(),
|
|
AuthMethod: authn.MethodDefault.String(),
|
|
ClientName: "token_settings",
|
|
user: nil,
|
|
UserUID: "",
|
|
UserName: "",
|
|
PreviewToken: "py2xrgr3",
|
|
DownloadToken: "vgln2ffb",
|
|
},
|
|
"client_analytics": {
|
|
authToken: "9d8b8801ffa23eb52e08ca7766283799ddfd8dd368212123",
|
|
ID: rnd.SessionID("9d8b8801ffa23eb52e08ca7766283799ddfd8dd368212123"),
|
|
RefID: "sessgh6123yt",
|
|
SessTimeout: 0,
|
|
SessExpires: unix.Time() + unix.Week,
|
|
AuthScope: clean.Scope("statistics"),
|
|
AuthProvider: authn.ProviderClientCredentials.String(),
|
|
AuthMethod: authn.MethodOAuth2.String(),
|
|
ClientUID: ClientFixtures.Get("analytics").ClientUID,
|
|
ClientName: ClientFixtures.Get("analytics").ClientName,
|
|
user: nil,
|
|
UserUID: "",
|
|
UserName: "",
|
|
PreviewToken: "py2123yt",
|
|
DownloadToken: "vgl123yt",
|
|
},
|
|
}
|
|
|
|
// CreateSessionFixtures inserts known entities into the database for testing.
|
|
func CreateSessionFixtures() {
|
|
for _, entity := range SessionFixtures {
|
|
Db().Create(&entity)
|
|
}
|
|
}
|