Class: SessionsController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/sessions_controller.rb

Instance Method Summary collapse

Instance Method Details

#callbackObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/sessions_controller.rb', line 25

def callback
	callback_object = OneClick.callback(session[:one_click][:service], { :request => session[:one_click][:request], :params => params })
	
	if callback_object
		id = callback_object[:id]
		data = callback_object[:data]
		access = callback_object[:access]

		service_class = session[:one_click][:service].classify.constantize
		service = service_class.find_by_service_id id

		user = service.user if service

		if !user
			User.create_with_service(session[:one_click][:service], data, access)
		else
			user.send(session[:one_click][:service]).update_access access
			user.send(session[:one_click][:service]).update_data data
		end
		
		OneClick.store_session(session, session[:one_click][:service], callback_object[:access])
		OneClick.store_cookies(cookies, session[:one_click][:service], callback_object[:access])
	end

	redirect_to session[:one_click][:referer]
end

#loginObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/sessions_controller.rb', line 6

def 
	session[:one_click] ||= {}

	session[:one_click][:service] = params[:service]
	session[:one_click][:referer] = referer

	 = OneClick.(session[:one_click][:service], { :callback => url_for(:action => 'callback') })

	if 
		# Store whatever's needed in the session
		session[:one_click][:request] = [:request]
	
		redirect_to [:url]
	else
		session[:one_click] = nil
		redirect_to referer
	end
end

#logoutObject



52
53
54
55
56
57
58
59
60
# File 'app/controllers/sessions_controller.rb', line 52

def logout
	session[:one_click] = nil

	cookies.delete :one_click_service
	cookies.delete :one_click_access_token
	cookies.delete :one_click_access_secret
	
	redirect_to referer
end