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