From 87add5e0039814c3414f46db1dd54c3dd37e6446 Mon Sep 17 00:00:00 2001 From: Jeff Tucker Date: Thu, 17 Jul 2025 13:51:29 -0400 Subject: [PATCH] Hide SSH Keys menu when SSH access is disabled When SSH access is disabled in System Settings (by setting "Enabled Git access protocols" to "Only HTTP(S)"), the SSH Keys menu option should be hidden from user settings since it becomes useless. This change adds a conditional check to only show the SSH Keys menu item when SSH access is enabled in the system configuration. Fixes #20537 --- .../nav/sidebar/_user_settings.html.haml | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 app/views/layouts/nav/sidebar/_user_settings.html.haml diff --git a/app/views/layouts/nav/sidebar/_user_settings.html.haml b/app/views/layouts/nav/sidebar/_user_settings.html.haml new file mode 100644 index 00000000000000..1f19f525539e6e --- /dev/null +++ b/app/views/layouts/nav/sidebar/_user_settings.html.haml @@ -0,0 +1,83 @@ +- if nav_link_matches?(controller: 'user_settings/profiles') + = nav_link(controller: 'user_settings/profiles') do + = link_to user_settings_profile_path, title: _('Profile') do + = sprite_icon('profile') + %span= _('Profile') + +- if nav_link_matches?(controller: 'user_settings/accounts') + = nav_link(controller: 'user_settings/accounts') do + = link_to user_settings_account_path, title: _('Account') do + = sprite_icon('account') + %span= _('Account') + +- if nav_link_matches?(controller: 'user_settings/applications') + = nav_link(controller: 'user_settings/applications') do + = link_to user_settings_applications_path, title: _('Applications') do + = sprite_icon('applications') + %span= _('Applications') + +- if nav_link_matches?(controller: 'user_settings/chat_names') + = nav_link(controller: 'user_settings/chat_names') do + = link_to user_settings_chat_names_path, title: _('Chat') do + = sprite_icon('chat') + %span= _('Chat') + +- if nav_link_matches?(controller: 'user_settings/personal_access_tokens') + = nav_link(controller: 'user_settings/personal_access_tokens') do + = link_to user_settings_personal_access_tokens_path, title: _('Access Tokens') do + = sprite_icon('token') + %span= _('Access Tokens') + +- if nav_link_matches?(controller: 'user_settings/emails') + = nav_link(controller: 'user_settings/emails') do + = link_to user_settings_emails_path, title: _('Emails') do + = sprite_icon('mail') + %span= _('Emails') + +- if nav_link_matches?(controller: 'user_settings/passwords') + = nav_link(controller: 'user_settings/passwords') do + = link_to edit_user_settings_password_path, title: _('Password') do + = sprite_icon('lock') + %span= _('Password') + +- if nav_link_matches?(controller: 'user_settings/notifications') + = nav_link(controller: 'user_settings/notifications') do + = link_to user_settings_notifications_path, title: _('Notifications') do + = sprite_icon('notifications') + %span= _('Notifications') + +- if Gitlab::CurrentSettings.enabled_git_access_protocol != 'http' && nav_link_matches?(controller: 'user_settings/ssh_keys') + = nav_link(controller: 'user_settings/ssh_keys') do + = link_to user_settings_ssh_keys_path, title: _('SSH Keys') do + = sprite_icon('key') + %span= _('SSH Keys') + +- if nav_link_matches?(controller: 'user_settings/gpg_keys') + = nav_link(controller: 'user_settings/gpg_keys') do + = link_to user_settings_gpg_keys_path, title: _('GPG Keys') do + = sprite_icon('key') + %span= _('GPG Keys') + +- if nav_link_matches?(controller: 'user_settings/preferences') + = nav_link(controller: 'user_settings/preferences') do + = link_to user_settings_preferences_path, title: _('Preferences') do + = sprite_icon('preferences') + %span= _('Preferences') + +- if nav_link_matches?(controller: 'user_settings/active_sessions') + = nav_link(controller: 'user_settings/active_sessions') do + = link_to user_settings_active_sessions_path, title: _('Active Sessions') do + = sprite_icon('monitor') + %span= _('Active Sessions') + +- if nav_link_matches?(controller: 'user_settings/authentication_logs') + = nav_link(controller: 'user_settings/authentication_logs') do + = link_to user_settings_authentication_log_path, title: _('Authentication Log') do + = sprite_icon('log') + %span= _('Authentication Log') + +- if nav_link_matches?(controller: 'user_settings/usage_quotas') + = nav_link(controller: 'user_settings/usage_quotas') do + = link_to user_settings_usage_quotas_path, title: _('Usage Quotas') do + = sprite_icon('quota') + %span= _('Usage Quotas') \ No newline at end of file -- GitLab