/* * Copyright 2026 Oleg Borodin * * This work is published and licensed under a Creative Commons * Attribution-NonCommercial-NoDerivatives 4.0 International License. * * Distribution of this work is permitted, but commercial use and * modifications are strictly prohibited. */ package maindb import ( "context" "mstore/app/descr" "mstore/pkg/auxpwd" "mstore/pkg/auxtool" "mstore/pkg/auxuuid" ) func (db *Database) WriteAnonymous(ctx context.Context) error { var err error now := auxtool.TimeNow() password := auxtool.RandomString(64) passhash := auxpwd.MakeSHA256Hash([]byte(password)) accountDescr := &descr.Account{ ID: descr.AnonymousID, Username: descr.AnonimousUsername, Passhash: passhash, Disabled: false, CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertAccount(ctx, accountDescr) if err != nil { return err } grantDescr := &descr.Grant{ ID: auxuuid.NewUUID(), AccountID: accountDescr.ID, Right: descr.RightReadFiles, Pattern: ".*", CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertGrant(ctx, grantDescr) if err != nil { return err } grantDescr = &descr.Grant{ ID: auxuuid.NewUUID(), AccountID: accountDescr.ID, Right: descr.RightReadImages, Pattern: ".*", CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertGrant(ctx, grantDescr) if err != nil { return err } return err } func (db *Database) WriteInituser(ctx context.Context) error { var err error now := auxtool.TimeNow() passhash := auxpwd.MakeSHA256Hash([]byte(descr.InitUsername)) accountDescr := &descr.Account{ ID: descr.InitID, Username: descr.InitUsername, Passhash: passhash, Disabled: false, CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertAccount(ctx, accountDescr) if err != nil { return err } // Files grantDescr := &descr.Grant{ ID: auxuuid.NewUUID(), AccountID: accountDescr.ID, Right: descr.RightReadFiles, Pattern: ".*", CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertGrant(ctx, grantDescr) if err != nil { return err } grantDescr = &descr.Grant{ ID: auxuuid.NewUUID(), AccountID: accountDescr.ID, Right: descr.RightWriteFiles, Pattern: ".*", CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertGrant(ctx, grantDescr) if err != nil { return err } // Images grantDescr = &descr.Grant{ ID: auxuuid.NewUUID(), AccountID: accountDescr.ID, Right: descr.RightReadImages, Pattern: ",*", CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertGrant(ctx, grantDescr) if err != nil { return err } grantDescr = &descr.Grant{ ID: auxuuid.NewUUID(), AccountID: accountDescr.ID, Right: descr.RightWriteImages, Pattern: ".*", CreatedAt: now, UpdatedAt: now, CreatedBy: descr.ServerID, UpdatedBy: descr.ServerID, } err = db.InsertGrant(ctx, grantDescr) if err != nil { return err } return err }