diff --git a/app/controllers/admin/sessions_controller.rb b/app/controllers/admin/sessions_controller.rb
index a4a286cc1..f4feefc3a 100644
--- a/app/controllers/admin/sessions_controller.rb
+++ b/app/controllers/admin/sessions_controller.rb
@@ -1,27 +1,5 @@
module Admin
class SessionsController < Devise::SessionsController
- def new
- @admin_user = AdminUser.new
- end
-
- def create
- if params[:admin_user].blank?
- @admin_user = AdminUser.new
- flash[:alert] = 'Something went wrong'
- return render :new
- end
-
- @admin_user = AdminUser.find_by(username: params[:admin_user][:username])
- @admin_user ||= AdminUser.new(username: params[:admin_user][:username])
-
- if @admin_user.valid_password?(params[:admin_user][:password])
- sign_in_and_redirect(:admin_user, @admin_user, event: :authentication)
- else
- flash[:alert] = 'Authorization error'
- render :new
- end
- end
-
private
def after_sign_in_path_for(_resource_or_scope)
diff --git a/app/models/admin_user.rb b/app/models/admin_user.rb
index b53d6531a..07686e921 100644
--- a/app/models/admin_user.rb
+++ b/app/models/admin_user.rb
@@ -9,7 +9,8 @@ class AdminUser < User
ROLES = %w(user customer_service admin) # should not match to api_users roles
- devise :database_authenticatable, :trackable, :validatable, :timeoutable
+ devise :database_authenticatable, :trackable, :validatable, :timeoutable,
+ authentication_keys: [:username]
def self.min_password_length
Devise.password_length.min
diff --git a/app/views/admin/sessions/_links.html.erb b/app/views/admin/sessions/_links.html.erb
new file mode 100644
index 000000000..93dadb0d8
--- /dev/null
+++ b/app/views/admin/sessions/_links.html.erb
@@ -0,0 +1,29 @@
+<%- if controller_name != 'sessions' %>
+ <%= link_to "Log in", new_session_path(resource_name) %>
+<% end -%>
+
+<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
+ <%= link_to "Sign up", new_registration_path(resource_name) %>
+<% end -%>
+
+<%- if devise_mapping.recoverable? && controller_name != 'passwords' &&
+ controller_name != 'registrations' %>
+ <%= link_to "Forgot your password?", new_password_path(resource_name) %>
+<% end -%>
+
+<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
+ <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %>
+
+<% end -%>
+
+<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) &&
+ controller_name != 'unlocks' %>
+ <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %>
+<% end -%>
+
+<%- if devise_mapping.omniauthable? %>
+ <%- resource_class.omniauth_providers.each do |provider| %>
+ <%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}",
+ omniauth_authorize_path(resource_name, provider) %>
+ <% end -%>
+<% end -%>
diff --git a/app/views/admin/sessions/new.haml b/app/views/admin/sessions/new.haml
deleted file mode 100644
index d37461c85..000000000
--- a/app/views/admin/sessions/new.haml
+++ /dev/null
@@ -1,15 +0,0 @@
-.row
- .form-signin.col-md-6.center-block.text-center
- %h2.form-signin-heading.text-center Eesti Interneti SA
- %hr
- .form-signin
- = form_for(@admin_user, url: admin_user_session_path, html: {class: 'form-signin'}) do |f|
- = render 'admin/shared/errors', object: f.object
-
- - error_class = f.object.errors.any? ? 'has-error' : ''
- %div{class: error_class}
- = f.text_field :username, class: 'form-control', placeholder: t(:username), required: true
- = f.password_field :password, class: 'form-control',
- autocomplete: 'off', placeholder: t(:password), required: true
- %button.btn.btn-lg.btn-primary.btn-block{:type => 'submit'}= t(:log_in)
-
diff --git a/app/views/admin/sessions/new.html.erb b/app/views/admin/sessions/new.html.erb
new file mode 100644
index 000000000..5e655d9a6
--- /dev/null
+++ b/app/views/admin/sessions/new.html.erb
@@ -0,0 +1,30 @@
+