diff options
author | 2021-11-17 13:40:09 +0100 | |
---|---|---|
committer | 2021-11-17 13:40:09 +0100 | |
commit | ff7c96caa312858fd253454993e363937155c608 (patch) | |
tree | 7673c976c3639d2b82341c37e5b256729803e4cd /internal/db/bundb/admin.go | |
parent | Update docs with better config + installation instructions (#300) (diff) | |
download | gotosocial-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.go | 13 |
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(>smodel.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) |