1
0
Fork 0

Add action Settings::AppearancesController#edit

This commit is contained in:
Alex Kotov 2019-09-03 22:03:15 +05:00
parent a36dcb7d26
commit fcff554992
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
9 changed files with 69 additions and 0 deletions

View file

@ -0,0 +1,16 @@
# frozen_string_literal: true
class Settings::AppearancesController < ApplicationController
before_action :set_account
# GET /settings/appearance/edit
def edit
authorize %i[settings appearance]
end
private
def set_account
@account = current_account.clone&.reload
end
end

View file

@ -0,0 +1,7 @@
# frozen_string_literal: true
class Settings::AppearancePolicy < ApplicationPolicy
def update?
!!account
end
end

View file

@ -9,6 +9,10 @@
policy(%i[users registration]).edit?,
edit_user_registration_path,
],
appearance: [
policy(%i[settings appearance]).edit?,
edit_settings_appearance_path,
],
person: [
policy(%i[settings person]).show?,
settings_person_path,

View file

@ -0,0 +1,10 @@
<div class="container">
<div class="row">
<div class="col-md-3 mb-4">
<%= render partial: 'settings/nav_sidebar', locals: { tab: :appearance } %>
</div>
<div class="col-md-9">
</div>
</div>
</div>

View file

@ -8,6 +8,7 @@ en:
settings:
credentials: Credentials
profile: Public profile
appearance: Appearance
person: Person
contacts: Contacts
sessions: Sessions

View file

@ -8,6 +8,7 @@ ru:
settings:
credentials: Данные для входа
profile: Публичный профиль
appearance: Внешний вид
person: Личность
contacts: Контакты
sessions: Сессии

View file

@ -32,6 +32,7 @@ Rails.application.routes.draw do
namespace :settings do
resource :profile, only: %i[edit update]
resource :appearance, only: :edit
resource :person, only: %i[show new]
resources :contacts, only: %i[index create destroy]
resources :sessions, only: :index

View file

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

View file

@ -0,0 +1,22 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'GET /settings/appearance/edit' do
before do
sign_in current_account.user if current_account&.user
get '/settings/appearance/edit'
end
for_account_types nil do
specify do
expect(response).to have_http_status :forbidden
end
end
for_account_types :usual, :superuser do
specify do
expect(response).to have_http_status :ok
end
end
end