Skip to content

Commit 9c23475

Browse files
committed
Cleanup
1 parent 82bc3d8 commit 9c23475

7 files changed

Lines changed: 34 additions & 38 deletions

File tree

docker-compose.portals.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,6 @@ services:
142142
- DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
143143
- CPI_API_GW_BASE_URL=http://localhost:4567/
144144
- CMS_IDM_OAUTH_URL=http://localhost:4567/
145-
- IDP_ID_ME_HOST=api.idmelabs.com
146-
- IDP_ID_ME_CLIENT_ID=925bb2985ccf623114359caa76228919
147145
- RUBY_YJIT_ENABLE=1
148146
- ENV=local
149147
- NEW_RELIC_MONITOR_MODE=false

dpc-portal/app/controllers/application_controller.rb

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,25 @@ def sign_in(user, csp)
3030
session[:csp] = csp
3131
end
3232

33+
private
34+
35+
def check_user_verification
36+
return unless current_user&.rejected?
37+
38+
render(Page::Utility::AccessDeniedComponent.new(failure_code: "verification.#{current_user.verification_reason}"))
39+
end
40+
41+
def tos_accepted
42+
return if @organization.terms_of_service_accepted_by.present?
43+
44+
if current_user.ao?(@organization)
45+
render(Page::Organization::TosFormComponent.new(@organization))
46+
else
47+
flash[:notice] = 'Organization is not ready for credential management'
48+
redirect_to organizations_path
49+
end
50+
end
51+
3352
def url_for_logout(csp)
3453
case csp
3554
when :id_me.to_s
@@ -62,25 +81,6 @@ def url_for_id_me_logout
6281
redirect_uri: "#{root_url}oauth/logged_out" }.to_query)
6382
end
6483

65-
private
66-
67-
def check_user_verification
68-
return unless current_user&.rejected?
69-
70-
render(Page::Utility::AccessDeniedComponent.new(failure_code: "verification.#{current_user.verification_reason}"))
71-
end
72-
73-
def tos_accepted
74-
return if @organization.terms_of_service_accepted_by.present?
75-
76-
if current_user.ao?(@organization)
77-
render(Page::Organization::TosFormComponent.new(@organization))
78-
else
79-
flash[:notice] = 'Organization is not ready for credential management'
80-
redirect_to organizations_path
81-
end
82-
end
83-
8484
# rubocop:disable Metrics/AbcSize
8585
def check_session_length
8686
session[:logged_in_at] = Time.now if session[:logged_in_at].nil?

dpc-portal/app/controllers/invitations_controller.rb

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,11 @@ def confirm_cd
5454
end
5555

5656
# Everybody
57+
# rubocop:disable Metrics/AbcSize
5758
def register
58-
return redirect_to organization_invitation_url(@organization, @invitation) unless verification_complete?
59+
unless session["invitation_status_#{@invitation.id}"] == 'verification_complete'
60+
return redirect_to organization_invitation_url(@organization, @invitation)
61+
end
5962

6063
return unless create_link
6164

@@ -69,18 +72,19 @@ def register
6972
rescue UserInfoServiceError => e
7073
handle_user_info_service_error(e, 2)
7174
end
75+
# rubocop:enable Metrics/AbcSize
7276

