Files
zitadel/cmd/admin/initialise/verify_grant.go
T
5132ebe07c feat: add tenant column to eventstore (#3314)
* feat: add tenant column to eventstore

* feat: read tenant from context on push and filter

* Update 07_events_table.sql

* pass tenant to queryFactory

* fix some query tests

* init in tests

* add missing sql files

Co-authored-by: Livio Amstutz <[email protected]>
2022-03-15 07:19:02 +01:00

47 lines
1.0 KiB
Go

package initialise
import (
"database/sql"
_ "embed"
"fmt"
"github.com/caos/logging"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
var (
searchGrant = "SELECT * FROM [SHOW GRANTS ON DATABASE %s] where grantee = $1 AND privilege_type = 'ALL'"
//go:embed sql/03_grant_user.sql
grantStmt string
)
func newGrant() *cobra.Command {
return &cobra.Command{
Use: "grant",
Short: "set ALL grant to user",
Long: `Sets ALL grant to the database user.
Prereqesits:
- cockroachdb
`,
RunE: func(cmd *cobra.Command, args []string) error {
config := Config{}
if err := viper.Unmarshal(&config); err != nil {
return err
}
return initialise(config, VerifyGrant(config.Database.Database, config.Database.User.Username))
},
}
}
func VerifyGrant(database, username string) func(*sql.DB) error {
return func(db *sql.DB) error {
logging.WithFields("user", username).Info("verify grant")
return verify(db,
exists(fmt.Sprintf(searchGrant, database), username),
exec(fmt.Sprintf(grantStmt, database, username)),
)
}
}