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

pulibrary / tigerdata-app / 5205f704-d89d-4c43-8cfa-9e6783edc33a

29 Feb 2024 07:04PM UTC coverage: 60.206% (-29.9%) from 90.092%
5205f704-d89d-4c43-8cfa-9e6783edc33a

push

circleci

jrgriffiniii
Ensuring that the storage usage and storage capacity is retrieved for
Mediaflux Projects and rendered on the "contents" Project View

11 of 34 new or added lines in 4 files covered. (32.35%)

451 existing lines in 34 files now uncovered.

935 of 1553 relevant lines covered (60.21%)

9.47 hits per line

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

84.06
/app/models/user.rb
1
# frozen_string_literal: true
2

3
require "csv"
1✔
4
class User < ApplicationRecord
1✔
5
  # Include default devise modules. Others available are:
6
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
7
  devise :rememberable, :omniauthable
1✔
8

9
  has_many :user_jobs, dependent: :destroy
1✔
10

11
  USER_REGISTRATION_LIST = Rails.root.join("data", "user_registration_list.csv")
1✔
12

13
  def self.from_cas(access_token)
1✔
14
    user = User.find_by(provider: access_token.provider, uid: access_token.uid)
9✔
15
    if user.present? && user.given_name.nil? # fix any users that do not have the name information loaded
9✔
16
      user.initialize_name_values(access_token.extra)
7✔
17
      user.save
7✔
18
    end
19
    user
9✔
20
  end
21

22
  def self.all_users
1✔
23
    User.all.map(&:uid)
23✔
24
  end
25

26
  def self.sponsor_users
1✔
27
    users = if Rails.env.development? || Rails.env.staging?
25✔
28
              User.where(eligible_sponsor: true).or(User.where(superuser: true))
1✔
29
            else
30
              User.where(eligible_sponsor: true)
24✔
31
            end
32
    users.map(&:uid)
25✔
33
  end
34

35
  # All users who are eligible to be Data Managers
36
  def self.manager_users
1✔
37
    users = if Rails.env.development? || Rails.env.staging?
23✔
38
              User.where(eligible_manager: true).or(User.where(superuser: true))
×
39
            else
40
              User.where(eligible_manager: true)
23✔
41
            end
42
    users.map(&:uid)
23✔
43
  end
44

45
  def clear_mediaflux_session(session)
1✔
46
    @mediaflux_session = nil
×
47
    session[:mediaflux_session] = nil
×
48
  end
49

50
  def mediaflux_from_session(session)
1✔
51
    if session[:mediaflux_session].blank?
×
52
      session[:mediaflux_session] = mediaflux_session
×
53
    else
54
      @mediaflux_session = session[:mediaflux_session]
×
55
    end
56
  end
57

58
  def mediaflux_session
1✔
59
    @mediaflux_session ||= begin
4✔
60
                            logon_request = Mediaflux::Http::LogonRequest.new
4✔
UNCOV
61
                            logon_request.resolve
×
UNCOV
62
                            logon_request.session_token
×
63
                          end
64
  end
65

66
  def terminate_mediaflux_session
1✔
67
    return if @mediaflux_session.nil? # nothing to terminate
×
68

69
    Mediaflux::Http::LogoutRequest.new(session_token: @mediaflux_session).response_body
×
70
    @mediaflux_session = nil
×
71
  end
72

73
  def initialize_name_values(extra_cas_info)
1✔
74
    self.given_name = extra_cas_info.givenname
7✔
75
    self.family_name =  extra_cas_info.sn
7✔
76
    self.display_name = extra_cas_info.pudisplayname
7✔
77
  end
78

79
  def display_name_safe
1✔
80
    return uid if display_name.blank?
81✔
81

82
    display_name
79✔
83
  end
84

85
  def eligible_sponsor?
1✔
86
    return true if superuser
74✔
87
    super
69✔
88
  end
89

90
  def eligible_manager?
1✔
91
    return true if superuser
14✔
92
    super
13✔
93
  end
94

95
  def eligible_sysadmin?
1✔
96
    return true if superuser || sysadmin
32✔
97
  end
98

99
  def self.csv_data
1✔
100
    CSV.parse(File.read(USER_REGISTRATION_LIST), headers: true)
5✔
101
  end
102

103
  def self.load_registration_list
1✔
104
    User.csv_data.each do |line|
6✔
105
      user = User.find_by(uid: line["uid"]) || User.new
204✔
106
      user.uid = line["uid"]
204✔
107
      user.family_name = line["family_name"]
204✔
108
      user.display_name = line["display_name"]
204✔
109
      user.email = user.uid + "@princeton.edu"
204✔
110
      # If we don't say that this is a cas user, they won't be able to log in with CAS
111
      user.provider = "cas"
204✔
112
      user.eligible_sponsor = line["eligible_sponsor"] == "TRUE"
204✔
113
      user.eligible_manager = line["eligible_manager"] == "TRUE"
204✔
114
      user.superuser = line["superuser"] == "TRUE"
204✔
115
      user.sysadmin = line["sysadmin"] == "TRUE"
204✔
116
      user.save
204✔
117
    end
118
  end
119
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