Sha256: 64bd36d2b2d2fec20add281b19bb0265c670c7d34a148925da1d38a7e235ca9c

Contents?: true

Size: 1.61 KB

Versions: 16

Compression:

Stored size: 1.61 KB

Contents

module UcbRailsUser::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 :student_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)
        new(
          :uid => ldap_entry.uid,
          :calnet_id => ldap_entry.berkeleyedukerberosprincipalstring.first,
          :employee_id => ldap_entry.attributes[:berkeleyeduucpathid]&.first,
          :student_id => ldap_entry.berkeleyedustuid,
          :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.first,
          :inactive => ldap_entry.expired? || false
        )
      end

    end

  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ucb_rails_user-4.1.1 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.1.0 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.7 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.6 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.5 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.4 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.3 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.2 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.1 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.0 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-3.0.2 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-4.0.0.beta1 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-3.0.1 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-3.0.0 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-2.0.1 app/models/ucb_rails_user/ldap_person/entry.rb
ucb_rails_user-2.0.0 app/models/ucb_rails_user/ldap_person/entry.rb