diff --git a/plugins/oauth_client/lib/oauth_client_plugin.rb b/plugins/oauth_client/lib/oauth_client_plugin.rb index da10820..a967a1d 100644 --- a/plugins/oauth_client/lib/oauth_client_plugin.rb +++ b/plugins/oauth_client/lib/oauth_client_plugin.rb @@ -63,9 +63,7 @@ class OauthClientPlugin < Noosfero::Plugin environment = domain.environment rescue Environment.default settings = Noosfero::Plugin::Settings.new(environment, OauthClientPlugin) providers = settings.get_setting(:providers) - - strategy.options.client_id = providers[provider][:client_id] - strategy.options.client_secret = providers[provider][:client_secret] + strategy.options.merge!(providers[provider][:options].symbolize_keys) } provider provider, :setup => setup, diff --git a/plugins/oauth_client/lib/omniauth/strategies/noosfero_oauth2.rb b/plugins/oauth_client/lib/omniauth/strategies/noosfero_oauth2.rb index b154d27..433307e 100644 --- a/plugins/oauth_client/lib/omniauth/strategies/noosfero_oauth2.rb +++ b/plugins/oauth_client/lib/omniauth/strategies/noosfero_oauth2.rb @@ -5,17 +5,11 @@ module OmniAuth class NoosferoOauth2 < OmniAuth::Strategies::OAuth2 option :name, :noosfero_oauth2 - option :client_options, { - :site => "http://noosfero.com:3001", - :authorize_url => "/oauth/authorize" - } - uid { raw_info["id"] } info do { :email => raw_info["email"] - # and anything else you want to return to your API consumers } end diff --git a/plugins/oauth_client/views/oauth_client_plugin_admin/_noosfero_oauth2.html.erb b/plugins/oauth_client/views/oauth_client_plugin_admin/_noosfero_oauth2.html.erb new file mode 100644 index 0000000..fec602c --- /dev/null +++ b/plugins/oauth_client/views/oauth_client_plugin_admin/_noosfero_oauth2.html.erb @@ -0,0 +1,6 @@ +<%= options.fields_for :client_options, OpenStruct.new(provider.options[:client_options]) do |c| %> +
+ <%= _('Client Url') %> + <%= c.text_field :site %> +
+<% end %> diff --git a/plugins/oauth_client/views/oauth_client_plugin_admin/index.html.erb b/plugins/oauth_client/views/oauth_client_plugin_admin/index.html.erb index 9be9852..ee82288 100644 --- a/plugins/oauth_client/views/oauth_client_plugin_admin/index.html.erb +++ b/plugins/oauth_client/views/oauth_client_plugin_admin/index.html.erb @@ -7,13 +7,15 @@ <% OauthClientPlugin::PROVIDERS.each do |available_provider, options| %> <% provider = OpenStruct.new(@providers[available_provider]) %> + <% provider.options ||= {} %> - <%= p.fields_for available_provider, provider do |o| %> + <%= p.fields_for available_provider, provider do |a| %>
-

<%= o.check_box :enabled, {:class => 'enable', :checked => provider.enabled=='true'}, true, false %> +

<%= a.check_box :enabled, {:class => 'enable', :checked => provider.enabled=='true'}, true, false %> <%= options[:name] %>

+ <%= a.fields_for :options, OpenStruct.new(provider.options) do |o| %>
<%= _('Client ID') %> @@ -23,7 +25,11 @@ <%= _('Client Secret') %> <%= o.text_field :client_secret %>
+ <% if File.exists?(File.join(File.dirname(__FILE__), "_#{available_provider}.html.erb")) %> + <%= render :partial => "#{available_provider}", :locals => {:options => o, :provider => provider} %> + <% end %>
+ <% end %>
<% end %> <% end %> -- libgit2 0.21.2