Sha256: 3f129eee40d1795b7d43d6b48d7bbed5661109b43119e6fd609a9694ad442edb

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

module UcbRails::LdapPerson
  class Entry

    # include ActiveAttr::Model  <--- doesn't work with 4.0 (mass assign. security)
    include ::ActiveAttr::Attributes
    include ::ActiveAttr::BasicModel
    include ::ActiveAttr::BlockInitialization
    include ::ActiveAttr::MassAssignment

    attribute :uid
    attribute :calnet_id
    attribute :employee_id
    attribute :first_name
    attribute :last_name
    attribute :email
    attribute :phone
    attribute :departments
    attribute :affiliations
    attribute :affiliate_id
    attribute :inactive

    def full_name
      "#{first_name()} #{last_name()}"
    end

    def last_first
      "#{last_name}, #{first_name}"
    end

    def last_first_downcase
      last_first.downcase
    end

    # Currently only used in rspec
    def ==(other)
      uid == other.uid
    end

    class << self

      def new_from_ldap_entry(ldap_entry)
        p ldap_entry.expired?
        new(
          :uid => ldap_entry.uid,
          :calnet_id => ldap_entry.berkeleyedukerberosprincipalstring.first,
          :employee_id => ldap_entry.employeenumber,
          :first_name => ldap_entry.givenname.first,
          :last_name => ldap_entry.sn.first,
          :email => ldap_entry.mail.first,
          :phone => ldap_entry.phone,
          :departments => ldap_entry.berkeleyeduunithrdeptname,
          :affiliations => ldap_entry.berkeleyeduaffiliations,
          :affiliate_id => ldap_entry.berkeleyeduaffid,
          :inactive => ldap_entry.expired? || false
        )
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ucb_rails-0.0.14 app/models/ucb_rails/ldap_person/entry.rb