• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / 9ce7ae97-c580-46da-9978-ae1329cbf081

05 Jun 2025 07:32PM UTC coverage: 85.888% (-0.004%) from 85.892%
9ce7ae97-c580-46da-9978-ae1329cbf081

Pull #1540

circleci

carolyncole
Fixed Storage size tab interactions
Also allow the custom size and unit to be saved by allowing the parameters
Pull Request #1540: Fixed Storage size tab interactions

4 of 4 branches covered (100.0%)

2970 of 3458 relevant lines covered (85.89%)

584.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

73.08
/app/services/princeton_users.rb
1
# frozen_string_literal: true
2
class PrincetonUsers
1✔
3
  CHARS_AND_NUMS =  ('a'..'z').to_a + (0..9).to_a
1✔
4

5
  class << self
1✔
6

7
    def user_list
1✔
8
      Rails.cache.fetch("princeton_user_list", expires_in: 6.hours) do
48✔
9
        @user_list = User.all.map { |user| { uid: user.uid, name: user.display_name } }
96✔
10
      end
11
    end
12

13
    def create_users_from_ldap(current_uid_start: "", ldap_connection: default_ldap_connection)
1✔
14
      CHARS_AND_NUMS.each do |char|
3✔
15
        filter =(~ Net::LDAP::Filter.eq( "pustatus", "guest" )) & Net::LDAP::Filter.eq("uid", "#{current_uid_start}#{char}*")
108✔
16
        people = ldap_connection.search(filter:, attributes: [:pudisplayname, :givenname, :sn, :uid, :edupersonprincipalname]); 
108✔
17
        if ldap_connection.get_operation_result.message == "Success"
108✔
18
          people.each{|person| user_from_ldap(person)}
109✔
19
        else
20
          create_users_from_ldap(current_uid_start: "#{current_uid_start}#{char}", ldap_connection:)
1✔
21
        end
22
      end
23
    end
24

25
    def user_from_ldap(ldap_person)
1✔
26
      uid = ldap_person[:uid].first.downcase
2✔
27
      current_entries = User.where(uid:)
2✔
28
      if current_entries.empty?
2✔
29
        User.create(uid: , display_name: ldap_person[:pudisplayname].first, 
2✔
30
                    family_name: ldap_person[:sn].first, given_name: ldap_person[:givenname].first, 
31
                    email: ldap_person[:edupersonprincipalname].first)
32
      else
33
        user = current_entries.first
×
34
        if user.display_name.blank?
×
35
          user.display_name = ldap_person[:pudisplayname].first
×
36
          user.family_name = ldap_person[:sn].first
×
37
          user.given_name = ldap_person[:givenname].first
×
38
          user.save
×
39
        end
40
      end
41
    end
42

43
    def default_ldap_connection
1✔
44
      @default_ldap_connection ||= Net::LDAP.new host: "ldap.princeton.edu", base: "o=Princeton University,c=US", port: 636,
×
45
                                                  encryption: {
46
                                                    method: :simple_tls,
47
                                                    tls_options: OpenSSL::SSL::SSLContext::DEFAULT_PARAMS
48
                                                  }
49
    end
50
  end
51
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc