diff --git a/app/models/user.rb b/app/models/user.rb index 791eb1b574fe29c31a0f2e203e0c4fdf511dc54e..f251df85c9c41310bafeae16a4a2454c2dec5a42 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2104,7 +2104,7 @@ def max_member_access_for_group(group_id) end def terms_accepted? - return true if project_bot? + return true if project_bot? || service_account? accepted_term_id.present? end diff --git a/spec/features/users/terms_spec.rb b/spec/features/users/terms_spec.rb index 5c61843e55870bc8c0da96113e61c74df28c7f0e..cf62ccaf999e20560ae7937d7c837af619b7fa3f 100644 --- a/spec/features/users/terms_spec.rb +++ b/spec/features/users/terms_spec.rb @@ -41,6 +41,21 @@ end end + context 'when user is a service account' do + let(:service_account) { create(:user, :service_account) } + + before do + enforce_terms + end + + it 'auto accepts the terms' do + visit terms_path + + expect(page).not_to have_content('Accept terms') + expect(service_account.terms_accepted?).to be(true) + end + end + context 'when signed in' do let(:user) { create(:user) }