Skip to content

Commit d1e6f3a

Browse files
authored
Merge pull request #2366 from tf/create-with-folder
Persist selected folder when creating entries
2 parents bf1a784 + 9db94c4 commit d1e6f3a

3 files changed

Lines changed: 27 additions & 1 deletion

File tree

admins/pageflow/entry.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,8 @@ def permitted_attributes # rubocop:todo Metrics/AbcSize
330330
result += Pageflow.config_for(target).admin_form_inputs.permitted_attributes_for(:entry)
331331
result += permitted_account_attributes
332332

333-
result << :folder_id if params[:id] && authorized?(:configure_folder_for, resource)
333+
result << :folder_id if create_or_new_action? ||
334+
(params[:id] && authorized?(:configure_folder_for, resource))
334335

335336
accounts = if params[:id]
336337
resource.account

config/locales/de.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ de:
182182
account: Konto
183183
author: Autor
184184
created_at: Erstellt
185+
folder: Ordner
185186
credits: Credits
186187
structured_data_type_name: Strukturierter Datentyp
187188
edited_at: Geändert

spec/controllers/admin/entries_controller_spec.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -948,6 +948,30 @@ def self.name
948948
expect(request).to redirect_to(admin_entry_path(Pageflow::Entry.last))
949949
end
950950

951+
it 'allows account publisher to create entry in folder' do
952+
user = create(:user)
953+
account = create(:account, with_publisher: user)
954+
folder = create(:folder, account:)
955+
956+
sign_in(user, scope: :user)
957+
958+
post :create, params: {entry: attributes_for(:entry, account:, folder_id: folder)}
959+
960+
expect(Pageflow::Entry.last.folder).to eq(folder)
961+
end
962+
963+
it 'does not allow account publisher to create entry in folder of other account' do
964+
user = create(:user)
965+
account = create(:account, with_publisher: user)
966+
folder = create(:folder, account: create(:account))
967+
968+
sign_in(user, scope: :user)
969+
970+
expect {
971+
post :create, params: {entry: attributes_for(:entry, account:, folder_id: folder)}
972+
}.not_to change(Pageflow::Entry, :count)
973+
end
974+
951975
it 'redirects to editor if after_entry_create is set to editor' do
952976
user = create(:user)
953977
account = create(:account, with_publisher: user)

0 commit comments

Comments
 (0)