+ <% end %>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 7298b3ea..ce9dee19 100755
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -42,6 +42,10 @@ en:
info: Change the branding image that appears in the top left corner
placeholder: Image Url...
title: Branding Image
+ cache:
+ info: Clears the stored provider cache which forces a new request for the updated info
+ title: Clear Provider Cache
+ button: Clear Cache
color:
info: Changing the Regular Color will change both Lighten and Darken. Lighten and Darken can then be changed individually
title: Primary Color
diff --git a/config/routes.rb b/config/routes.rb
index 7406a11d..49b80ce3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -54,6 +54,7 @@ Rails.application.routes.draw do
get '/reset', to: 'admins#reset', as: :admin_reset
post '/room_limit', to: 'admins#room_limit', as: :admin_room_limit
post '/default_recording_visibility', to: 'admins#default_recording_visibility', as: :admin_recording_visibility
+ post '/clear_cache', to: 'admins#clear_cache', as: :admin_clear_cache
get '/roles', to: 'admins#roles', as: :admin_roles
post '/role', to: 'admins#new_role', as: :admin_new_role
patch 'roles/order', to: 'admins#change_role_order', as: :admin_roles_order
diff --git a/lib/bbb_api.rb b/lib/bbb_api.rb
index b76b3c81..1b2f0c49 100644
--- a/lib/bbb_api.rb
+++ b/lib/bbb_api.rb
@@ -27,6 +27,9 @@ module BbbApi
# Include Omniauth accounts under the Greenlight provider.
raise "Provider not included." if !provider || provider.empty?
+ cached_provider = Rails.cache.fetch("#{provider}/#{route}")
+ return cached_provider unless cached_provider.nil?
+
# Build the URI.
uri = encode_bbb_url(
Rails.configuration.loadbalancer_endpoint + api + '/',
@@ -48,6 +51,10 @@ module BbbApi
raise doc['message'] unless response.is_a?(Net::HTTPSuccess)
# Return the user credentials if the request succeeded on the loadbalancer.
+ Rails.cache.fetch("#{provider}/#{route}", expires_in: 1.hours) do
+ doc['user']
+ end
+
return doc['user'] if doc['returncode'] == 'SUCCESS'
raise "User with provider #{provider} does not exist." if doc['messageKey'] == 'noSuchUser'