Add action Staffs::People::AccountConnectionLinksController#create
This commit is contained in:
parent
9e51061afe
commit
80a87a5faa
6 changed files with 68 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -22,3 +22,9 @@ ru:
|
|||
свой аккаунт к данной личности. Эта ссылка предназначена
|
||||
для передачи только этому человеку. Если ссылка уже существует,
|
||||
то новая ссылка заменит прежнюю, прежняя перестанет работать.
|
||||
create:
|
||||
link_to_connect_account: Ссылка для присоединения аккаунта
|
||||
description: >
|
||||
С помощью этой ссылки человек сможет привязать
|
||||
свой аккаунт к данной личности. Эта ссылка предназначена
|
||||
для передачи только этому человеку.
|
||||
|
|
|
@ -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
|
Reference in a new issue