Class: Fulcrum::Cloudfuji::EventObservers::UserObserver
- Inherits:
-
Cloudfuji::EventObserver
- Object
- Cloudfuji::EventObserver
- Fulcrum::Cloudfuji::EventObservers::UserObserver
- Defined in:
- lib/fulcrum/cloudfuji/event_observers/user_observer.rb
Instance Method Summary collapse
Instance Method Details
#user_added ⇒ Object
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_removed ⇒ Object
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_updated ⇒ Object
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 |