Module: PrxAuth::Rails::UserInfo
- Included in:
- Controller
- Defined in:
- lib/prx_auth/rails/ext/controller/user_info.rb
Constant Summary collapse
- PRX_USER_INFO_SESSION_KEY =
"prx.auth.info".freeze
- PRX_ADMIN_SCOPE =
"prxadmin".freeze
Instance Method Summary collapse
- #current_user ⇒ Object
- #current_user_access?(scope = :read_private) ⇒ Boolean
- #current_user_admin? ⇒ Boolean
- #current_user_apps ⇒ Object
- #current_user_info ⇒ Object
- #current_user_name ⇒ Object
- #current_user_wildcard? ⇒ Boolean
Instance Method Details
#current_user ⇒ Object
9 10 11 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 9 def current_user prx_auth_token end |
#current_user_access?(scope = :read_private) ⇒ Boolean
13 14 15 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 13 def current_user_access?(scope = :read_private) current_user&.(scope) || current_user&.(scope)&.any? end |
#current_user_admin? ⇒ Boolean
42 43 44 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 42 def current_user_admin? current_user&.scopes&.include?(PRX_ADMIN_SCOPE) end |
#current_user_apps ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 28 def current_user_apps apps = (current_user_info.try(:[], "apps") || []).map do |name, url| label = name.sub(/^https?:\/\//, "").sub(/\..+/, "").capitalize ["PRX #{label}", url] end # only return entire list in development if ::Rails.env.production? || ::Rails.env.staging? apps.to_h.select { |k, v| v.match?(/\.(org|tech)/) } else apps.to_h end end |
#current_user_info ⇒ Object
17 18 19 20 21 22 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 17 def current_user_info session[PRX_USER_INFO_SESSION_KEY] ||= begin info = fetch_userinfo info.slice("name", "preferred_username", "email", "image_href", "apps") end end |
#current_user_name ⇒ Object
24 25 26 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 24 def current_user_name current_user_info["name"] || current_user_info["preferred_username"] || current_user_info["email"] end |
#current_user_wildcard? ⇒ Boolean
46 47 48 |
# File 'lib/prx_auth/rails/ext/controller/user_info.rb', line 46 def current_user_wildcard? current_user&.(:read_private) end |