Sha256: 4c117005eaad433567e46dabd8342357b5297feb3cb434faf486b15f60c7dbca

Contents?: true

Size: 1.84 KB

Versions: 9

Compression:

Stored size: 1.84 KB

Contents

module FatFreeCRM
  module Cloudfuji
    module EventObservers
      class UserObserver < ::Cloudfuji::EventObserver
        include FatFreeCRM::Cloudfuji::EventObservers::Base

        def user_added
          data = params['data']
          ido_id = data['ido_id'].to_s

          puts "Adding a new user with incoming data #{params.inspect}"
          puts "Authlogic username column: #{::Authlogic::Cas.cas_username_column}="
          puts "Setting username to: #{ido_id}"

          user = User.unscoped.find_or_create_by_ido_id(ido_id)

          user.email      = data['email']
          user.first_name = user.email.split('@').first
          user.last_name  = user.email.split('@').last
          user.username   = data['email']
          user.deleted_at = nil
          user.send("#{::Authlogic::Cas.cas_username_column}=".to_sym, ido_id)

          puts user.inspect

          user.save!
        end

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

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

          # TODO: Disable the user instead of destroying them (to prevent data loss)
          user.try(:destroy)
        end

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

          data = params['data']
          user = User.unscoped.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
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ffcrm_cloudfuji-0.4.1 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.3.1 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.3.0 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.2.11 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.2.10 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.2.9 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.2.8 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.2.7 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb
ffcrm_cloudfuji-0.2.6 lib/fat_free_crm/cloudfuji/event_observers/user_observer.rb