Merge pull request #14982 from CartoDB/fix-oauth-app-migration

Fix oauth app users migration
pull/14987/head
Simon Martín 5 years ago committed by GitHub
commit 4ca474f26c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -9,6 +9,7 @@ Development
### Bug fixes / enhancements
- Include objectid column from GDB files to be used as ID column when the content guesser is activated [#14965](https://github.com/CartoDB/cartodb/pull/14965)
- Fix migrations of users with oauth_app_user_roles ([#14981](https://github.com/CartoDB/cartodb/issues/14981))
4.27.1 (2019-06-20)
-------------------

@ -52,12 +52,16 @@ module Carto
end
def create_dataset_role
user.in_database(as: :superuser).execute("CREATE ROLE \"#{dataset_role_name}\" CREATEROLE")
user.in_database(as: :superuser).execute(create_dataset_role_query)
rescue ActiveRecord::StatementInvalid => e
CartoDB::Logger.error(message: 'Error creating dataset role', exception: e)
raise OauthProvider::Errors::ServerError.new
end
def create_dataset_role_query
"CREATE ROLE \"#{dataset_role_name}\" CREATEROLE"
end
def grant_dataset_role_privileges
validate_scopes

@ -504,10 +504,12 @@ module CartoDB
end
def create_user_oauth_app_user_roles(user_id)
Carto::User.find(user_id).oauth_app_users.each(&:create_dataset_role)
Carto::User.find(user_id).oauth_app_users.each do |oau|
superuser_user_pg_conn.query(oau.create_dataset_role_query)
end
rescue Carto::OauthProvider::Errors::ServerError => e
# Ignore managed oauth_app_user errors
CartoDB::Logger.error(message: 'Error creating oauth app user role', exception: e)
@logger.error "Error creating oauth app user role: #{e}"
end
def grant_org_oauth_app_user_roles(org_id)
@ -518,7 +520,7 @@ module CartoDB
Carto::User.find(user_id).oauth_app_users.each(&:grant_dataset_role_privileges)
rescue Carto::OauthProvider::Errors::InvalidScope => e
# Ignore managed oauth_app_user errors
CartoDB::Logger.error(message: 'Error granting permissions to dataset role', exception: e)
@logger.error "Error granting permissions to dataset role: #{e}"
end
def org_role_name(database_name)

Loading…
Cancel
Save