mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 17:25:32 +00:00
acces token table
This commit is contained in:
70
dbmodels/access_tokens.go
Normal file
70
dbmodels/access_tokens.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package dbmodels
|
||||
|
||||
import (
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
"github.com/pocketbase/pocketbase/tools/types"
|
||||
)
|
||||
|
||||
var _ core.RecordProxy = (*AccessToken)(nil)
|
||||
|
||||
type AccessToken struct {
|
||||
core.BaseRecordProxy
|
||||
}
|
||||
|
||||
func NewAccessToken(record *core.Record) *AccessToken {
|
||||
i := &AccessToken{}
|
||||
i.SetProxyRecord(record)
|
||||
return i
|
||||
}
|
||||
|
||||
func (u *AccessToken) TableName() string {
|
||||
return ACCESS_TOKENS_TABLE
|
||||
}
|
||||
|
||||
func (u *AccessToken) Token() string {
|
||||
return u.GetString(ACCESS_TOKENS_TOKEN_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) SetToken(token string) {
|
||||
u.Set(ACCESS_TOKENS_TOKEN_FIELD, token)
|
||||
}
|
||||
|
||||
func (u *AccessToken) User() string {
|
||||
return u.GetString(ACCESS_TOKENS_USER_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) SetUser(userId string) {
|
||||
u.Set(ACCESS_TOKENS_USER_FIELD, userId)
|
||||
}
|
||||
|
||||
func (u *AccessToken) Created() string {
|
||||
return u.GetString(CREATED_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) Updated() string {
|
||||
return u.GetString(UPDATED_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) Expires() types.DateTime {
|
||||
return u.GetDateTime(ACCESS_TOKENS_EXPIRES_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) SetExpires(expires types.DateTime) {
|
||||
u.Set(ACCESS_TOKENS_EXPIRES_FIELD, expires)
|
||||
}
|
||||
|
||||
func (u *AccessToken) URL() string {
|
||||
return u.GetString(ACCESS_TOKENS_URL_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) SetURL(url string) {
|
||||
u.Set(ACCESS_TOKENS_URL_FIELD, url)
|
||||
}
|
||||
|
||||
func (u *AccessToken) Status() string {
|
||||
return u.GetString(ACCESS_TOKENS_STATUS_FIELD)
|
||||
}
|
||||
|
||||
func (u *AccessToken) SetStatus(status string) {
|
||||
u.Set(ACCESS_TOKENS_STATUS_FIELD, status)
|
||||
}
|
||||
@@ -4,6 +4,13 @@ import "github.com/pocketbase/pocketbase/tools/types"
|
||||
|
||||
var EDITORSTATE_VALUES = []string{"Unknown", "ToDo", "Seen", "Partially Edited", "Waiting", "Review", "Edited"}
|
||||
|
||||
var TOKEN_STATUS_VALUES = []string{
|
||||
"active",
|
||||
"expired",
|
||||
"invalid",
|
||||
"revoked",
|
||||
}
|
||||
|
||||
var ITEM_TYPE_VALUES = []string{
|
||||
"Original",
|
||||
"Reproduktion",
|
||||
@@ -425,13 +432,14 @@ var PUBLIC_LIST_RULE = types.Pointer("")
|
||||
const (
|
||||
FTS_LIMIT = 100000
|
||||
|
||||
PLACES_TABLE = "places"
|
||||
AGENTS_TABLE = "agents"
|
||||
SERIES_TABLE = "series"
|
||||
ENTRIES_TABLE = "entries"
|
||||
CONTENTS_TABLE = "contents"
|
||||
ITEMS_TABLE = "items"
|
||||
SESSIONS_TABLE = "sessions"
|
||||
PLACES_TABLE = "places"
|
||||
AGENTS_TABLE = "agents"
|
||||
SERIES_TABLE = "series"
|
||||
ENTRIES_TABLE = "entries"
|
||||
CONTENTS_TABLE = "contents"
|
||||
ITEMS_TABLE = "items"
|
||||
SESSIONS_TABLE = "sessions"
|
||||
ACCESS_TOKENS_TABLE = "access_tokens"
|
||||
|
||||
ID_FIELD = "id"
|
||||
CREATED_FIELD = "created"
|
||||
@@ -512,12 +520,22 @@ const (
|
||||
SESSIONS_STATUS_FIELD = "status"
|
||||
SESSIONS_PERSIST_FIELD = "persist"
|
||||
|
||||
USERS_TABLE = "users"
|
||||
USERS_EMAIL_FIELD = "email"
|
||||
USERS_SETTINGS_FIELD = "settings"
|
||||
USERS_NAME_FIELD = "name"
|
||||
USERS_ROLE_FIELD = "role"
|
||||
USERS_AVATAR_FIELD = "avatar"
|
||||
USERS_TABLE = "users"
|
||||
USERS_EMAIL_FIELD = "email"
|
||||
USERS_SETTINGS_FIELD = "settings"
|
||||
USERS_NAME_FIELD = "name"
|
||||
USERS_ROLE_FIELD = "role"
|
||||
USERS_AVATAR_FIELD = "avatar"
|
||||
USERS_VERIFIED_FIELD = "verified"
|
||||
USERS_DEACTIVATED_FIELD = "deactivated"
|
||||
|
||||
ACCESS_TOKENS_TOKEN_FIELD = "token"
|
||||
ACCESS_TOKENS_CSRF_FIELD = "csrf"
|
||||
ACCESS_TOKENS_USER_FIELD = "user"
|
||||
ACCESS_TOKENS_URL_FIELD = "url"
|
||||
ACCESS_TOKENS_EXPIRES_FIELD = "expires"
|
||||
ACCESS_TOKENS_LAST_ACCESS_FIELD = "accessed"
|
||||
ACCESS_TOKENS_STATUS_FIELD = "status"
|
||||
|
||||
SESSION_COOKIE_NAME = "sid"
|
||||
)
|
||||
|
||||
@@ -67,6 +67,7 @@ func CreateSessionToken(
|
||||
session.SetLastAccess(types.NowDateTime())
|
||||
session.SetUserAgent(userAgent)
|
||||
session.SetIP(ipAddress)
|
||||
session.SetStatus(TOKEN_STATUS_VALUES[0]) // Active
|
||||
|
||||
if errSave := app.Save(session); errSave != nil {
|
||||
app.Logger().Error("Failed to save session token record", "error", errSave, "userID", userID)
|
||||
|
||||
@@ -115,6 +115,14 @@ func (u *Session) IsExpired() bool {
|
||||
return u.Expires().IsZero() || u.Expires().Before(types.NowDateTime())
|
||||
}
|
||||
|
||||
func (u *Session) Status() string {
|
||||
return u.GetString(SESSIONS_STATUS_FIELD)
|
||||
}
|
||||
|
||||
func (u *Session) SetStatus(status string) {
|
||||
u.Set(SESSIONS_STATUS_FIELD, status)
|
||||
}
|
||||
|
||||
func (u *Session) Fixed() FixedSession {
|
||||
return FixedSession{
|
||||
ID: u.Id,
|
||||
|
||||
@@ -7,15 +7,16 @@ import (
|
||||
)
|
||||
|
||||
type FixedUser struct {
|
||||
Id string `json:"id"`
|
||||
Email string `json:"email"`
|
||||
Created types.DateTime `json:"created"`
|
||||
Updated types.DateTime `json:"updated"`
|
||||
Name string `json:"name"`
|
||||
Role string `json:"role"`
|
||||
Avatar string `json:"avatar"`
|
||||
Verified bool `json:"verified"`
|
||||
Settings string `json:"settings"`
|
||||
Id string `json:"id"`
|
||||
Email string `json:"email"`
|
||||
Created types.DateTime `json:"created"`
|
||||
Updated types.DateTime `json:"updated"`
|
||||
Name string `json:"name"`
|
||||
Role string `json:"role"`
|
||||
Avatar string `json:"avatar"`
|
||||
Verified bool `json:"verified"`
|
||||
Settings string `json:"settings"`
|
||||
Deactivated bool `json:"deactivated"`
|
||||
}
|
||||
|
||||
var _ core.RecordProxy = (*Place)(nil)
|
||||
@@ -72,15 +73,24 @@ func (u *User) SetAvatar(avatar *filesystem.File) {
|
||||
u.Set(USERS_AVATAR_FIELD, avatar)
|
||||
}
|
||||
|
||||
func (u *User) Deactivated() bool {
|
||||
return u.GetBool(USERS_DEACTIVATED_FIELD)
|
||||
}
|
||||
|
||||
func (u *User) SetDeactivated(deactivated bool) {
|
||||
u.Set(USERS_DEACTIVATED_FIELD, deactivated)
|
||||
}
|
||||
|
||||
func (u *User) Fixed() FixedUser {
|
||||
return FixedUser{
|
||||
Id: u.Id,
|
||||
Email: u.Email(),
|
||||
Created: u.Created(),
|
||||
Updated: u.Updated(),
|
||||
Name: u.Name(),
|
||||
Role: u.Role(),
|
||||
Avatar: u.Avatar(),
|
||||
Verified: u.Verified(),
|
||||
Id: u.Id,
|
||||
Email: u.Email(),
|
||||
Created: u.Created(),
|
||||
Updated: u.Updated(),
|
||||
Name: u.Name(),
|
||||
Role: u.Role(),
|
||||
Avatar: u.Avatar(),
|
||||
Verified: u.Verified(),
|
||||
Deactivated: u.Deactivated(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user