Files
gmbase/app/logic/database.go
T
2026-06-05 18:25:03 +02:00

72 lines
1.4 KiB
Go

package logic
import (
"context"
"time"
"mbase/app/descriptor"
"mbase/pkg/auxid"
"mbase/pkg/auxpwd"
)
const (
defaultSeedUsername = "certman"
defaultSeedPassword = "certman"
)
func (lg *Logic) CleanDatabase(ctx context.Context) error {
var err error
err = lg.db.CleanDatabase(ctx)
if err != nil {
return err
}
return err
}
func (lg *Logic) SeedAccount(ctx context.Context) (int64, error) {
var err error
var accountID int64
accountDescrs, err := lg.db.ReducedListAccounts(ctx)
if err != nil {
return accountID, err
}
lg.log.Debugf("Seed account")
if len(accountDescrs) == 0 {
now := time.Now().Format(time.RFC3339)
passhash := auxpwd.MakeSHA256Hash([]byte(defaultSeedPassword))
accountDescr := &descriptor.Account{
ID: auxid.GenID(),
Username: defaultSeedUsername,
Passhash: passhash,
Disabled: false,
CreatedAt: now,
UpdatedAt: now,
}
err = lg.db.InsertAccount(ctx, accountDescr)
if err != nil {
return accountID, err
}
accountID = accountDescr.ID
grantTypes := []string{
descriptor.GrantModifyUsers,
descriptor.GrantModifyDatabase,
}
for _, grantType := range grantTypes {
grantDescr := &descriptor.Grant{
AccountID: accountDescr.ID,
Operation: grantType,
CreatedAt: now,
}
err = lg.db.InsertGrant(ctx, grantDescr)
if err != nil {
return accountID, err
}
}
}
return accountID, err
}