carlo (owner)

Revisions

gist: 118618 Download_button fork
public
Public Clone URL: git://gist.github.com/118618.git
Embed All Files: show embed
Ruby #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class UserSessionsController < ApplicationController
 
  # ...
 
  def rpx_token
    data = RPXNow.user_data( params[:token], RPX_API_KEY )
    
    if data.blank?
      flash[:error] = I18n.t("auth.failed")
      redirect_to(new_user_session_path)
    else
      session = UserSession.find
 
      # Fresh log in
      if session.blank?
        rpx_mapping_id = data[:id] unless data[:id] == "0"
        
        @user = User.find_or_initialize_by_id( rpx_mapping_id )
 
        if @user.new_record?
          @user.name = data[:name] || data[:displayName] || data[:nickName]
          @user.rpx = true
          @user.save!
        end
 
        RPXNow.map( data[:identifier], @user.id, RPX_API_KEY )
        session = UserSession.new(@user)
        session.save
 
        flash[:notice] = I18n.t("auth.logged_in")
        redirect_to( user_path(session.user) )
        
      # User already logged in
      else
        user = session.user
        RPXNow.map( data[:identifier], user.id, RPX_API_KEY )
        user.rpx = true
        user.save
        
        flash[:notice] = I18n.t("auth.rpx_mapped")
        redirect_to( edit_user_path(session.user) )
      end
 
    end
  end
 
end