7377
def login
7478
login_session
7579
Rails.logger.info(['User began login flow',
7680
{ actionContext: LoggingConstants::ActionContext::Registration,
7781
actionType: LoggingConstants::ActionType::BeginLogin,
7882
invitation: @invitation.id }])
79-
csp_config = CspConfig.for(:id_me)
83+
csp_config = CspConfig.for(session[:csp])
8084
url = URI::HTTPS.build(host: csp_config.host,
8185
path: '/oauth/authorize',
8286
query: { client_id: csp_config.identifier,
83-
redirect_uri: "#{my_protocol_host}/auth/id_me/callback",
87+
redirect_uri: "#{my_protocol_host}/auth/#{csp_config.code}/callback",
8488
response_type: 'code',
8589
scope: 'openid http://idmanagement.gov/ns/assurance/ial/2/aal/2',
8690
nonce: @nonce,
@@ -106,10 +110,6 @@ def set_idp_token
106110

107111
private
108112

109-
def verification_complete?
110-
session["invitation_status_#{@invitation.id}"] == 'verification_complete'
111-
end
112-
113113
def invitation_matches_user
114114
user_info = UserInfoService.new.user_info(session)
115115
return if render_bad_invitation?(user_info)
@@ -213,8 +213,8 @@ def create_ao_org_link
213213
def user
214214
user_info = UserInfoService.new.user_info(session)
215215
find_or_create_user(user_info)
216-
@csp = Csp.find_by(name: @user.provider)
217-
csp_user = CspUser.find_or_create_by!(user: @user, csp: @csp, uuid: user_info['sub'])
216+
csp = Csp.find_by(name: @user.provider)
217+
csp_user = CspUser.find_or_create_by!(user: @user, csp:, uuid: user_info['sub'])
218218

219219
# Update emails based upon the latest information in user info.
220220
new_emails = user_info['all_emails'] || user_info['emails'] || user_info['emails_confirmed']
@@ -255,9 +255,7 @@ def assign_user_attributes(user_to_create, user_info)
255255
user_to_create.family_name = user_info['family_name']
256256
user_to_create.pac_id = session.delete(:user_pac_id)
257257

258-
# For now we force login.gov, this will have to change once we support multi-CSP.
259-
# TODO: parametrize on provider -acw
260-
user_to_create.provider = session[:csp] || 'id_me'
258+
user_to_create.provider = session[:csp]
261259
user_to_create.uid = user_info['sub']
262260
end
263261

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
<%# TODO: parametrize on provider -acw %>
2-
<%= render(Page::Session::LoginComponent.new(omniauth_authorize_path(:id_me))) %>
1+
<%= render(Page::Session::LoginComponent.new(omniauth_authorize_path(session[:csp]))) %>

dpc-portal/config/environments/test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,5 @@
7070
end
7171
ENV['CPI_API_GW_BASE_URL'] = 'https://val.cpiapi.cms.gov/'
7272
ENV['CMS_IDM_OAUTH_URL'] = 'https://impl.idp.idm.cms.gov/'
73+
ENV['IDP_LOGIN_DOT_GOV_HOST'] = 'idp.int.identitysandbox.gov'
7374
ENV['IDP_ID_ME_HOST'] = 'api.idmelabs.com'

dpc-portal/spec/jobs/verify_resource_health_job_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585

8686
context 'not connected to AWS' do
8787
it 'should ignore connection error and move on gracefully' do
88-
stub_request(:get, 'https://api.idmelabs.com').to_return(status: 200)
88+
stub_request(:get, 'https://idp.int.identitysandbox.gov').to_return(status: 200)
8989

9090
expect(mock_dpc_client).to receive(:healthcheck)
9191
expect(mock_dpc_client).to receive(:response_successful?).and_return(true).twice
@@ -149,7 +149,7 @@ def expect_cpi(auth_health: true, api_health: true, metric: 1)
149149
end
150150

151151
def expect_idp(site_status: 200, metric: 1)
152-
stub_request(:get, 'https://api.idmelabs.com').to_return(status: site_status)
152+
stub_request(:get, 'https://idp.int.identitysandbox.gov').to_return(status: site_status)
153153
expect_put_metric('PortalConnectedToIdp', metric)
154154
end
155155

dpc-portal/spec/requests/invitations_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@
877877
end
878878
end
879879

880-
def log_in(template = user_info_template, provider: 'login_dot_gov')
880+
def log_in(template: user_info_template, provider: 'login_dot_gov')
881881
OmniAuth.config.test_mode = true
882882
OmniAuth.config.add_mock(provider.to_sym,
883883
{ uid: template['sub'],

0 commit comments

Comments
 (0)