Compare commits

...

10 Commits

Author SHA1 Message Date
T. R. Bernstein
173bc3967d adapt readme to new repository
Some checks failed
basebuild / goreleaser (push) Has been cancelled
2026-05-03 23:22:44 +02:00
T. R. Bernstein
795cd8335f adjust code to new repository 2026-05-03 23:22:40 +02:00
Gani Georgiev
0cf34c475b updated changelog 2026-05-02 07:34:50 +03:00
Gani Georgiev
547ee715c0 slightly adjusted the dark text color 2026-05-01 20:55:17 +03:00
Gani Georgiev
4850da6f56 adjusted flaky test 2026-05-01 19:32:00 +03:00
Gani Georgiev
53ac0d29da reordered change email validations to make enumerations slightly harder 2026-05-01 19:31:50 +03:00
Gani Georgiev
d90aaedc00 skip duplicated records ids from the IN expand 2026-05-01 19:16:53 +03:00
Gani Georgiev
74defc48b9 fixed editor keydown propagation outside of form 2026-05-01 18:11:06 +03:00
Gani Georgiev
9205b11dc3 bumped app version 2026-05-01 17:51:40 +03:00
Gani Georgiev
8d0881db3f reload trusted proxy info UI after settings save 2026-04-29 11:06:26 +03:00
346 changed files with 935 additions and 868 deletions

2
.github/SECURITY.md vendored
View File

@@ -77,7 +77,7 @@ If someone is able to tamper with the OAuth2 responses then the entire OAuth2 fl
This is a common and usually valid report but there is no easy solution without confusing and degrading the users experience.
Some endpoints, like the user create/register, can be used for username or emails enumeration based on various response heuristics - timing, specific error messages, etc.
Some endpoints, like the user create/register, can be used for usernames or emails enumeration based on various response heuristics - timing, specific error messages, etc.
In many places where applicable we've tried to minimize the impact by using constant time checks, returning non-descriptive error messages, applying an internal rate limit for some operations, etc. but it is not bulletproof and if somebody wants to find out if a user is registered they will be able to do it one way or another.

View File

@@ -13,7 +13,7 @@ builds:
main: ./examples/base
binary: pocketbase
ldflags:
- -s -w -X github.com/pocketbase/pocketbase.Version={{ .Version }}
- -s -w -X github.com/tabshift-gh/pocketbase.Version={{ .Version }}
env:
- CGO_ENABLED=0
goos:

View File

