mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-19 00:22:55 +02:00
quote schema names in case they use special characters and remove strings.Builder (#2782)
This commit is contained in:
@@ -1390,18 +1390,18 @@ func (c *Cluster) initPreparedDatabaseRoles() error {
|
|||||||
preparedSchemas = map[string]acidv1.PreparedSchema{"data": {DefaultRoles: util.True()}}
|
preparedSchemas = map[string]acidv1.PreparedSchema{"data": {DefaultRoles: util.True()}}
|
||||||
}
|
}
|
||||||
|
|
||||||
var searchPath strings.Builder
|
searchPathArr := []string{constants.DefaultSearchPath}
|
||||||
searchPath.WriteString(constants.DefaultSearchPath)
|
|
||||||
for preparedSchemaName := range preparedSchemas {
|
for preparedSchemaName := range preparedSchemas {
|
||||||
searchPath.WriteString(", " + preparedSchemaName)
|
searchPathArr = append(searchPathArr, fmt.Sprintf("%q", preparedSchemaName))
|
||||||
}
|
}
|
||||||
|
searchPath := strings.Join(searchPathArr, ", ")
|
||||||
|
|
||||||
// default roles per database
|
// default roles per database
|
||||||
if err := c.initDefaultRoles(defaultRoles, "admin", preparedDbName, searchPath.String(), preparedDB.SecretNamespace); err != nil {
|
if err := c.initDefaultRoles(defaultRoles, "admin", preparedDbName, searchPath, preparedDB.SecretNamespace); err != nil {
|
||||||
return fmt.Errorf("could not initialize default roles for database %s: %v", preparedDbName, err)
|
return fmt.Errorf("could not initialize default roles for database %s: %v", preparedDbName, err)
|
||||||
}
|
}
|
||||||
if preparedDB.DefaultUsers {
|
if preparedDB.DefaultUsers {
|
||||||
if err := c.initDefaultRoles(defaultUsers, "admin", preparedDbName, searchPath.String(), preparedDB.SecretNamespace); err != nil {
|
if err := c.initDefaultRoles(defaultUsers, "admin", preparedDbName, searchPath, preparedDB.SecretNamespace); err != nil {
|
||||||
return fmt.Errorf("could not initialize default roles for database %s: %v", preparedDbName, err)
|
return fmt.Errorf("could not initialize default roles for database %s: %v", preparedDbName, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1412,14 +1412,16 @@ func (c *Cluster) initPreparedDatabaseRoles() error {
|
|||||||
if err := c.initDefaultRoles(defaultRoles,
|
if err := c.initDefaultRoles(defaultRoles,
|
||||||
preparedDbName+constants.OwnerRoleNameSuffix,
|
preparedDbName+constants.OwnerRoleNameSuffix,
|
||||||
preparedDbName+"_"+preparedSchemaName,
|
preparedDbName+"_"+preparedSchemaName,
|
||||||
constants.DefaultSearchPath+", "+preparedSchemaName, preparedDB.SecretNamespace); err != nil {
|
fmt.Sprintf("%s, %q", constants.DefaultSearchPath, preparedSchemaName),
|
||||||
|
preparedDB.SecretNamespace); err != nil {
|
||||||
return fmt.Errorf("could not initialize default roles for database schema %s: %v", preparedSchemaName, err)
|
return fmt.Errorf("could not initialize default roles for database schema %s: %v", preparedSchemaName, err)
|
||||||
}
|
}
|
||||||
if preparedSchema.DefaultUsers {
|
if preparedSchema.DefaultUsers {
|
||||||
if err := c.initDefaultRoles(defaultUsers,
|
if err := c.initDefaultRoles(defaultUsers,
|
||||||
preparedDbName+constants.OwnerRoleNameSuffix,
|
preparedDbName+constants.OwnerRoleNameSuffix,
|
||||||
preparedDbName+"_"+preparedSchemaName,
|
preparedDbName+"_"+preparedSchemaName,
|
||||||
constants.DefaultSearchPath+", "+preparedSchemaName, preparedDB.SecretNamespace); err != nil {
|
fmt.Sprintf("%s, %q", constants.DefaultSearchPath, preparedSchemaName),
|
||||||
|
preparedDB.SecretNamespace); err != nil {
|
||||||
return fmt.Errorf("could not initialize default users for database schema %s: %v", preparedSchemaName, err)
|
return fmt.Errorf("could not initialize default users for database schema %s: %v", preparedSchemaName, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user