TX fixes
This commit is contained in:
@@ -269,8 +269,12 @@ func (s *commonStore) MarkUserRemoved(userID string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer tx.Rollback()
|
defer tx.Rollback()
|
||||||
// Get username for deleteUserAccess query
|
// Get username for deleteUserAccess query (must be inside tx for consistency)
|
||||||
user, err := s.UserByID(userID)
|
rows, err := tx.Query(s.queries.selectUserByID, userID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
user, err := s.readUser(rows)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,12 @@ package user
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
_ "github.com/mattn/go-sqlite3" // SQLite driver
|
_ "github.com/mattn/go-sqlite3" // SQLite driver
|
||||||
|
|
||||||
|
"heckel.io/ntfy/v2/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -200,6 +204,10 @@ const (
|
|||||||
|
|
||||||
// NewSQLiteStore creates a new SQLite-backed user store
|
// NewSQLiteStore creates a new SQLite-backed user store
|
||||||
func NewSQLiteStore(filename, startupQueries string) (Store, error) {
|
func NewSQLiteStore(filename, startupQueries string) (Store, error) {
|
||||||
|
parentDir := filepath.Dir(filename)
|
||||||
|
if !util.FileExists(parentDir) {
|
||||||
|
return nil, fmt.Errorf("user database directory %s does not exist or is not accessible", parentDir)
|
||||||
|
}
|
||||||
db, err := sql.Open("sqlite3", filename)
|
db, err := sql.Open("sqlite3", filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in New Issue
Block a user