mv priv check to var

This commit is contained in:
elianddb
2025-12-03 11:57:28 -08:00
parent 8c2a083399
commit 3655b40fd0
@@ -70,16 +70,8 @@ func doltBackup(ctx *sql.Context, args ...string) (sql.RowIter, error) {
return nil, err
}
if sqlserver.RunningInServerMode() {
// TODO(elianddb): DoltgreSQL needs an auth handler for stored procedures, i.e. AuthType_CALL, but for now we use
// this. dolt_backup already requires admin privilege on GMS due to its potentially destructive nature.
privileges, counter := ctx.GetPrivilegeSet()
if counter == 0 || !privileges.Has(sql.PrivilegeType_Super) {
return nil, sql.ErrPrivilegeCheckFailed.New(ctx.Session.Client().User)
}
if apr.ContainsAny(cli.AwsParams...) {
return nil, fmt.Errorf("AWS parameters are unavailable when running in server mode")
}
if sqlserver.RunningInServerMode() && apr.ContainsAny(cli.AwsParams...) {
return nil, fmt.Errorf("AWS parameters are unavailable when running in server mode")
}
if apr.NArg() == 0 || (apr.NArg() == 1 && apr.Contains(cli.VerboseFlag)) {
@@ -397,3 +389,13 @@ func errDoltBackupUsage(funcParam string, requiredParams, optionalParams []strin
return errors.New(builder.String())
}
var UserHasSuperAccess = func(ctx *sql.Context) (bool, error) {
// TODO(elianddb): DoltgreSQL needs an auth handler for stored procedures, i.e. AuthType_CALL, but for now we use
// this. dolt_backup already requires admin privilege on GMS due to its potentially destructive nature.
privileges, counter := ctx.GetPrivilegeSet()
if counter == 0 || !privileges.Has(sql.PrivilegeType_Super) {
return false, sql.ErrPrivilegeCheckFailed.New(ctx.Session.Client().User)
}
return true, nil
}