Skip to content

Commit 40e6022

Browse files
author
Matthias Fuhrmeister
committed
use a struct for passing arguments
1 parent 024afb2 commit 40e6022

File tree

4 files changed

+26
-13
lines changed

4 files changed

+26
-13
lines changed

pkg/controller/postgres/postgres_controller.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,14 @@ func (r *ReconcilePostgres) Reconcile(request reconcile.Request) (_ reconcile.Re
220220
}
221221

222222
// Set privileges on schema
223-
err = r.pg.SetSchemaPrivileges(database, owner, reader, schema, readerPrivs, false, reqLogger)
223+
schemaPrivilegesReader := postgres.PostgresSchemaPrivileges{database, owner, reader, schema, readerPrivs, false}
224+
err = r.pg.SetSchemaPrivileges(schemaPrivilegesReader, reqLogger)
224225
if err != nil {
225226
reqLogger.Error(err, fmt.Sprintf("Could not give %s permissions \"%s\"", reader, readerPrivs))
226227
continue
227228
}
228-
err = r.pg.SetSchemaPrivileges(database, owner, writer, schema, writerPrivs, true, reqLogger)
229+
schemaPrivilegesWriter := postgres.PostgresSchemaPrivileges{database, owner, reader, schema, readerPrivs, true}
230+
err = r.pg.SetSchemaPrivileges(schemaPrivilegesWriter, reqLogger)
229231
if err != nil {
230232
reqLogger.Error(err, fmt.Sprintf("Could not give %s permissions \"%s\"", writer, writerPrivs))
231233
continue

pkg/postgres/database.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,34 +95,34 @@ func (c *pg) CreateExtension(db, extension string, logger logr.Logger) error {
9595
return nil
9696
}
9797

98-
func (c *pg) SetSchemaPrivileges(db, creator, role, schema, privs string, createSchema bool, logger logr.Logger) error {
99-
tmpDb, err := GetConnection(c.user, c.pass, c.host, db, c.args, logger)
98+
func (c *pg) SetSchemaPrivileges(schemaPrivileges PostgresSchemaPrivileges, logger logr.Logger) error {
99+
tmpDb, err := GetConnection(c.user, c.pass, c.host, schemaPrivileges.DB, c.args, logger)
100100
if err != nil {
101101
return err
102102
}
103103
defer tmpDb.Close()
104104

105105
// Grant role usage on schema
106-
_, err = tmpDb.Exec(fmt.Sprintf(GRANT_USAGE_SCHEMA, schema, role))
106+
_, err = tmpDb.Exec(fmt.Sprintf(GRANT_USAGE_SCHEMA, schemaPrivileges.Schema, schemaPrivileges.Role))
107107
if err != nil {
108108
return err
109109
}
110110

111111
// Grant role privs on existing tables in schema
112-
_, err = tmpDb.Exec(fmt.Sprintf(GRANT_ALL_TABLES, privs, schema, role))
112+
_, err = tmpDb.Exec(fmt.Sprintf(GRANT_ALL_TABLES, schemaPrivileges.Privs, schemaPrivileges.Schema, schemaPrivileges.Role))
113113
if err != nil {
114114
return err
115115
}
116116

117117
// Grant role privs on future tables in schema
118-
_, err = tmpDb.Exec(fmt.Sprintf(DEFAULT_PRIVS_SCHEMA, creator, schema, privs, role))
118+
_, err = tmpDb.Exec(fmt.Sprintf(DEFAULT_PRIVS_SCHEMA, schemaPrivileges.Creator, schemaPrivileges.Schema, schemaPrivileges.Privs, schemaPrivileges.Role))
119119
if err != nil {
120120
return err
121121
}
122122

123123
// Grant role usage on schema if createSchema
124-
if createSchema {
125-
_, err = tmpDb.Exec(fmt.Sprintf(GRANT_CREATE_TABLE, schema, role))
124+
if schemaPrivileges.CreateSchema {
125+
_, err = tmpDb.Exec(fmt.Sprintf(GRANT_CREATE_TABLE, schemaPrivileges.Schema, schemaPrivileges.Role))
126126
if err != nil {
127127
return err
128128
}

pkg/postgres/mock/postgres.go

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/postgres/postgres.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type PG interface {
1616
CreateUserRole(role, password string) (string, error)
1717
UpdatePassword(role, password string) error
1818
GrantRole(role, grantee string) error
19-
SetSchemaPrivileges(db, creator, role, schema, privs string, createSchema bool, logger logr.Logger) error
19+
SetSchemaPrivileges(schemaPrivileges PostgresSchemaPrivileges, logger logr.Logger) error
2020
RevokeRole(role, revoked string) error
2121
AlterDefaultLoginRole(role, setRole string) error
2222
DropDatabase(db string, logger logr.Logger) error
@@ -35,6 +35,15 @@ type pg struct {
3535
default_database string
3636
}
3737

38+
type PostgresSchemaPrivileges struct {
39+
DB string
40+
Creator string
41+
Role string
42+
Schema string
43+
Privs string
44+
CreateSchema bool
45+
}
46+
3847
func NewPG(host, user, password, uri_args, default_database, cloud_type string, logger logr.Logger) (PG, error) {
3948
db, err := GetConnection(user, password, host, default_database, uri_args, logger)
4049
if err != nil {

0 commit comments

Comments
 (0)