diff --git a/app/controllers/clients_controller.rb b/app/controllers/clients_controller.rb
index 3d703b0..de975eb 100644
--- a/app/controllers/clients_controller.rb
+++ b/app/controllers/clients_controller.rb
@@ -1,137 +1,154 @@
 class ClientsController < ApplicationController
   before_action :require_logged_in
   before_action :fetch_client, only: [:show, :jobs, :logs, :stats, :users, :restore, :run_restore,
-                                      :restore_selected]
+                                      :restore_selected, :remove_user]
   before_action :fetch_logs, only: [:logs]
 
   # GET /clients
   # POST /clients
   def index
     @client_ids = Client.for_user(current_user.id).pluck(:ClientId)
     @clients = Client.where(ClientId: @client_ids).includes(:jobs)
     @hosts = current_user.hosts.not_baculized
     fetch_jobs_info
     get_charts
   end
 
   # GET /clients/1
   def show
     @schedules = @client.host.job_templates.map(&:schedule)
     @filesets = @client.host.job_templates.map(&:fileset)
   end
 
   # GET /clients/1/jobs
   def jobs
     @jobs = @client.recent_jobs.page(params[:page])
   end
 
   # GET /clients/1/logs
   def logs; end
 
   # GET /clients/1/stats
   # POST /clients/1/stats
   def stats
     get_charts
   end
 
   # GET /clients/1/users
   def users
     @users = @client.host.users
   end
 
+  # DELETE /clients/1/user
+  def remove_user
+    user = @client.host.users.find(params[:user_id])
+    if @client.host.users.delete(user)
+      flash[:success] =
+        if @client.manually_inserted?
+          'User successfully removed'
+        else
+          'User must be removed from the VM\'s list form your VM provider too (ViMa or Okeanos).'
+        end
+    else
+      flash[:alert] = 'User not removed, something went wrong'
+    end
+
+    redirect_to users_client_path(@client)
+  end
+
   # GET /clients/1/restore
   def restore
     return if @client.is_backed_up?
 
     flash[:error] = 'Can not issue a restore for this client'
     redirect_to client_path(@client)
   end
 
   # POST /clients/1/run_restore
   def run_restore
     @location = params[:restore_location].blank? ? '/tmp/bacula_restore' : params[:restore_location]
     fileset = params[:fileset]
     restore_point = fetch_restore_point
 
     if params[:commit] == 'Restore All Files'
       if @location.nil? || fileset.nil? || !@client.host.restore(fileset, @location, restore_point)
         flash[:error] = 'Something went wrong, try again later'
       else
         flash[:success] =
           "Restore job issued successfully, files will be soon available in #{@location}"
       end
       render js: "window.location = '#{client_path(@client)}'"
     else
       session[:job_ids] = @client.get_job_ids(fileset, restore_point)
       Bvfs.new(@client, session[:job_ids]).update_cache
       render 'select_files'
     end
   end
 
   # POST /clients/1/restore_selected
   def restore_selected
     Bvfs.new(@client, session[:job_ids]).restore_selected_files(params[:files], params[:location])
     session.delete(:job_ids)
     flash[:success] =
       "Restore job issued successfully, files will be soon available in #{params[:location]}"
     redirect_to client_path(@client)
   end
 
   # GET /clients/1/tree?id=1
   def tree
     @client = Client.for_user(current_user.id).find(params[:client_id])
     bvfs = Bvfs.new(@client, session[:job_ids])
     pathid = params[:id].to_i
 
     if pathid.nonzero?
       bvfs.fetch_dirs(pathid)
     else
       bvfs.fetch_dirs
     end
 
     tree = bvfs.extract_dir_id_and_name.map do |id, name|
       { id: id, text: name, state: { checkbox_disabled: true }, children: true }
     end
 
     if pathid.nonzero?
       bvfs.fetch_files(pathid)
       bvfs.extract_file_id_and_name.each do |id, name|
         tree << { id: id, text: name, type: 'file' }
       end
     end
 
     render json: tree
   end
 
   private
 
   def fetch_client
     @client = Client.for_user(current_user.id).find(params[:id])
     @client_ids = [@client.id]
   end
 
   def fetch_jobs_info
     @stats = JobStats.new(@client_ids)
   end
 
   def get_charts
     days_ago = params.fetch(:days_back, 7).to_i rescue 7
     @job_status = ChartGenerator.job_statuses(@client_ids, days_ago)
     @job_stats = ChartGenerator.job_stats(@client_ids, days_ago - 1)
   end
 
   def fetch_restore_point
     if params['restore_time(4i)'].blank? || params['restore_time(5i)'].blank? ||
         params[:restore_date].blank?
       return nil
     end
     restore_point =
       "#{params[:restore_date]} #{params['restore_time(4i)']}:#{params['restore_time(5i)']}:00"
     begin
       DateTime.strptime(restore_point, '%Y-%m-%d %H:%M:%S')
     rescue
       return nil
     end
     restore_point
   end
 end
