diff --git a/plugins/oauth_client/controllers/oauth_client_plugin_admin_controller.rb b/plugins/oauth_client/controllers/oauth_client_plugin_admin_controller.rb index 10b4332..b1394fe 100644 --- a/plugins/oauth_client/controllers/oauth_client_plugin_admin_controller.rb +++ b/plugins/oauth_client/controllers/oauth_client_plugin_admin_controller.rb @@ -1,6 +1,7 @@ class OauthClientPluginAdminController < AdminController def index + @config = OauthClientPlugin::Config.instance end def new @@ -13,6 +14,11 @@ class OauthClientPluginAdminController < AdminController redirect_to :action => 'index' end + def update_configs + OauthClientPlugin::Config.instance.update_attributes(params[:oauth_client_config]) + redirect_to :action => 'index' + end + def edit @provider = params[:id] ? environment.oauth_providers.find(params[:id]) : environment.oauth_providers.new if request.post? diff --git a/plugins/oauth_client/lib/ext/environment.rb b/plugins/oauth_client/lib/ext/environment.rb index 725221e..995809a 100644 --- a/plugins/oauth_client/lib/ext/environment.rb +++ b/plugins/oauth_client/lib/ext/environment.rb @@ -1,7 +1,6 @@ require_dependency 'environment' class Environment - + has_one :oauth_client_plugin_configs, :class_name => 'OauthClientPlugin::Config' has_many :oauth_providers, :class_name => 'OauthClientPlugin::Provider' - end diff --git a/plugins/oauth_client/models/oauth_client_plugin/config.rb b/plugins/oauth_client/models/oauth_client_plugin/config.rb index 5447329..4873b41 100644 --- a/plugins/oauth_client/models/oauth_client_plugin/config.rb +++ b/plugins/oauth_client/models/oauth_client_plugin/config.rb @@ -1,7 +1,15 @@ class OauthClientPlugin::Config < ApplicationRecord belongs_to :environment + attr_accessible :create_account_for_login, :environment_id - attr_accessible :create_account_for_login + class << self + def instance + environment = Environment.default + environment.oauth_client_plugin_configs || create(environment_id: environment.id) + end + + private :new + end 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 57188e6..f0ac216 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 @@ -1,11 +1,11 @@
<%= _('Only allow login with creation of new account') %> | -<%= check_box_tag "environment[enabled_features][]","" ,"" %> | +<%= check_box_tag "oauth_client_config[create_account_for_login]", true, @config.create_account_for_login %> |