summaryrefslogtreecommitdiff
path: root/internal/db/bundb/admin.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-11-17 13:40:09 +0100
committerLibravatar GitHub <noreply@github.com>2021-11-17 13:40:09 +0100
commitff7c96caa312858fd253454993e363937155c608 (patch)
tree7673c976c3639d2b82341c37e5b256729803e4cd /internal/db/bundb/admin.go
parentUpdate docs with better config + installation instructions (#300) (diff)
downloadgotosocial-ff7c96caa312858fd253454993e363937155c608.tar.xz
Fix instance account not being created (#310)
* Rework 'CreateInstanceAccount' with better checking logic * add test for create instance account
Diffstat (limited to 'internal/db/bundb/admin.go')
-rw-r--r--internal/db/bundb/admin.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/internal/db/bundb/admin.go b/internal/db/bundb/admin.go
index 4381c1de8..accdf7e53 100644
--- a/internal/db/bundb/admin.go
+++ b/internal/db/bundb/admin.go
@@ -178,18 +178,19 @@ func (a *adminDB) NewSignup(ctx context.Context, username string, reason string,
func (a *adminDB) CreateInstanceAccount(ctx context.Context) db.Error {
username := a.config.Host
- // check if instance account already exists
- existsQ := a.conn.
+ q := a.conn.
NewSelect().
Model(&gtsmodel.Account{}).
Where("username = ?", username).
WhereGroup(" AND ", whereEmptyOrNull("domain"))
- count, err := existsQ.Count(ctx)
- if err != nil && count == 1 {
+
+ exists, err := a.conn.Exists(ctx, q)
+ if err != nil {
+ return err
+ }
+ if exists {
logrus.Infof("instance account %s already exists", username)
return nil
- } else if err != sql.ErrNoRows {
- return a.conn.ProcessError(err)
}
key, err := rsa.GenerateKey(rand.Reader, 2048)