From 0912fc12de3ab6cc107c259b132de9a067256325 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=9A=D0=BE?=
 =?UTF-8?q?=D0=B2=D0=B0=D0=BB=D0=B5=D0=BD=D0=BE=D0=BA?=
 <dmitry.kovalenok@twinslash.com>
Date: Thu, 25 Oct 2012 19:55:26 +0300
Subject: [PATCH] attached controller OmniauthController

---
 Gemfile                                          |   1 +
 Gemfile.lock                                     |   7 +++++++
 app/controllers/redmine_omniauth_controller.rb   |   7 +++++++
 app/helpers/redmine_omniauth_helper.rb           |   2 ++
 .../hooks/_view_account_login_bottom.html.erb    |   3 +++
 .../redmine_omniauth/omniauth_google.html.erb    |   1 +
 assets/images/google_login_icon.jpg              | Bin 0 -> 2267 bytes
 config/routes.rb                                 |   3 +--
 init.rb                                          |   2 +-
 lib/hooks/view_account_login_bottom_hook.rb      |  10 ++++++++++
 .../redmine_omniauth_controller_test.rb          |   8 ++++++++
 11 files changed, 41 insertions(+), 3 deletions(-)
 create mode 100644 Gemfile
 create mode 100644 Gemfile.lock
 create mode 100644 app/controllers/redmine_omniauth_controller.rb
 create mode 100644 app/helpers/redmine_omniauth_helper.rb
 create mode 100644 app/views/hooks/_view_account_login_bottom.html.erb
 create mode 100644 app/views/redmine_omniauth/omniauth_google.html.erb
 create mode 100644 assets/images/google_login_icon.jpg
 create mode 100644 lib/hooks/view_account_login_bottom_hook.rb
 create mode 100644 test/functional/redmine_omniauth_controller_test.rb

diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..4efc519
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1 @@
+gem 'omniauth-google'
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..83f331d
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,7 @@
+GEM
+  specs:
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
diff --git a/app/controllers/redmine_omniauth_controller.rb b/app/controllers/redmine_omniauth_controller.rb
new file mode 100644
index 0000000..c81e0e3
--- /dev/null
+++ b/app/controllers/redmine_omniauth_controller.rb
@@ -0,0 +1,7 @@
+require 'account_controller'
+
+class RedmineOmniauthController < ApplicationController
+  def omniauth_google
+    AccountController.new.send(:open_id_authenticate, params[:openid_url])
+  end
+end
diff --git a/app/helpers/redmine_omniauth_helper.rb b/app/helpers/redmine_omniauth_helper.rb
new file mode 100644
index 0000000..e1d2445
--- /dev/null
+++ b/app/helpers/redmine_omniauth_helper.rb
@@ -0,0 +1,2 @@
+module RedmineOmniauthHelper
+end
diff --git a/app/views/hooks/_view_account_login_bottom.html.erb b/app/views/hooks/_view_account_login_bottom.html.erb
new file mode 100644
index 0000000..5e569b5
--- /dev/null
+++ b/app/views/hooks/_view_account_login_bottom.html.erb
@@ -0,0 +1,3 @@
+<% if Setting.openid? %>
+  <%= link_to image_tag('/plugin_assets/redmine_omniauth_google/images/google_login_icon.jpg'), omniauth_google_path(openid_url: 'google.com') %>
+<% end %>
\ No newline at end of file
diff --git a/app/views/redmine_omniauth/omniauth_google.html.erb b/app/views/redmine_omniauth/omniauth_google.html.erb
new file mode 100644
index 0000000..8949207
--- /dev/null
+++ b/app/views/redmine_omniauth/omniauth_google.html.erb
@@ -0,0 +1 @@
+<h2>RedmineOmniauthController#omniauth_google</h2>
diff --git a/assets/images/google_login_icon.jpg b/assets/images/google_login_icon.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1f6cb5393098569ce2ef78b3a6142050118d8fec
GIT binary patch
literal 2267
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

literal 0
HcmV?d00001

diff --git a/config/routes.rb b/config/routes.rb
index 1803173..5a39baa 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,2 +1 @@
-# Plugin's routes
-# See: http://guides.rubyonrails.org/routing.html
+get 'omniauth_google', to: 'redmine_omniauth#omniauth_google', as: :omniauth_google
\ No newline at end of file
diff --git a/init.rb b/init.rb
index 470481f..f451b16 100644
--- a/init.rb
+++ b/init.rb
@@ -1,5 +1,5 @@
 require 'redmine'
-require_dependency 'redmine_omniauth_google/hooks/view_account_login_bottom_hook'
+require_dependency 'hooks/view_account_login_bottom_hook'
 
 Redmine::Plugin.register :redmine_omniauth_google do
   name 'Redmine Omniauth Google plugin'
diff --git a/lib/hooks/view_account_login_bottom_hook.rb b/lib/hooks/view_account_login_bottom_hook.rb
new file mode 100644
index 0000000..8cd147f
--- /dev/null
+++ b/lib/hooks/view_account_login_bottom_hook.rb
@@ -0,0 +1,10 @@
+module Hooks
+  class ViewAccountLoginBottomHook < Redmine::Hook::ViewListener
+    def view_account_login_bottom context = {}
+      context[:controller].send(:render_to_string, {
+        partial: "hooks/view_account_login_bottom",
+        locals: context
+        })
+    end
+  end
+end
\ No newline at end of file
diff --git a/test/functional/redmine_omniauth_controller_test.rb b/test/functional/redmine_omniauth_controller_test.rb
new file mode 100644
index 0000000..6604da3
--- /dev/null
+++ b/test/functional/redmine_omniauth_controller_test.rb
@@ -0,0 +1,8 @@
+require File.expand_path('../../test_helper', __FILE__)
+
+class RedmineOmniauthControllerTest < ActionController::TestCase
+  # Replace this with your real tests.
+  def test_truth
+    assert true
+  end
+end
-- 
GitLab