Skip to content

Commit 7e19b3c

Browse files
author
jamesprior
committed
Check permissions before publishing a page
1 parent 02c54b9 commit 7e19b3c

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

app/controllers/cms/pages_controller.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,22 @@ def destroy
7373
define_method status do
7474
if params[:page_ids]
7575
@pages = params[:page_ids].map { |id| Page.find(id) }
76-
raise Cms::Errors::AccessDenied unless @pages.all? { |page| current_user.able_to_edit?(page) }
76+
if status == :publish
77+
raise Cms::Errors::AccessDenied unless @pages.all? { |page| current_user.able_to_publish?(page) }
78+
else
79+
raise Cms::Errors::AccessDenied unless @pages.all? { |page| current_user.able_to_edit?(page) }
80+
end
7781
@pages.each { |page| page.send(status) }
7882
flash[:notice] = "#{params[:page_ids].size} pages #{verb}"
7983
redirect_to dashboard_url
8084
else
8185
load_page
86+
if status == :publish
87+
raise Cms::Errors::AccessDenied unless current_user.able_to_publish?(@page)
88+
else
89+
raise Cms::Errors::AccessDenied unless current_user.able_to_edit?(@page)
90+
end
91+
8292
if @page.send(status)
8393
flash[:notice] = "Page '#{@page.name}' was #{verb}"
8494
end

0 commit comments

Comments
 (0)