Extract api key role functions

pull/14025/head
Javier Torres 6 years ago
parent 7c81d574ca
commit 09497fc9e9

@ -456,33 +456,14 @@ module CartoDB
# in the old database while the process is ongoing
# Disabling it may be hard. Maybe it's easier to just exclude it in the export.
def import_pgdump(dump)
@logger.info("Creating roles for regular API Keys")
begin
Carto::User.find(@pack_config['user']['id']).api_keys.select(&:regular?).each do |k|
k.role_creation_queries.each { |q| superuser_user_pg_conn.query(q) }
end
rescue ActiveRecord::RecordNotFound => e
CartoDB::Logger.error(exception: e,
message: 'This should not be happening. Trying import a dump for a non-existing DB')
@logger.error("Unable to create roles for user's api keys, User id: #{@pack_config['user']['id']}")
end
@logger.info("Importing dump from #{dump} using pg_restore..")
@toc_file = toc_file("#{@path}#{dump}")
create_api_key_roles(@pack_config['user']['id'])
run_file_restore_postgres(dump, 'pre-data')
run_file_restore_postgres(dump, 'data')
run_file_restore_postgres(dump, 'post-data')
begin
Carto::User.find(@pack_config['user']['id']).api_keys.select(&:regular?).each do |k|
k.role_permission_queries.each { |q| superuser_user_pg_conn.query(q) }
end
rescue ActiveRecord::RecordNotFound => e
CartoDB::Logger.error(exception: e,
message: 'This should not be happening. Trying import a dump for a non-existing DB')
@logger.error("Unable to create roles for user's api keys, User id: #{@pack_config['user']['id']}")
end
grant_api_key_roles(@pack_config['user']['id'])
end
def create_user(username, password = nil)
@ -497,6 +478,22 @@ module CartoDB
end
end
def create_api_key_roles(user_id)
Carto::User.find(user_id).api_keys.select(&:regular?).each do |k|
k.role_creation_queries.each { |q| superuser_user_pg_conn.query(q) }
rescue ActiveRecord::RecordNotFound => e
CartoDB::Logger.error(exception: e, message: 'Restored user not found', user_id: user_id)
@logger.error("Unable to create roles for user's api keys, User id: #{user_id}")
end
def grant_api_key_roles(user_id)
Carto::User.find(user_id).api_keys.select(&:regular?).each do |k|
k.role_permission_queries.each { |q| superuser_user_pg_conn.query(q) }
rescue ActiveRecord::RecordNotFound => e
CartoDB::Logger.error(exception: e, message: 'Restored user not found', user_id: user_id)
@logger.error("Unable to create roles for user's api keys, User id: #{user_id}")
end
def org_role_name(database_name)
"cdb_org_member_#{Digest::MD5.hexdigest(database_name)}"
end

Loading…
Cancel
Save