1
0
Fork 0

Add action Staffs::People::AccountConnectionLinksController#create

This commit is contained in:
Alex Kotov 2019-09-01 18:38:02 +05:00
parent 9e51061afe
commit 80a87a5faa
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
6 changed files with 68 additions and 4 deletions

View file

@ -8,6 +8,11 @@ class Staffs::People::AccountConnectionLinksController < ApplicationController
authorize [:staff, @person, AccountConnectionLink.new(@person)]
end
# POST /staff/people/:person_id/account_connection_link
def create
authorize [:staff, @person, AccountConnectionLink.new(@person)]
end
private
def set_person

View file

@ -0,0 +1,14 @@
<div class="container">
<%= nav_breadcrumb(
[translate(:staff_services), staff_root_path],
[Person.model_name.human(count: 0), staff_people_path],
[@person.full_name, staff_person_path(@person)],
translate('.link_to_connect_account'),
) %>
<div class="text-center">
<p class="lead">
<%= translate '.description' %>
</p>
</div>
</div>

View file

@ -11,9 +11,11 @@
<%= translate '.description' %>
</p>
<%= link_to translate('.generate'),
staff_person_account_connection_link_path,
method: :post,
class: 'btn btn-primary btn-lg' %>
<% if policy([:staff, @person, AccountConnectionLink.new(@person)]).create? %>
<%= link_to translate('.generate'),
staff_person_account_connection_link_path(@person),
method: :post,
class: 'btn btn-primary btn-lg' %>
<% end %>
</div>
</div>

View file

@ -16,3 +16,5 @@ en:
new:
link_to_connect_account: Link to connect account
generate: Generate
create:
link_to_connect_account: Link to connect account

View file

@ -22,3 +22,9 @@ ru:
свой аккаунт к данной личности. Эта ссылка предназначена
для передачи только этому человеку. Если ссылка уже существует,
то новая ссылка заменит прежнюю, прежняя перестанет работать.
create:
link_to_connect_account: Ссылка для присоединения аккаунта
description: >
С помощью этой ссылки человек сможет привязать
свой аккаунт к данной личности. Эта ссылка предназначена
для передачи только этому человеку.

View file

@ -0,0 +1,35 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'GET /staff/people/:person_id/account_connection_link' do
let(:person) { create :initial_person }
let(:current_account) { create :superuser_account }
before do
sign_in current_account.user if current_account&.user
post "/staff/people/#{person.to_param}/account_connection_link"
end
for_account_types nil, :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
context 'when person already has account' do
let(:person) { create(:personal_account).person }
specify do
expect(response).to have_http_status :forbidden
end
end
end