Commit 941acfdc4cc256a19aadfaa63e36d6dfa90c2639
Committed by
Antonio Terceiro
1 parent
5aee489a
Exists in
master
and in
29 other branches
ActionItem1221: allowing publisher to add new content
Showing
3 changed files
with
24 additions
and
5 deletions
Show diff stats
app/models/article.rb
| ... | ... | @@ -217,7 +217,11 @@ class Article < ActiveRecord::Base |
| 217 | 217 | end |
| 218 | 218 | |
| 219 | 219 | def allow_post_content?(user = nil) |
| 220 | - user && (user.has_permission?('post_content', profile) || user.has_permission?('publish_content', profile) && (user == self.creator)) | |
| 220 | + user && (user.has_permission?('post_content', profile) || allow_publish_content?(user) && (user == self.creator)) | |
| 221 | + end | |
| 222 | + | |
| 223 | + def allow_publish_content?(user = nil) | |
| 224 | + user && user.has_permission?('publish_content', profile) | |
| 221 | 225 | end |
| 222 | 226 | |
| 223 | 227 | def comments_updated | ... | ... |
app/views/content_viewer/view_page.rhtml
| ... | ... | @@ -23,8 +23,8 @@ |
| 23 | 23 | |
| 24 | 24 | <div> |
| 25 | 25 | <%= article_title(@page, :no_link => true) %> |
| 26 | - <% if @page.allow_post_content?(user) %> | |
| 27 | - <div id="article-actions"> | |
| 26 | + <div id="article-actions"> | |
| 27 | + <% if @page.allow_post_content?(user) %> | |
| 28 | 28 | <% unless @page.blog? %> |
| 29 | 29 | <%= link_to content_tag( 'span', label_for_edit_article(@page) ), |
| 30 | 30 | profile.admin_url.merge({ :controller => 'cms', :action => 'edit', :id => @page.id }), |
| ... | ... | @@ -41,6 +41,10 @@ |
| 41 | 41 | profile.admin_url.merge({ :controller => 'cms', :action => 'publish', :id => @page }), |
| 42 | 42 | :class => 'button with-text icon-spread' %> |
| 43 | 43 | <% end %> |
| 44 | + <% end %> | |
| 45 | + <% end %> | |
| 46 | + <% if @page.allow_post_content?(user) || @page.allow_publish_content?(user) %> | |
| 47 | + <% if !(profile.kind_of?(Enterprise) && environment.enabled?('disable_cms')) %> | |
| 44 | 48 | <% if !@page.display_as_gallery? %> |
| 45 | 49 | <%= lightbox_button(:new, label_for_new_article(@page), profile.admin_url.merge(:controller => 'cms', :action => 'new', :parent_id => (@page.folder? ? @page : (@page.parent.nil? ? nil : @page.parent)))) %> |
| 46 | 50 | <% end %> |
| ... | ... | @@ -51,8 +55,8 @@ |
| 51 | 55 | <% if profile.kind_of?(Enterprise) && @page.display_as_gallery? %> |
| 52 | 56 | <%= button('upload-file', _('Upload files'), :controller => 'cms', :action => 'upload_files', :parent_id => (@page.folder? ? @page : @page.parent)) %> |
| 53 | 57 | <% end %> |
| 54 | - </div> | |
| 55 | - <% end %> | |
| 58 | + <% end %> | |
| 59 | + </div> | |
| 56 | 60 | </div> |
| 57 | 61 | |
| 58 | 62 | <% if !@page.tags.empty? %> | ... | ... |
test/functional/content_viewer_controller_test.rb
| ... | ... | @@ -862,4 +862,15 @@ class ContentViewerControllerTest < Test::Unit::TestCase |
| 862 | 862 | assert_template 'view_page' |
| 863 | 863 | end |
| 864 | 864 | |
| 865 | + should 'display link to new_article if profile is publisher' do | |
| 866 | + c = Community.create!(:name => 'test_com') | |
| 867 | + u = create_user_with_permission('test_user', 'publish_content', c) | |
| 868 | + login_as u.identifier | |
| 869 | + a = c.articles.create!(:name => 'test-article', :last_changed_by => profile, :published => true) | |
| 870 | + | |
| 871 | + get :view_page, :profile => c.identifier, :page => a.explode_path | |
| 872 | + | |
| 873 | + assert_tag :tag => 'a', :content => 'New article' | |
| 874 | + end | |
| 875 | + | |
| 865 | 876 | end | ... | ... |