1
0
Fork 0

Add action Staffs::ContactNetworksController#index

This commit is contained in:
Alex Kotov 2019-08-18 04:44:32 +05:00
parent 0cb957d3b5
commit e6e979041a
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
9 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,12 @@
# frozen_string_literal: true
class Staffs::ContactNetworksController < ApplicationController
# GET /staff/contact_networks
def index
authorize %i[staff contact_network]
@contact_networks = policy_scope(
ContactNetwork,
policy_scope_class: Staff::ContactNetworkPolicy::Scope,
)
end
end

View File

@ -0,0 +1,15 @@
# frozen_string_literal: true
class Staff::ContactNetworkPolicy < ApplicationPolicy
def index?
account&.superuser?
end
class Scope < Scope
def resolve
return scope.all if account&.superuser?
scope.none
end
end
end

View File

@ -0,0 +1,29 @@
<div class="container">
<%= nav_breadcrumb(
[translate(:staff_services), staff_root_path],
ContactNetwork.model_name.human(count: 0),
) %>
<table class="table">
<thead>
<tr>
<th scope="col">
<%= ContactNetwork.human_attribute_name :nickname %>
</th>
<th scope="col">
<%= ContactNetwork.human_attribute_name :public_name %>
</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<% @contact_networks.each do |contact_network| %>
<tr>
<td scope="row"><%= contact_network.nickname %></td>
<td><%= contact_network.public_name %></td>
</tr>
<% end %>
</tbody>
</table>
</div>

View File

@ -13,5 +13,12 @@
<%= link_to Person.model_name.human(count: 0), staff_people_path %>
</li>
<% end %>
<% if policy(%i[staff contact_network]).index? %>
<li>
<%= link_to ContactNetwork.model_name.human(count: 0),
staff_contact_networks_path %>
</li>
<% end %>
</ul>
</div>

View File

@ -4,6 +4,9 @@ en:
account:
one: Account
many: Accounts
contact_network:
one: Contact network
many: Contact networks
federal_subject:
one: State
many: States
@ -33,6 +36,10 @@ en:
biography: Bio
avatar: Avatar
person: Person
contact_network:
id: ID
nickname: Nickname
public_name: Public name
federal_subject:
id: ID
regional_office: Regional department

View File

@ -4,6 +4,9 @@ ru:
account:
one: Аккаунт
many: Аккаунты
contact_network:
one: Сеть контактов
many: Сети контактов
federal_subject:
one: Регион
many: Регионы
@ -33,6 +36,10 @@ ru:
biography: Биография
avatar: Аватар
person: Человек
contact_network:
id: ID
nickname: Имя пользователя
public_name: Публичное имя
federal_subject:
id: ID
regional_office: Региональное отделение

View File

@ -48,6 +48,8 @@ Rails.application.routes.draw do
get '/sidekiq', to: redirect('/', status: 307), as: :forbidden_sidekiq
resources :contact_networks, only: :index
resources :accounts, param: :nickname, only: %i[index show]
resources :people, only: %i[index show] do

View File

@ -0,0 +1,7 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Staff::ContactNetworkPolicy do
pending "add some examples to (or delete) #{__FILE__}"
end

View File

@ -0,0 +1,25 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'GET /staff/contact_networks' do
before do
sign_in current_account.user if current_account&.user
create_list :contact_network, rand(1..5)
get '/staff/contact_networks'
end
for_account_types nil, :guest, :usual do
specify do
expect(response).to have_http_status :forbidden
end
end
for_account_types :superuser do
specify do
expect(response).to have_http_status :ok
end
end
end