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

pulibrary / oawaiver / 11c952aa-d8e8-4073-941a-ba08eee9b0bb

24 Sep 2024 03:41PM UTC coverage: 70.281% (-28.5%) from 98.795%
11c952aa-d8e8-4073-941a-ba08eee9b0bb

push

circleci

jrgriffiniii
wip

525 of 747 relevant lines covered (70.28%)

9.14 hits per line

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

96.97
/app/models/account.rb
1
# frozen_string_literal: true
2

3
class Account < ApplicationRecord
1✔
4
  ADMIN_ROLE = "ADMIN"
1✔
5
  AUTHENTICATED_ROLE = "LOGGEDIN"
1✔
6
  ANONYMOUS_ROLE = "ANONYMOUS"
1✔
7

8
  validates_presence_of :netid
1✔
9
  validates_uniqueness_of :netid
1✔
10
  delegate :to_s, to: :netid
1✔
11
  devise(:omniauthable, omniauth_providers: [:cas])
1✔
12

13
  def self.roles(netid)
1✔
14
    persisted = Account.find_by_netid(netid)
6✔
15
    return persisted.roles if persisted
6✔
16

17
    [ANONYMOUS_ROLE]
6✔
18
  end
19

20
  def self.from_omniauth(access_token)
1✔
21
    return if access_token.nil?
2✔
22

23
    models = where(provider: access_token.provider, netid: access_token.uid)
1✔
24
    models.first_or_create do |account|
1✔
25
      account.netid = access_token.uid
1✔
26
      account.provider = access_token.provider
1✔
27
      account.role = AUTHENTICATED_ROLE
1✔
28
    end
29
  end
30

31
  def uid
1✔
32
    netid
1✔
33
  end
34

35
  def admin?
1✔
36
    role == ADMIN_ROLE
9✔
37
  end
38

39
  def roles
1✔
40
    values = if netid
3✔
41
               [AUTHENTICATED_ROLE]
2✔
42
             else
43
               [ANONYMOUS_ROLE]
1✔
44
             end
45

46
    values << ADMIN_ROLE if admin?
3✔
47
    values
3✔
48
  end
49

50
  def authenticated?
1✔
51
    roles.include?(AUTHENTICATED_ROLE)
×
52
  end
53

54
  def email
1✔
55
    "#{netid}@princeton.edu"
18✔
56
  end
57
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