diff --git a/app/views/devise/sessions/new.html.haml b/app/views/devise/sessions/new.html.haml
index fa2460518fc26551f1dada32a03f18e4a99f9a92..89e4e229ac0dd3d1b5c91d65b03f037a23cc79ec 100644
--- a/app/views/devise/sessions/new.html.haml
+++ b/app/views/devise/sessions/new.html.haml
@@ -1,6 +1,18 @@
 %div
-  = render 'devise/shared/signin_box'
+  - if signin_enabled? || ldap_enabled?
+    = render 'devise/shared/signin_box'
 
-  - if signup_enabled?
+  -# Omniauth fits between signin/ldap signin and signup and does not have a surrounding box
+  - if Gitlab.config.omniauth.enabled && devise_mapping.omniauthable?
+    .clearfix.prepend-top-20
+      = render 'devise/shared/omniauth_box'
+
+  -# Signup only makes sense if you can also sign-in
+  - if signin_enabled? && signup_enabled?
     .prepend-top-20
       = render 'devise/shared/signup_box'
+
+  -# Show a message if none of the mechanisms above are enabled
+  - if !signin_enabled? && !ldap_enabled? && !(Gitlab.config.omniauth.enabled && devise_mapping.omniauthable?)
+    %div
+      No authentication methods configured.
diff --git a/app/views/devise/shared/_omniauth_box.html.haml b/app/views/devise/shared/_omniauth_box.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..4cd1c303b2292e8e1aa53a91e9f457cda0a6eec1
--- /dev/null
+++ b/app/views/devise/shared/_omniauth_box.html.haml
@@ -0,0 +1,10 @@
+%p
+  %span.light
+    Sign in with  
+  - providers = additional_providers
+  - providers.each do |provider|
+    %span.light
+      - if default_providers.include?(provider)
+        = link_to authbutton(provider, 32), omniauth_authorize_path(resource_name, provider)
+      - else
+        = link_to provider.to_s.titleize, omniauth_authorize_path(resource_name, provider), class: "btn"
diff --git a/app/views/devise/shared/_signin_box.html.haml b/app/views/devise/shared/_signin_box.html.haml
index 805cf816231f6c694728864e0e02b012d39d6887..8faa6398a60bfd2ed7e874464025f8043d0434fb 100644
--- a/app/views/devise/shared/_signin_box.html.haml
+++ b/app/views/devise/shared/_signin_box.html.haml
@@ -24,19 +24,3 @@
 
     - elsif signin_enabled?
       = render 'devise/sessions/new_base'
-    - else
-      %div
-        No authentication methods configured.
-
-- if Gitlab.config.omniauth.enabled && devise_mapping.omniauthable?
-  .clearfix.prepend-top-20
-    %p
-      %span.light
-        Sign in with  
-      - providers = additional_providers
-      - providers.each do |provider|
-        %span.light
-          - if default_providers.include?(provider)
-            = link_to authbutton(provider, 32), omniauth_authorize_path(resource_name, provider)
-          - else
-            = link_to provider.to_s.titleize, omniauth_authorize_path(resource_name, provider), class: "btn"
\ No newline at end of file