Skip to content
Snippets Groups Projects
Commit 9102fe84 authored by Дмитрий Коваленок's avatar Дмитрий Коваленок
Browse files

deleting files

parent 693f1baf
Branches
No related tags found
No related merge requests found
require 'account_controller'
require 'json'
class RedmineOauthController < AccountController
def oauth_google
ds
redirect_to oauth_client.auth_code.authorize_url(redirect_uri: oauth_google_callback_url, scope: scopes)
end
def oauth_google_callback
token = oauth_client.auth_code.get_token(params[:code], redirect_uri: oauth_google_callback_url)
result = token.get('https://www.googleapis.com/oauth2/v1/userinfo')
binding.pr
info = JSON.parse(result.body)
if info && info["verified_email"]
user = User.find_or_initialize_by_mail(info["email"])
if user.new_record?
# Self-registration off
redirect_to(home_url) && return unless Setting.self_registration?
# Create on the fly
user.firstname, user.lastname = info["name"].split(' ') unless info['name'].nil?
user.firstname ||= info[:given_name]
user.lastname ||= info[:family_name]
user.mail = info["email"]
login = info["email"].match(/(.+)@/) unless info["email"].nil?
user.login = login[1] if login
user.login ||= [user.firstname, user.lastname]*"."
user.random_password
user.register
case Setting.self_registration
when '1'
register_by_email_activation(user) do
onthefly_creation_failed(user)
end
when '3'
register_automatically(user) do
onthefly_creation_failed(user)
end
else
register_manually_by_administrator(user) do
onthefly_creation_failed(user)
end
end
else
# Existing record
if user.active?
successful_authentication(user)
else
account_pending
end
end
else
flash[:error] = l(:notice_unable_to_obtain_google_credentials)
redirect_to signin_path
end
end
def oauth_client
@client ||= OAuth2::Client.new(settings[:client_id], settings[:client_secret],
site: 'https://accounts.google.com',
authorize_url: '/o/oauth2/auth',
token_url: '/o/oauth2/token')
end
def settings
@settings ||= Setting.plugin_redmine_omniauth_google
end
def scopes
'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile'
end
end
\ No newline at end of file
<p><%= "render with google" %></p>
\ No newline at end of file
<h2>RedmineOmniauthController#omniauth_google</h2>
require File.expand_path('../../test_helper', __FILE__) require File.expand_path('../../test_helper', __FILE__)
#require File.expand_path('../../../lib/helpers/mail_helper', __FILE__)
class RedmineOauthControllerTest < ActionController::TestCase class RedmineOauthControllerTest < ActionController::TestCase
include Helpers::MailHelper include Helpers::MailHelper
......
require File.expand_path('../../test_helper', __FILE__)
class RedmineOmniauthControllerTest < ActionController::TestCase
# Replace this with your real tests.
def test_truth
assert true
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment