Class: Fulcrum::Cloudfuji::EventObservers::UserObserver

Inherits:
Cloudfuji::EventObserver
  • Object
show all
Defined in:
lib/fulcrum/cloudfuji/event_observers/user_observer.rb

Instance Method Summary collapse

Instance Method Details

#user_addedObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/fulcrum/cloudfuji/event_observers/user_observer.rb', line 6

def user_added
  puts "Adding a new user with incoming data #{params.inspect}"
  puts "Devise username column: #{::Devise.cas_username_column}="
  puts "Setting username to: #{params['data'].try(:[], 'ido_id')}"

  user = User.send("find_or_initialize_by_#{::Devise.cas_username_column}".to_sym, params['data'].try(:[], 'ido_id'))
  user.email = params['data'].try(:[], 'email')
  user.name = user.email.split('@').first
  user.initials = user.email[0..1].upcase
  user.active = true
  user.save

  # Add the new user to all existing projects
  Project.all.each(&:add_all_users!)
end

#user_removedObject



22
23
24
25
26
27
28
# File 'lib/fulcrum/cloudfuji/event_observers/user_observer.rb', line 22

def user_removed
  puts "Removing user based on incoming data #{params.inspect}"
  puts "Devise username column: #{::Devise.cas_username_column}="

  user = User.find_by_ido_id(params['data']['ido_id'])
  user.update_attribute(:active, false)
end

#user_updatedObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/fulcrum/cloudfuji/event_observers/user_observer.rb', line 30

def user_updated
  puts "Updating user based on incoming data #{params.inspect}"
  puts "Devise username column: #{::Devise.cas_username_column}="

  data = params['data']
  user = User.find_by_ido_id(data['ido_id'])

  if user
    # Re-use the CAS login method to set all the extra attributes we
    # care about (first_name, last_name, email, local, timezone,
    # etc.)
    user.cloudfuji_extra_attributes(data)
    user.save
  end
end