From 2b53c09c635291a93de0a78e15c5f29f746d29bb Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Sat, 11 Apr 2020 14:19:01 +0500 Subject: [PATCH] Remove Settings::PassportsController --- .../settings/passports_controller.rb | 57 ------------------- app/policies/settings/passport_policy.rb | 25 -------- app/views/settings/_nav_sidebar.html.erb | 4 -- app/views/settings/passports/_table.html.erb | 35 ------------ app/views/settings/passports/index.html.erb | 23 -------- app/views/settings/passports/new.html.erb | 44 -------------- app/views/settings/passports/show.html.erb | 17 ------ config/locales/nav_tabs/en.yml | 1 - config/locales/nav_tabs/ru.yml | 1 - config/routes.rb | 1 - .../settings/passports/create_spec.rb | 7 --- .../requests/settings/passports/index_spec.rb | 36 ------------ spec/requests/settings/passports/new_spec.rb | 7 --- spec/requests/settings/passports/show_spec.rb | 36 ------------ 14 files changed, 294 deletions(-) delete mode 100644 app/controllers/settings/passports_controller.rb delete mode 100644 app/policies/settings/passport_policy.rb delete mode 100644 app/views/settings/passports/_table.html.erb delete mode 100644 app/views/settings/passports/index.html.erb delete mode 100644 app/views/settings/passports/new.html.erb delete mode 100644 app/views/settings/passports/show.html.erb delete mode 100644 spec/requests/settings/passports/create_spec.rb delete mode 100644 spec/requests/settings/passports/index_spec.rb delete mode 100644 spec/requests/settings/passports/new_spec.rb delete mode 100644 spec/requests/settings/passports/show_spec.rb diff --git a/app/controllers/settings/passports_controller.rb b/app/controllers/settings/passports_controller.rb deleted file mode 100644 index 3cefd7a..0000000 --- a/app/controllers/settings/passports_controller.rb +++ /dev/null @@ -1,57 +0,0 @@ -# frozen_string_literal: true - -class Settings::PassportsController < ApplicationController - include PaginalController - - before_action :skip_policy_scope, only: :index - - before_action :set_account - before_action :set_passport, only: :show - before_action :new_passport, only: :new - before_action :build_passport, only: :create - - # GET /settings/passports - def index - authorize [:settings, Passport] - - @passports = @account.person.passports.page(active_page) - end - - # GET /settings/passports/:id - def show - authorize [:settings, @passport] - end - - # GET /settings/passports/new - def new - authorize [:settings, Passport] - end - - # POST /settings/passports - def create - authorize [:settings, @passport] - - return render :new unless @passport.save - - redirect_to [:settings, @passport] - end - -private - - def set_account - @account = current_account.clone&.reload - end - - def set_passport - @passport = Passport.find params[:id] - end - - def new_passport - @passport = Passport.new person: @account&.person - end - - def build_passport - @passport = Passport.new permitted_attributes [:settings, Passport] - @passport.person = @account&.person - end -end diff --git a/app/policies/settings/passport_policy.rb b/app/policies/settings/passport_policy.rb deleted file mode 100644 index 5279c4e..0000000 --- a/app/policies/settings/passport_policy.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -class Settings::PassportPolicy < ApplicationPolicy - def index? - account&.person - end - - def show? - account&.person && record.person == account.person - end - - def create? - account&.person - end - - def permitted_attributes_for_create - %i[ - last_name first_name middle_name sex date_of_birth place_of_birth - series number issued_by unit_code date_of_issue zip_code - town_type town_name settlement_type settlement_name district_type - district_name street_type street_name residence_type residence_name - building_type building_name apartment_type apartment_name - ].freeze - end -end diff --git a/app/views/settings/_nav_sidebar.html.erb b/app/views/settings/_nav_sidebar.html.erb index 4d0c302..aeb0ee5 100644 --- a/app/views/settings/_nav_sidebar.html.erb +++ b/app/views/settings/_nav_sidebar.html.erb @@ -17,10 +17,6 @@ policy([:settings, Person]).show?, settings_person_path, ], - passports: [ - policy([:settings, Passport]).index?, - settings_passports_path, - ], contacts: [ policy([:settings, Contact]).index?, settings_contacts_path, diff --git a/app/views/settings/passports/_table.html.erb b/app/views/settings/passports/_table.html.erb deleted file mode 100644 index 3ad3baa..0000000 --- a/app/views/settings/passports/_table.html.erb +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - <% passports.each do |passport| %> - - - - - - - - <% end %> - -
- <%= Passport.human_attribute_name :series %> - - <%= Passport.human_attribute_name :number %> - - <%= Passport.human_attribute_name :unit_code %> - - <%= Passport.human_attribute_name :date_of_issue %> -
<%= passport.series %><%= passport.number %><%= passport.unit_code %><%= passport.date_of_issue %> - <% if policy([:settings, passport]).show? %> - <%= open_action [:settings, passport] %> - <% end %> -
diff --git a/app/views/settings/passports/index.html.erb b/app/views/settings/passports/index.html.erb deleted file mode 100644 index 13f132c..0000000 --- a/app/views/settings/passports/index.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -
-
-
- <%= render partial: 'settings/nav_sidebar', locals: { tab: :passports } %> -
- -
- <% if policy([:settings, Passport]).new? %> -
- <% if policy([:settings, Passport]).new? %> - <%= link_to translate(:create), - new_settings_passport_path, - class: 'btn btn-primary', - role: :button %> - <% end %> -
- <% end %> - - <%= render partial: 'table', locals: { passports: @passports } %> - <%= pagination @passports %> -
-
-
diff --git a/app/views/settings/passports/new.html.erb b/app/views/settings/passports/new.html.erb deleted file mode 100644 index aaddee1..0000000 --- a/app/views/settings/passports/new.html.erb +++ /dev/null @@ -1,44 +0,0 @@ -
-
-
- <%= render partial: 'settings/nav_sidebar', locals: { tab: :passports } %> -
- -
- <%= simple_form_for [:settings, @passport] do |f| %> - <%= f.error_notification %> - - <%= f.input :last_name %> - <%= f.input :first_name %> - <%= f.input :middle_name %> - <%= f.input :sex, collection: Passport.sexes.keys.map(&:to_sym) %> - <%= f.input :date_of_birth, start_year: 1900, end_year: Time.zone.now.year %> - <%= f.input :place_of_birth %> - - <%= f.input :series %> - <%= f.input :number %> - <%= f.input :issued_by %> - <%= f.input :unit_code %> - <%= f.input :date_of_issue %> - - <%= f.input :zip_code %> - <%= f.input :town_type %> - <%= f.input :town_name %> - <%= f.input :settlement_type %> - <%= f.input :settlement_name %> - <%= f.input :district_type %> - <%= f.input :district_name %> - <%= f.input :street_type %> - <%= f.input :street_name %> - <%= f.input :residence_type %> - <%= f.input :residence_name %> - <%= f.input :building_type %> - <%= f.input :building_name %> - <%= f.input :apartment_type %> - <%= f.input :apartment_name %> - - <%= f.button :submit %> - <% end %> -
-
-
diff --git a/app/views/settings/passports/show.html.erb b/app/views/settings/passports/show.html.erb deleted file mode 100644 index 03e9305..0000000 --- a/app/views/settings/passports/show.html.erb +++ /dev/null @@ -1,17 +0,0 @@ -
-
-
- <%= render partial: 'settings/nav_sidebar', locals: { tab: :passports } %> -
- -
- <%= render partial: 'passports/common_descr_list', - locals: { passport: @passport } %> -
- -
- <%= render partial: 'passports/registration_descr_list', - locals: { passport: @passport } %> -
-
-
diff --git a/config/locales/nav_tabs/en.yml b/config/locales/nav_tabs/en.yml index fc79c08..d64904d 100644 --- a/config/locales/nav_tabs/en.yml +++ b/config/locales/nav_tabs/en.yml @@ -13,6 +13,5 @@ en: profile: Public profile appearance: Appearance person: Person - passports: Passports contacts: Contacts sessions: Sessions diff --git a/config/locales/nav_tabs/ru.yml b/config/locales/nav_tabs/ru.yml index 9a2a872..4092958 100644 --- a/config/locales/nav_tabs/ru.yml +++ b/config/locales/nav_tabs/ru.yml @@ -13,6 +13,5 @@ ru: profile: Публичный профиль appearance: Внешний вид person: Личность - passports: Паспорта contacts: Контакты sessions: Сессии diff --git a/config/routes.rb b/config/routes.rb index 9dc51b5..6ffa858 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,7 +35,6 @@ Rails.application.routes.draw do resource :appearance, only: %i[edit update] resource :person, only: %i[show new] resources :sessions, only: :index - resources :passports, only: %i[index show new create] resources :contacts, only: %i[index create destroy] do resource :security_notification_switch, diff --git a/spec/requests/settings/passports/create_spec.rb b/spec/requests/settings/passports/create_spec.rb deleted file mode 100644 index b8d6f7b..0000000 --- a/spec/requests/settings/passports/create_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe 'POST /settings/passports' do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/spec/requests/settings/passports/index_spec.rb b/spec/requests/settings/passports/index_spec.rb deleted file mode 100644 index 7d9fec6..0000000 --- a/spec/requests/settings/passports/index_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe 'GET /settings/passports' do - let(:current_account) { create :personal_account } - - let :passports_count do - [0, 1, rand(2..4), rand(5..10), rand(20..100)].sample - end - - before do - sign_in current_account.user if current_account&.user - - if current_account&.person - create_list :empty_passport, passports_count, - person: current_account.person - end - - get '/settings/passports' - end - - it_behaves_like 'paginal controller', :passports_count - - for_account_types nil, :usual do - specify do - expect(response).to have_http_status :forbidden - end - end - - for_account_types :personal, :superuser do - specify do - expect(response).to have_http_status :ok - end - end -end diff --git a/spec/requests/settings/passports/new_spec.rb b/spec/requests/settings/passports/new_spec.rb deleted file mode 100644 index 93e8906..0000000 --- a/spec/requests/settings/passports/new_spec.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe 'GET /settings/passports/new' do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/spec/requests/settings/passports/show_spec.rb b/spec/requests/settings/passports/show_spec.rb deleted file mode 100644 index 707e4fb..0000000 --- a/spec/requests/settings/passports/show_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe 'GET /settings/passports/:id' do - let(:current_account) { create :superuser_account } - - let(:person) { current_account&.person || create(:initial_person) } - let(:passport) { create :empty_passport, person: person } - - before do - sign_in current_account.user if current_account&.user - - get "/settings/passports/#{passport.to_param}" - end - - for_account_types nil, :usual do - specify do - expect(response).to have_http_status :forbidden - end - end - - for_account_types :personal, :superuser do - specify do - expect(response).to have_http_status :ok - end - end - - context 'when person is not linked to current account' do - let(:person) { create :initial_person } - - specify do - expect(response).to have_http_status :forbidden - end - end -end