fix compatibility with pg.gem
This commit is contained in:
parent
92b560c688
commit
9dba0a6ab1
@ -132,7 +132,7 @@ class Application
|
|||||||
pg_users_conf = @config[:pg_users]
|
pg_users_conf = @config[:pg_users]
|
||||||
|
|
||||||
users = []
|
users = []
|
||||||
res = @pgconn.exec "SELECT rolname FROM pg_roles WHERE #{pg_users_conf[:filter]}"
|
res = pg_exec "SELECT rolname FROM pg_roles WHERE #{pg_users_conf[:filter]}"
|
||||||
res.each do |tuple|
|
res.each do |tuple|
|
||||||
user = PgRole.new tuple[0]
|
user = PgRole.new tuple[0]
|
||||||
log.info{ "found pg-user: #{user.name.inspect}"}
|
log.info{ "found pg-user: #{user.name.inspect}"}
|
||||||
@ -145,9 +145,9 @@ class Application
|
|||||||
pg_groups_conf = @config[:pg_groups]
|
pg_groups_conf = @config[:pg_groups]
|
||||||
|
|
||||||
groups = []
|
groups = []
|
||||||
res = @pgconn.exec "SELECT rolname, oid FROM pg_roles WHERE #{pg_groups_conf[:filter]}"
|
res = pg_exec "SELECT rolname, oid FROM pg_roles WHERE #{pg_groups_conf[:filter]}"
|
||||||
res.each do |tuple|
|
res.each do |tuple|
|
||||||
res2 = @pgconn.exec "SELECT pr.rolname FROM pg_auth_members pam JOIN pg_roles pr ON pr.oid=pam.member WHERE pam.roleid=#{PGconn.escape(tuple[1])}"
|
res2 = pg_exec "SELECT pr.rolname FROM pg_auth_members pam JOIN pg_roles pr ON pr.oid=pam.member WHERE pam.roleid=#{PGconn.escape(tuple[1])}"
|
||||||
member_names = res2.map{|row| row[0] }
|
member_names = res2.map{|row| row[0] }
|
||||||
group = PgRole.new tuple[0], member_names
|
group = PgRole.new tuple[0], member_names
|
||||||
log.info{ "found pg-group: #{group.name.inspect} with members: #{member_names.inspect}"}
|
log.info{ "found pg-group: #{group.name.inspect} with members: #{member_names.inspect}"}
|
||||||
@ -209,20 +209,25 @@ class Application
|
|||||||
return roles
|
return roles
|
||||||
end
|
end
|
||||||
|
|
||||||
def pg_exec(sql)
|
def pg_exec_modify(sql)
|
||||||
log.info{ "SQL: #{sql}" }
|
log.info{ "SQL: #{sql}" }
|
||||||
unless self.test
|
unless self.test
|
||||||
@pgconn.exec sql
|
res = @pgconn.exec sql
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pg_exec(sql)
|
||||||
|
res = @pgconn.exec sql
|
||||||
|
(0...res.num_tuples).map{|t| (0...res.num_fields).map{|i| res.getvalue(t, i) } }
|
||||||
|
end
|
||||||
|
|
||||||
def create_pg_role(role)
|
def create_pg_role(role)
|
||||||
pg_conf = @config[role.type==:user ? :pg_users : :pg_groups]
|
pg_conf = @config[role.type==:user ? :pg_users : :pg_groups]
|
||||||
pg_exec "CREATE ROLE \"#{role.name}\" #{pg_conf[:create_options]}"
|
pg_exec_modify "CREATE ROLE \"#{role.name}\" #{pg_conf[:create_options]}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def drop_pg_role(role)
|
def drop_pg_role(role)
|
||||||
pg_exec "DROP ROLE \"#{role.name}\""
|
pg_exec_modify "DROP ROLE \"#{role.name}\""
|
||||||
end
|
end
|
||||||
|
|
||||||
def sync_roles_to_pg(roles)
|
def sync_roles_to_pg(roles)
|
||||||
@ -285,12 +290,12 @@ class Application
|
|||||||
def grant_membership(role_name, add_members)
|
def grant_membership(role_name, add_members)
|
||||||
pg_conf = @config[:pg_groups]
|
pg_conf = @config[:pg_groups]
|
||||||
add_members_escaped = add_members.map{|m| "\"#{m}\"" }.join(",")
|
add_members_escaped = add_members.map{|m| "\"#{m}\"" }.join(",")
|
||||||
pg_exec "GRANT \"#{role_name}\" TO #{add_members_escaped} #{pg_conf[:grant_options]}"
|
pg_exec_modify "GRANT \"#{role_name}\" TO #{add_members_escaped} #{pg_conf[:grant_options]}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def revoke_membership(role_name, rm_members)
|
def revoke_membership(role_name, rm_members)
|
||||||
rm_members_escaped = rm_members.map{|m| "\"#{m}\"" }.join(",")
|
rm_members_escaped = rm_members.map{|m| "\"#{m}\"" }.join(",")
|
||||||
pg_exec "REVOKE \"#{role_name}\" FROM #{rm_members_escaped}"
|
pg_exec_modify "REVOKE \"#{role_name}\" FROM #{rm_members_escaped}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def sync_membership_to_pg(memberships)
|
def sync_membership_to_pg(memberships)
|
||||||
|
Reference in New Issue
Block a user