Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F1969917
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, May 17, 10:59 AM
Size
9 KB
Mime Type
text/x-diff
Expires
Tue, May 19, 10:59 AM (1 d, 46 m)
Engine
blob
Format
Raw Data
Handle
385317
Attached To
rARCHIVING archiving
View Options
diff --git a/app/controllers/admin/hosts_controller.rb b/app/controllers/admin/hosts_controller.rb
index e5c3c1d..70f45ff 100644
--- a/app/controllers/admin/hosts_controller.rb
+++ b/app/controllers/admin/hosts_controller.rb
@@ -1,62 +1,67 @@
class Admin::HostsController < Admin::BaseController
before_action :fetch_host, only: [:verify, :reject, :set_quota]
# GET /admin/hosts/unverified
def unverified
@hosts = Host.unverified
end
+ # GET /admin/hosts/pending
+ def pending
+ @hosts = Host.where(verified: true).not_baculized
+ end
+
# GET /admin/hosts/rejected
def rejected
@hosts = RejectedHost.order(created_at: :desc)
end
# POST /admin/hosts/1/verify
def verify
@host.verify(current_user.id)
redirect_to unverified_admin_hosts_path
end
# POST /admin/hosts/1/reject
def reject
msg = 'You need to provide a reason' if params[:reason].blank?
msg = 'Host is already verified' if @host.verified?
if msg.blank?
if @host.reject(current_user.id, params[:reason])
flash[:success] = 'Client rejected'
else
flash[:error] = 'Something went wrong'
end
else
flash[:error] = msg
end
redirect_to unverified_admin_hosts_path
end
# PUT /admin/hosts/1/set_quota
def set_quota
@host.quota = case params[:unit]
when 'MB'
params[:quota].to_i * ConfigurationSetting::MEGA_BYTES
when 'GB'
params[:quota].to_i * ConfigurationSetting::GIGA_BYTES
when 'TB'
params[:quota].to_i * ConfigurationSetting::TERA_BYTES
end
if @host.save
flash[:success] = 'Changes saved'
else
flash[:error] = 'Changes not saved'
end
redirect_to admin_client_path(@host.client)
end
private
def fetch_host
@host = Host.find(params[:id])
end
end
diff --git a/app/views/admin/hosts/_host.html.erb b/app/views/admin/hosts/_host.html.erb
index 6356ca7..7a5c4cb 100644
--- a/app/views/admin/hosts/_host.html.erb
+++ b/app/views/admin/hosts/_host.html.erb
@@ -1,16 +1,20 @@
<tr>
<td><%= host.name %></td>
<td><%= host.fqdn %></td>
<td><%= host.first_user.display_name %></td>
<td><%= host.port %></td>
<td><%= I18n.l(host.created_at, format: :long) %></td>
<td>
- <%= link_to 'Verify', verify_admin_host_path(host), method: :post,
- class: "btn btn-success", role: "button",
- data: { confirm: "Client #{host.name} will be ready to be dispatched to Bacula" }
- %>
- <%= link_to 'Reject', '#', class: "btn btn-danger", role: "button",
- data: { toggle: 'modal', target: '#reject-modal',
- id: host.id, name: host.name } %>
+ <% if host.verified? %>
+ <%= host.try(:verifier).try(:username) || 'None' %>
+ <% else %>
+ <%= link_to 'Verify', verify_admin_host_path(host), method: :post,
+ class: "btn btn-success", role: "button",
+ data: { confirm: "Client #{host.name} will be ready to be dispatched to Bacula" }
+ %>
+ <%= link_to 'Reject', '#', class: "btn btn-danger", role: "button",
+ data: { toggle: 'modal', target: '#reject-modal',
+ id: host.id, name: host.name } %>
+ <% end %>
</td>
</tr>
diff --git a/app/views/admin/hosts/pending.html.erb b/app/views/admin/hosts/pending.html.erb
new file mode 100644
index 0000000..77365e1
--- /dev/null
+++ b/app/views/admin/hosts/pending.html.erb
@@ -0,0 +1,24 @@
+<h1>Pending Clients</h1>
+
+<% if @hosts.empty? %>
+ <h3>There are no clients waiting for configuration</h3>
+<% else %>
+ <div class="table-responsive">
+ <table class="table table-striped table-bordered table-condensed">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>FQDN</th>
+ <th>User</th>
+ <th>Port</th>
+ <th>Created At</th>
+ <th>Approved By</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <%= render partial: 'host', collection: @hosts %>
+ </tbody>
+ </table>
+ </div>
+<% end %>
diff --git a/app/views/shared/_admin.html.erb b/app/views/shared/_admin.html.erb
index 367d2c1..18be359 100644
--- a/app/views/shared/_admin.html.erb
+++ b/app/views/shared/_admin.html.erb
@@ -1,61 +1,65 @@
<ul class="nav navbar-nav navbar-right">
<%= content_tag(:li, active_class(admin_path)) do %>
<%= link_to 'Admin', admin_path %>
<% end %>
<%= content_tag(:li, active_class(admin_clients_path)) do %>
<%= link_to 'Clients', admin_clients_path %>
<% end %>
<%= content_tag(:li,
{ class: ['dropdown',
active_class([obsolete_admin_clients_path,
unverified_admin_hosts_path,
+ pending_admin_hosts_path,
rejected_admin_hosts_path])[:class]].join(' ')}) do %>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Inactive Clients <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li>
<%= link_to 'Obsolete Clients', obsolete_admin_clients_path %>
</li>
<li>
<%= link_to 'Unverified Clients', unverified_admin_hosts_path %>
</li>
<li>
+ <%= link_to 'Pending Clients', pending_admin_hosts_path %>
+ </li>
+ <li>
<%= link_to 'Rejected Clients', rejected_admin_hosts_path %>
</li>
</ul>
<%#= content_tag(:li, active_class(unverified_admin_hosts_path, true)) do %>
<%#= link_to 'Unverified Clients', unverified_admin_hosts_path %>
<% end %>
<%= content_tag(:li, { class: "dropdown #{active_class(admin_users_path)[:class]}" }) do %>
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Users <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li>
<%= link_to 'All Users', admin_users_path %>
</li>
<li class="divider"></li>
<li>
<%= link_to 'ViMa Users', admin_users_path(type: :vima) %>
</li>
<li>
<%= link_to 'Institutional Users', admin_users_path(type: :institutional) %>
</li>
<li>
<%= link_to 'Admins', admin_users_path(type: :admin) %>
</li>
<li>
</ul>
<% end %>
<%= content_tag(:li, active_class(admin_faqs_path)) do %>
<%= link_to 'FAQ', admin_faqs_path %>
<% end %>
<%= content_tag(:li, active_class(admin_pools_path)) do %>
<%= link_to 'Pools', admin_pools_path %>
<% end %>
<%= content_tag(:li, active_class(admin_settings_path)) do %>
<%= link_to 'Settings', admin_settings_path %>
<% end %>
</ul>
diff --git a/config/routes.rb b/config/routes.rb
index 82f3dbb..d461f67 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,136 +1,137 @@
Rails.application.routes.draw do
root 'application#index'
get 'faq' => 'application#faq'
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 :invitations, only: [:create]
get '/invitations/:host_id/:verification_code/accept' => 'invitations#accept',
as: :accept_invitation
resources :hosts, only: [:new, :create, :show, :edit, :update, :destroy] do
member do
post :submit_config
post :disable
post :regenerate_token
delete :revoke
get :fd_config
end
collection do
get :fetch_vima_hosts, to: 'hosts#fetch_vima_hosts', as: :fetch_vima
end
resources :simple_configs, only: [:new, :create]
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
resources :users, only: :show do
member do
patch :generate_token
end
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
collection do
get :obsolete
end
end
resources :hosts, only: [] do
collection do
get :unverified
get :rejected
+ get :pending
end
member do
post :verify
post :reject
put :set_quota
end
end
resources :users, only: [:index, :new, :create, :show, :edit, :update] do
member do
patch :ban
patch :unban
patch :revoke_admin
patch :grant_admin
end
end
resources :pools, only: [:index, :new, :create]
resources :faqs
end
namespace :api, defaults: { format: :json } do
scope module: :v1, constraints: ApiVersion.new(version: 1, default: true) do
resources :clients, only: [:index, :show] do
member do
post :backup
post :restore
end
end
end
end
end
Event Timeline
Log In to Comment