diff --git a/app/views/clients/_user.html.erb b/app/views/clients/_user.html.erb
index 9f0bf44..4b94a6a 100644
--- a/app/views/clients/_user.html.erb
+++ b/app/views/clients/_user.html.erb
@@ -1,4 +1,16 @@
 <tr>
   <td><%= user.username %></td>
   <td><%= user.email %></td>
+  <td>
+    <% if @client.manually_inserted? %>
+      <%= link_to remove_user_client_path(@client, user_id: user.id), method: :delete,
+                  class: 'btn btn-default',
+                  data: { confirm: "User #{user.username} will be removed" } do %>
+        <label class="glyphicon glyphicon-ban-circle text-danger"></label>
+        Remove
+      <% end %>
+    <% else %>
+        -
+    <% end %>
+  </td>
 </tr>
diff --git a/app/views/clients/_users.html.erb b/app/views/clients/_users.html.erb
index 35b090a..6e80fac 100644
--- a/app/views/clients/_users.html.erb
+++ b/app/views/clients/_users.html.erb
@@ -1,15 +1,16 @@
 <div class="col-xs-12">
   <div class="table-responsive">
     <table class="table table-striped table-bordered table-condensed">
       <thead>
         <tr>
           <th>Username</th>
           <th>Email</th>
+          <th>Actions</th>
         </tr>
       </thead>
       <tbody>
         <%= render partial: 'user', collection: @users %>
       </tbody>
     </table>
   </div>
 </div>
diff --git a/config/routes.rb b/config/routes.rb
index d652ea1..3b64306 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,93 +1,94 @@
 Rails.application.routes.draw do
   root 'application#index'
   post 'grnet' => 'application#grnet'
   get 'institutional' => 'application#institutional'
   match 'vima', to: 'application#vima', :via => [:get, :post]
   get 'logout' => 'application#logout'
 
   resources :clients, only: [:index, :show] do
     member do
       get :jobs
       get :logs
       get :stats
       post :stats
       get :users
       get :restore
       post :run_restore
       post :restore_selected
+      delete :remove_user
     end
 
     collection do
       post :index
     end
   end
 
   resources :clients, only: [], param: :client_id do
     member do
       get :tree
     end
   end
 
   resources :hosts, only: [:new, :create, :show, :edit, :update, :destroy] do
     member do
       post :submit_config
       post :disable
       delete :revoke
     end
 
     resources :jobs, only: [:new, :create, :show, :edit, :update, :destroy] do
       member do
         patch :toggle_enable
         post :backup_now
       end
     end
 
     resources :filesets, only: [:show, :new, :create, :edit, :update, :destroy]
     resources :schedules, only: [:show, :new, :edit, :create, :update, :destroy]
   end
 
   namespace :admin do
     match '/', to: 'base#index', via: [:get, :post]
 
     get '/login' => 'base#login', as: :login
 
     resources :settings, only: [:index, :new, :create, :edit, :update] do
       member do
         delete :reset
       end
     end
 
     resources :clients, only: [:index, :show] do
       member do
         get :jobs
         get :logs
         get :stats
         post :stats
         get :configuration
         post :disable
         post :block
         post :unblock
         delete :revoke
       end
     end
 
     resources :hosts, only: [:show] do
       collection do
         get :unverified
       end
 
       member do
         post :verify
       end
     end
 
     resources :users, only: [:index, :new, :create, :show, :edit, :update] do
       member do
         patch :ban
         patch :unban
       end
     end
 
     resources :pools, only: [:index, :new, :create, :show, :edit, :update]
   end
 end