@@ -1,9 +1,13 @@
## v0.37.5 (WIP)
## v0.37.5
- Fixed password fields not being detected as changed ([#7670](https://github.com/pocketbase/pocketbase/issues/7670)).
- Added the local time zone name next to the `date` field label.
- Reload trusted proxy info UI after settings save.
- Other minor improvements (skips the duplicated record ids from the `IN` expand list, reordered confirm-email-change error checks to minimize enumeration attacks, etc.).
## v0.37.4

View File

@@ -5,9 +5,9 @@
</p>
<p align="center">
<a href="https://github.com/pocketbase/pocketbase/actions/workflows/release.yaml" target="_blank" rel="noopener"><img src="https://github.com/pocketbase/pocketbase/actions/workflows/release.yaml/badge.svg" alt="build" /></a>
<a href="https://github.com/pocketbase/pocketbase/releases" target="_blank" rel="noopener"><img src="https://img.shields.io/github/release/pocketbase/pocketbase.svg" alt="Latest releases" /></a>
<a href="https://pkg.go.dev/github.com/pocketbase/pocketbase" target="_blank" rel="noopener"><img src="https://godoc.org/github.com/pocketbase/pocketbase?status.svg" alt="Go package documentation" /></a>
<a href="https://github.com/pocketbase/pocketbase/actions/workflows/release.yaml" target="_blank" rel="noopener"><img src="https://github.com/tabshift-gh/pocketbase/actions/workflows/release.yaml/badge.svg" alt="build" /></a>
<a href="https://github.com/tabshift-gh/pocketbase/releases" target="_blank" rel="noopener"><img src="https://img.shields.io/github/release/tabshift-gh/pocketbase.svg" alt="Latest releases" /></a>
<a href="https://pkg.go.dev/github.com/pocketbase/pocketbase" target="_blank" rel="noopener"><img src="https://godoc.org/github.com/tabshift-gh/pocketbase?status.svg" alt="Go package documentation" /></a>
</p>
[PocketBase](https://pocketbase.io) is an open source Go backend that includes:
@@ -17,6 +17,12 @@
- convenient **Admin dashboard UI**
- and simple **REST-ish API**
> [!NOTE]
> This is a fork of the great [pocketbase/pocketbase][] repository adapted for
> Tabshift's purposes.
[pocketbase/pocketbase]: https://github.com/pocketbase/pocketbase
**For documentation and examples, please visit https://pocketbase.io/docs.**
> [!WARNING]
@@ -32,7 +38,6 @@ The easiest way to interact with the PocketBase Web APIs is to use one of the of
You could also check the recommendations in https://pocketbase.io/docs/how-to-use/.
## Overview
### Use as standalone app
@@ -52,33 +57,34 @@ Here is a minimal example:
0. [Install Go 1.25+](https://go.dev/doc/install) (_if you haven't already_)
1. Create a new project directory with the following `main.go` file inside it:
```go
package main
import (
"log"
```go
package main
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
)
import (
"log"
func main() {
app := pocketbase.New()
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
)
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
// registers new "GET /hello" route
se.Router.GET("/hello", func(re *core.RequestEvent) error {
return re.String(200, "Hello world!")
})
func main() {
app := pocketbase.New()
return se.Next()
})
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
// registers new "GET /hello" route
se.Router.GET("/hello", func(re *core.RequestEvent) error {
return re.String(200, "Hello world!")
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
```
return se.Next()
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
```
2. To init the dependencies, run `go mod init myapp && go mod tidy`.

View File

@@ -1,6 +1,6 @@
package apis
import "github.com/pocketbase/pocketbase/tools/router"
import "github.com/tabshift-gh/pocketbase/tools/router"
// ApiError aliases to minimize the breaking changes with earlier versions
// and for consistency with the JSVM binds.

View File

@@ -6,10 +6,10 @@ import (
"path/filepath"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/tools/types"
"github.com/spf13/cast"
)

View File

@@ -6,7 +6,7 @@ import (
"regexp"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/tabshift-gh/pocketbase/core"
)
func backupCreate(e *core.RequestEvent) error {

View File

@@ -10,10 +10,10 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/filesystem/blob"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/filesystem/blob"
)
func TestBackupsList(t *testing.T) {

View File

@@ -4,9 +4,9 @@ import (
"net/http"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/core/validators"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/core/validators"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
)
func backupUpload(e *core.RequestEvent) error {

View File

@@ -8,8 +8,8 @@ import (
"path/filepath"
"strings"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/router"
)
// StaticWildcardParam is the name of Static handler wildcard parameter.

View File

@@ -8,10 +8,10 @@ import (
"path/filepath"
"testing"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/router"
)
func TestWrapStdHandler(t *testing.T) {

View File

@@ -15,10 +15,10 @@ import (
"time"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/types"
"github.com/spf13/cast"
)

View File

@@ -6,9 +6,9 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/router"
)
func TestBatchRequest(t *testing.T) {

View File

@@ -7,11 +7,11 @@ import (
"strings"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/auth"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/search"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/auth"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/search"
"github.com/tabshift-gh/pocketbase/tools/security"
)
// bindCollectionApi registers the collection api endpoints and the corresponding handlers.

View File

@@ -5,7 +5,7 @@ import (
"net/http"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/tabshift-gh/pocketbase/core"
)
func collectionsImport(e *core.RequestEvent) error {

View File

@@ -6,8 +6,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestCollectionsImport(t *testing.T) {

View File

@@ -8,9 +8,9 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/list"
)
func TestCollectionsList(t *testing.T) {

View File

@@ -5,10 +5,10 @@ import (
"slices"
"strings"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/cron"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/cron"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/routine"
)
// bindCronApi registers the crons api endpoint.

View File

@@ -5,8 +5,8 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/spf13/cast"
)

View File

@@ -10,10 +10,10 @@ import (
"runtime"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/spf13/cast"
"golang.org/x/sync/semaphore"
"golang.org/x/sync/singleflight"

View File

@@ -10,10 +10,10 @@ import (
"sync"
"testing"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestFileToken(t *testing.T) {

View File

@@ -4,8 +4,8 @@ import (
"net/http"
"slices"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/router"
)
// bindHealthApi registers the health api endpoint.

View File

@@ -4,7 +4,7 @@ import (
"net/http"
"testing"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestHealthAPI(t *testing.T) {

View File

@@ -10,9 +10,9 @@ import (
"github.com/fatih/color"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/osutils"
"github.com/pocketbase/pocketbase/ui"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/osutils"
"github.com/tabshift-gh/pocketbase/ui"
)
// DefaultInstallerFunc is the default PocketBase installer function.
@@ -21,7 +21,7 @@ import (
// token for the systemSuperuser) to the installer UI so that users can
// create their own custom superuser record.
//
// See https://github.com/pocketbase/pocketbase/discussions/5814.
// See https://github.com/tabshift-gh/pocketbase/discussions/5814.
func DefaultInstallerFunc(app core.App, systemSuperuser *core.Record, baseURL string) error {
if ui.DistDirFS == nil {
color.Magenta("You can create your first superuser by running: %s superuser upsert EMAIL PASS", executablePath())

View File

@@ -4,9 +4,9 @@ import (
"net/http"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/search"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/search"
)
// bindLogsApi registers the request logs api endpoints.

View File

@@ -4,8 +4,8 @@ import (
"net/http"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestLogsList(t *testing.T) {

View File

@@ -11,11 +11,11 @@ import (
"strings"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/spf13/cast"
)

View File

@@ -4,9 +4,9 @@ import (
"io"
"net/http"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/router"
)
var ErrRequestEntityTooLarge = router.NewApiError(http.StatusRequestEntityTooLarge, "Request entity too large", nil)

View File

@@ -6,9 +6,9 @@ import (
"net/http/httptest"
"testing"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestBodyLimitMiddleware(t *testing.T) {

View File

@@ -19,8 +19,8 @@ import (
"strconv"
"strings"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
)
const (

View File

@@ -17,9 +17,9 @@ import (
"strings"
"sync"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/router"
)
const (

View File

@@ -5,9 +5,9 @@ import (
"sync"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/store"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/store"
)
const (

View File

@@ -5,9 +5,9 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestDefaultRateLimitMiddleware(t *testing.T) {
@@ -86,8 +86,8 @@ func TestDefaultRateLimitMiddleware(t *testing.T) {
{"/rate/a", 0, false, 200},
{"/rate/a", 800, false, 200}, // (fixed window check) wait enough to ensure that it can't fit more than 2 requests in 1s
{"/rate/a", 500, false, 200},
{"/rate/a", 800, false, 200},
{"/rate/a", 600, false, 200},
{"/rate/a", 850, false, 200},
{"/rate/a", 0, false, 200},
{"/rate/a", 0, false, 429},
{"/rate/a", 0, false, 429},

View File

@@ -4,9 +4,9 @@ import (
"net/http"
"testing"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestPanicRecover(t *testing.T) {

View File

@@ -12,13 +12,13 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/picker"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/pocketbase/pocketbase/tools/search"
"github.com/pocketbase/pocketbase/tools/subscriptions"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/picker"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/tools/search"
"github.com/tabshift-gh/pocketbase/tools/subscriptions"
"golang.org/x/sync/errgroup"
)
@@ -57,7 +57,7 @@ func realtimeConnect(e *core.RequestEvent) error {
e.Response.Header().Set("Content-Type", "text/event-stream")
e.Response.Header().Set("Cache-Control", "no-store")
// https://github.com/pocketbase/pocketbase/discussions/480#discussioncomment-3657640
// https://github.com/tabshift-gh/pocketbase/discussions/480#discussioncomment-3657640
// https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering
e.Response.Header().Set("X-Accel-Buffering", "no")

View File

@@ -13,11 +13,11 @@ import (
"time"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/subscriptions"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/subscriptions"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestRealtimeConnect(t *testing.T) {

View File

@@ -1,8 +1,8 @@
package apis
import (
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/router"
)
// bindRecordAuthApi registers the auth record api endpoints and

View File

@@ -4,8 +4,8 @@ import (
"net/http"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/security"
)
func recordConfirmEmailChange(e *core.RequestEvent) error {
@@ -102,12 +102,6 @@ func (form *EmailChangeConfirmForm) parseToken() (*core.Record, string, error) {
return nil, "", validation.NewError("validation_invalid_token_payload", "Invalid token payload - newEmail must be set.")
}
// ensure that there aren't other users with the new email
_, err := form.app.FindAuthRecordByEmail(form.collection, newEmail)
if err == nil {
return nil, "", validation.NewError("validation_existing_token_email", "The new email address is already registered: "+newEmail)
}
// verify that the token is not expired and its signature is valid
authRecord, err := form.app.FindAuthRecordByToken(form.Token, core.TokenTypeEmailChange)
if err != nil {
@@ -118,5 +112,11 @@ func (form *EmailChangeConfirmForm) parseToken() (*core.Record, string, error) {
return nil, "", validation.NewError("validation_token_collection_mismatch", "The provided token is for different auth collection.")
}
// check if there are other users with the new email
_, err = form.app.FindAuthRecordByEmail(form.collection, newEmail)
if err == nil {
return nil, "", validation.NewError("validation_invalid_token_email", "The new email address is invalid.")
}
return authRecord, newEmail, nil
}

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordConfirmEmailChange(t *testing.T) {

View File

@@ -5,8 +5,8 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/mails"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/mails"
)
func recordRequestEmailChange(e *core.RequestEvent) error {

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordRequestEmailChange(t *testing.T) {

View File

@@ -4,7 +4,7 @@ import (
"time"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/tabshift-gh/pocketbase/core"
)
// note: for now allow superusers but it may change in the future to allow access

View File

@@ -5,7 +5,7 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordAuthImpersonate(t *testing.T) {

View File

@@ -5,9 +5,9 @@ import (
"net/http"
"slices"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/auth"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/auth"
"github.com/tabshift-gh/pocketbase/tools/security"
"golang.org/x/oauth2"
)

View File

@@ -4,8 +4,8 @@ import (
"net/http"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordAuthMethodsList(t *testing.T) {

View File

@@ -8,10 +8,10 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/mails"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/mails"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/tools/security"
)
func recordRequestOTP(e *core.RequestEvent) error {

View File

@@ -7,9 +7,9 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestRecordRequestOTP(t *testing.T) {

View File

@@ -4,9 +4,9 @@ import (
"net/http"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/core/validators"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/core/validators"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/spf13/cast"
)

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordConfirmPasswordReset(t *testing.T) {

View File

@@ -8,9 +8,9 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/mails"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/mails"
"github.com/tabshift-gh/pocketbase/tools/routine"
)
func recordRequestPasswordReset(e *core.RequestEvent) error {

View File

@@ -6,8 +6,8 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordRequestPasswordReset(t *testing.T) {

View File

@@ -1,8 +1,8 @@
package apis
import (
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/spf13/cast"
)

View File

@@ -4,8 +4,8 @@ import (
"net/http"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordAuthRefresh(t *testing.T) {

View File

@@ -4,8 +4,8 @@ import (
"net/http"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/spf13/cast"
)

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordConfirmVerification(t *testing.T) {

View File

@@ -8,9 +8,9 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/mails"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/mails"
"github.com/tabshift-gh/pocketbase/tools/routine"
)
func recordRequestVerification(e *core.RequestEvent) error {

View File

@@ -6,8 +6,8 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordRequestVerification(t *testing.T) {

View File

@@ -19,11 +19,11 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/auth"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/inflector"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/auth"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/inflector"
"golang.org/x/oauth2"
)

View File

@@ -7,9 +7,9 @@ import (
"strings"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/subscriptions"
"github.com/pocketbase/pocketbase/ui"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/subscriptions"
"github.com/tabshift-gh/pocketbase/ui"
)
const (
@@ -56,7 +56,7 @@ func oauth2SubscriptionRedirect(e *core.RequestEvent) error {
defer client.Unsubscribe(oauth2SubscriptionTopic)
// temporary store the Apple user's name so that it can be later retrieved with the authWithOAuth2 call
// (see https://github.com/pocketbase/pocketbase/issues/7090)
// (see https://github.com/tabshift-gh/pocketbase/issues/7090)
if data.AppleUser != "" && data.Error == "" && data.Code != "" {
nameErr := parseAndStoreAppleRedirectName(
e.App,

View File

@@ -8,9 +8,9 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/subscriptions"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/subscriptions"
)
func TestRecordAuthWithOAuth2Redirect(t *testing.T) {

View File

@@ -11,10 +11,10 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/auth"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/auth"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"golang.org/x/oauth2"
)

View File

@@ -5,7 +5,7 @@ import (
"fmt"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/tabshift-gh/pocketbase/core"
)
func recordAuthWithOTP(e *core.RequestEvent) error {

View File

@@ -5,9 +5,9 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestRecordAuthWithOTP(t *testing.T) {

View File

@@ -9,9 +9,9 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/tools/list"
)
func recordAuthWithPassword(e *core.RequestEvent) error {

View File

@@ -5,9 +5,9 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
)
func TestRecordAuthWithPassword(t *testing.T) {

View File

@@ -10,14 +10,14 @@ import (
"time"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/forms"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/inflector"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/search"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/forms"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/inflector"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/search"
"github.com/tabshift-gh/pocketbase/tools/security"
)
// bindRecordCrudApi registers the record crud api endpoints and

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordCrudAuthOriginList(t *testing.T) {

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordCrudExternalAuthList(t *testing.T) {

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordCrudMFAList(t *testing.T) {

View File

@@ -5,8 +5,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordCrudOTPList(t *testing.T) {

View File

@@ -6,8 +6,8 @@ import (
"testing"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestRecordCrudSuperuserList(t *testing.T) {

View File

@@ -11,11 +11,11 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestRecordCrudList(t *testing.T) {

View File

@@ -9,13 +9,13 @@ import (
"time"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/mails"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/pocketbase/pocketbase/tools/search"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/mails"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/tools/search"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/tools/types"
)
const (

View File

@@ -9,11 +9,11 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestEnrichRecords(t *testing.T) {

View File

@@ -13,11 +13,11 @@ import (
"time"
"github.com/fatih/color"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/pocketbase/pocketbase/ui"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/ui"
"golang.org/x/crypto/acme"
"golang.org/x/crypto/acme/autocert"
)

View File

@@ -4,9 +4,9 @@ import (
"net/http"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/forms"
"github.com/pocketbase/pocketbase/tools/router"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/forms"
"github.com/tabshift-gh/pocketbase/tools/router"
)
// bindSettingsApi registers the settings api endpoints.

View File

@@ -11,8 +11,8 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestSettingsList(t *testing.T) {

View File

@@ -4,8 +4,8 @@ import (
"errors"
"net/http"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/tabshift-gh/pocketbase/apis"
"github.com/tabshift-gh/pocketbase/core"
"github.com/spf13/cobra"
)

View File

@@ -6,8 +6,8 @@ import (
"github.com/fatih/color"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/spf13/cobra"
)

View File

@@ -3,9 +3,9 @@ package cmd_test
import (
"testing"
"github.com/pocketbase/pocketbase/cmd"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/cmd"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestSuperuserUpsertCommand(t *testing.T) {

View File

@@ -9,12 +9,12 @@ import (
"time"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/tools/cron"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/mailer"
"github.com/pocketbase/pocketbase/tools/store"
"github.com/pocketbase/pocketbase/tools/subscriptions"
"github.com/tabshift-gh/pocketbase/tools/cron"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/mailer"
"github.com/tabshift-gh/pocketbase/tools/store"
"github.com/tabshift-gh/pocketbase/tools/subscriptions"
)
// App defines the main PocketBase app interface.

View File

@@ -7,8 +7,8 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/types"
)
const CollectionNameAuthOrigins = "_authOrigins"

View File

@@ -5,9 +5,9 @@ import (
"slices"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestNewAuthOrigin(t *testing.T) {

View File

@@ -5,8 +5,8 @@ import (
"slices"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestFindAllAuthOriginsByRecord(t *testing.T) {

View File

@@ -16,15 +16,15 @@ import (
"github.com/fatih/color"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/tools/cron"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/logger"
"github.com/pocketbase/pocketbase/tools/mailer"
"github.com/pocketbase/pocketbase/tools/routine"
"github.com/pocketbase/pocketbase/tools/store"
"github.com/pocketbase/pocketbase/tools/subscriptions"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/tools/cron"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/logger"
"github.com/tabshift-gh/pocketbase/tools/mailer"
"github.com/tabshift-gh/pocketbase/tools/routine"
"github.com/tabshift-gh/pocketbase/tools/store"
"github.com/tabshift-gh/pocketbase/tools/subscriptions"
"github.com/tabshift-gh/pocketbase/tools/types"
"github.com/spf13/cast"
"golang.org/x/sync/semaphore"
)
@@ -1233,7 +1233,7 @@ func normalizeSQLLog(sql string) string {
func (app *BaseApp) initAuxDB() error {
// note: renamed to "auxiliary" because "aux" is a reserved Windows filename
// (see https://github.com/pocketbase/pocketbase/issues/5607)
// (see https://github.com/tabshift-gh/pocketbase/issues/5607)
dbPath := filepath.Join(app.DataDir(), "auxiliary.db")
concurrentDB, err := app.config.DBConnect(dbPath)
@@ -1314,7 +1314,7 @@ func (app *BaseApp) registerBaseHooks() {
Func: func(e *ModelEvent) error {
if m, ok := e.Model.(FilesManager); ok && m.BaseFilesPath() != "" && supportFiles(e.Model) {
// ensure that there is a trailing slash so that the list iterator could start walking from the prefix dir
// (https://github.com/pocketbase/pocketbase/discussions/5246#discussioncomment-10128955)
// (https://github.com/tabshift-gh/pocketbase/discussions/5246#discussioncomment-10128955)
prefix := strings.TrimRight(m.BaseFilesPath(), "/") + "/"
// note: for now assume no context cancellation

View File

@@ -12,11 +12,11 @@ import (
"sort"
"time"
"github.com/pocketbase/pocketbase/tools/archive"
"github.com/pocketbase/pocketbase/tools/filesystem"
"github.com/pocketbase/pocketbase/tools/inflector"
"github.com/pocketbase/pocketbase/tools/osutils"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/tools/archive"
"github.com/tabshift-gh/pocketbase/tools/filesystem"
"github.com/tabshift-gh/pocketbase/tools/inflector"
"github.com/tabshift-gh/pocketbase/tools/osutils"
"github.com/tabshift-gh/pocketbase/tools/security"
)
const (
@@ -145,7 +145,7 @@ func (app *BaseApp) CreateBackup(ctx context.Context, name string) error {
//
// Note that if your pb_data has custom network mounts as subdirectories, then
// it is possible the restore to fail during the `os.Rename` operations
// (see https://github.com/pocketbase/pocketbase/issues/4647).
// (see https://github.com/tabshift-gh/pocketbase/issues/4647).
func (app *BaseApp) RestoreBackup(ctx context.Context, name string) error {
if app.Store().Has(StoreKeyActiveBackup) {
return errors.New("try again later - another backup/restore operation has already been started")

View File

@@ -9,10 +9,10 @@ import (
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/archive"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/archive"
"github.com/tabshift-gh/pocketbase/tools/list"
)
func TestCreateBackup(t *testing.T) {

View File

@@ -12,10 +12,10 @@ import (
_ "unsafe"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/logger"
"github.com/pocketbase/pocketbase/tools/mailer"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/logger"
"github.com/tabshift-gh/pocketbase/tools/mailer"
)
func TestNewBaseApp(t *testing.T) {

View File

@@ -6,8 +6,8 @@ import (
"testing"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestImportCollections(t *testing.T) {

View File

@@ -7,10 +7,10 @@ import (
"strings"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/tools/types"
"github.com/spf13/cast"
)

View File

@@ -7,10 +7,10 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/tools/auth"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/tools/auth"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/tools/types"
"github.com/spf13/cast"
)
@@ -461,7 +461,7 @@ type OAuth2ProviderConfig struct {
//
// This usually shouldn't be needed but some OAuth2 vendors, like the LinkedIn OIDC,
// may require manual adjustment due to returning error if extra parameters are added to the request
// (https://github.com/pocketbase/pocketbase/discussions/3799#discussioncomment-7640312)
// (https://github.com/tabshift-gh/pocketbase/discussions/3799#discussioncomment-7640312)
PKCE *bool `form:"pkce" json:"pkce"`
Name string `form:"name" json:"name"`

View File

@@ -8,10 +8,10 @@ import (
"testing"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/auth"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/auth"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestCollectionAuthOptionsValidate(t *testing.T) {

View File

@@ -11,11 +11,11 @@ import (
"testing"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/pocketbase/pocketbase/tools/hook"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/tools/hook"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestNewCollection(t *testing.T) {

View File

@@ -3,8 +3,8 @@ package core_test
import (
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
)
func TestCollectionViewOptionsValidate(t *testing.T) {

View File

@@ -10,7 +10,7 @@ import (
"strings"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/list"
)
const StoreKeyCachedCollections = "pbAppCachedCollections"
@@ -299,7 +299,7 @@ func saveViewCollection(app App, newCollection, oldCollection *Collection) error
// normalizeViewQueryId wraps (if necessary) the provided view query
// with a subselect to ensure that the id column is a text since
// currently we don't support non-string model ids
// (see https://github.com/pocketbase/pocketbase/issues/3110).
// (see https://github.com/tabshift-gh/pocketbase/issues/3110).
func normalizeViewQueryId(app App, query string) (string, error) {
query = strings.Trim(strings.TrimSpace(query), ";")

View File

@@ -12,9 +12,9 @@ import (
"time"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/list"
)
func TestCollectionQuery(t *testing.T) {

View File

@@ -8,8 +8,8 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/pocketbase/pocketbase/tools/security"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/tools/security"
)
// SyncRecordTableSchema compares the two provided collections

View File

@@ -6,10 +6,10 @@ import (
"testing"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestSyncRecordTableSchema(t *testing.T) {

View File

@@ -9,11 +9,11 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core/validators"
"github.com/pocketbase/pocketbase/tools/dbutils"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/search"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core/validators"
"github.com/tabshift-gh/pocketbase/tools/dbutils"
"github.com/tabshift-gh/pocketbase/tools/list"
"github.com/tabshift-gh/pocketbase/tools/search"
"github.com/tabshift-gh/pocketbase/tools/types"
)
var collectionNameRegex = regexp.MustCompile(`^\w+$`)

View File

@@ -3,9 +3,9 @@ package core_test
import (
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
"github.com/pocketbase/pocketbase/tools/types"
"github.com/tabshift-gh/pocketbase/core"
"github.com/tabshift-gh/pocketbase/tests"
"github.com/tabshift-gh/pocketbase/tools/types"
)
func TestCollectionValidate(t *testing.T) {

Some files were not shown because too many files have changed in this diff Show More