Commit 1a60ef5643e81b0fe438c2e4b21a4ade9d562029
1 parent
48987aaf
Exists in
master
and in
28 other branches
Moving methods to the protected section
Showing
2 changed files
with
55 additions
and
45 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
... | ... | @@ -15,6 +15,7 @@ class CmsController < MyProfileController |
15 | 15 | end |
16 | 16 | |
17 | 17 | before_filter :login_required, :except => [:suggest_an_article] |
18 | + | |
18 | 19 | protect_if :except => [:suggest_an_article, :set_home_page, :edit, :destroy, :publish] do |c, user, profile| |
19 | 20 | user && (user.has_permission?('post_content', profile) || user.has_permission?('publish_content', profile)) |
20 | 21 | end |
... | ... | @@ -27,32 +28,6 @@ class CmsController < MyProfileController |
27 | 28 | profile |
28 | 29 | end |
29 | 30 | |
30 | - include CmsHelper | |
31 | - | |
32 | - def available_article_types | |
33 | - articles = [ | |
34 | - TinyMceArticle, | |
35 | - TextileArticle, | |
36 | - Event | |
37 | - ] | |
38 | - articles += special_article_types if params && params[:cms] | |
39 | - parent_id = params ? params[:parent_id] : nil | |
40 | - if profile.enterprise? | |
41 | - articles << EnterpriseHomepage | |
42 | - end | |
43 | - if @parent && @parent.blog? | |
44 | - articles -= Article.folder_types.map(&:constantize) | |
45 | - end | |
46 | - if user.is_admin?(profile.environment) | |
47 | - articles << RawHTMLArticle | |
48 | - end | |
49 | - articles | |
50 | - end | |
51 | - | |
52 | - def special_article_types | |
53 | - [Folder, Blog, UploadedFile, Forum, Gallery, RssFeed] + @plugins.dispatch(:content_types) | |
54 | - end | |
55 | - | |
56 | 31 | def view |
57 | 32 | @article = profile.articles.find(params[:id]) |
58 | 33 | conditions = [] |
... | ... | @@ -303,6 +278,33 @@ class CmsController < MyProfileController |
303 | 278 | |
304 | 279 | protected |
305 | 280 | |
281 | + include CmsHelper | |
282 | + | |
283 | + def available_article_types | |
284 | + articles = [ | |
285 | + TinyMceArticle, | |
286 | + TextileArticle, | |
287 | + Event | |
288 | + ] | |
289 | + articles += special_article_types if params && params[:cms] | |
290 | + parent_id = params ? params[:parent_id] : nil | |
291 | + if profile.enterprise? | |
292 | + articles << EnterpriseHomepage | |
293 | + end | |
294 | + if @parent && @parent.blog? | |
295 | + articles -= Article.folder_types.map(&:constantize) | |
296 | + end | |
297 | + if user.is_admin?(profile.environment) | |
298 | + articles << RawHTMLArticle | |
299 | + end | |
300 | + articles | |
301 | + end | |
302 | + | |
303 | + def special_article_types | |
304 | + [Folder, Blog, UploadedFile, Forum, Gallery, RssFeed] + @plugins.dispatch(:content_types) | |
305 | + end | |
306 | + | |
307 | + | |
306 | 308 | def record_coming |
307 | 309 | if request.post? |
308 | 310 | @back_to = params[:back_to] | ... | ... |
test/functional/cms_controller_test.rb
... | ... | @@ -601,12 +601,12 @@ class CmsControllerTest < ActionController::TestCase |
601 | 601 | |
602 | 602 | should 'not make enterprise homepage available to person' do |
603 | 603 | @controller.stubs(:profile).returns(profile) |
604 | - assert_not_includes @controller.available_article_types, EnterpriseHomepage | |
604 | + assert_not_includes available_article_types, EnterpriseHomepage | |
605 | 605 | end |
606 | 606 | |
607 | 607 | should 'make enterprise homepage available to enterprises' do |
608 | 608 | @controller.stubs(:profile).returns(fast_create(Enterprise, :name => 'test_ent', :identifier => 'test_ent')) |
609 | - assert_includes @controller.available_article_types, EnterpriseHomepage | |
609 | + assert_includes available_article_types, EnterpriseHomepage | |
610 | 610 | end |
611 | 611 | |
612 | 612 | should 'update categories' do |
... | ... | @@ -841,7 +841,7 @@ class CmsControllerTest < ActionController::TestCase |
841 | 841 | blog = Blog.create!(:name => 'Blog for test', :profile => profile) |
842 | 842 | @controller.stubs(:params).returns({ :parent_id => blog.id }) |
843 | 843 | |
844 | - assert_not_includes @controller.available_article_types, Folder | |
844 | + assert_not_includes available_article_types, Folder | |
845 | 845 | end |
846 | 846 | |
847 | 847 | should 'not offer rssfeed to blog articles' do |
... | ... | @@ -849,7 +849,7 @@ class CmsControllerTest < ActionController::TestCase |
849 | 849 | blog = Blog.create!(:name => 'Blog for test', :profile => profile) |
850 | 850 | @controller.stubs(:params).returns({ :parent_id => blog.id }) |
851 | 851 | |
852 | - assert_not_includes @controller.available_article_types, RssFeed | |
852 | + assert_not_includes available_article_types, RssFeed | |
853 | 853 | end |
854 | 854 | |
855 | 855 | should 'update blog posts_per_page setting' do |
... | ... | @@ -1206,7 +1206,7 @@ class CmsControllerTest < ActionController::TestCase |
1206 | 1206 | forum = Forum.create!(:name => 'Forum for test', :profile => profile) |
1207 | 1207 | @controller.stubs(:params).returns({ :parent_id => forum.id }) |
1208 | 1208 | |
1209 | - assert_not_includes @controller.available_article_types, Folder | |
1209 | + assert_not_includes available_article_types, Folder | |
1210 | 1210 | end |
1211 | 1211 | |
1212 | 1212 | should 'not offer rssfeed to forum articles' do |
... | ... | @@ -1214,7 +1214,7 @@ class CmsControllerTest < ActionController::TestCase |
1214 | 1214 | forum = Forum.create!(:name => 'Forum for test', :profile => profile) |
1215 | 1215 | @controller.stubs(:params).returns({ :parent_id => forum.id }) |
1216 | 1216 | |
1217 | - assert_not_includes @controller.available_article_types, RssFeed | |
1217 | + assert_not_includes available_article_types, RssFeed | |
1218 | 1218 | end |
1219 | 1219 | |
1220 | 1220 | should 'update forum posts_per_page setting' do |
... | ... | @@ -1499,20 +1499,11 @@ class CmsControllerTest < ActionController::TestCase |
1499 | 1499 | assert_nil data[1]['error'] |
1500 | 1500 | end |
1501 | 1501 | |
1502 | - protected | |
1503 | - | |
1504 | - # FIXME this is to avoid adding an extra dependency for a proper JSON parser. | |
1505 | - # For now we are assuming that the JSON is close enough to Ruby and just | |
1506 | - # making some adjustments. | |
1507 | - def parse_json_response | |
1508 | - eval(@response.body.gsub('":', '"=>').gsub('null', 'nil')) | |
1509 | - end | |
1510 | - | |
1511 | 1502 | should 'make RawHTMLArticle available only to environment admins' do |
1512 | 1503 | @controller.stubs(:profile).returns(profile) |
1513 | - assert_not_includes @controller.available_article_types, RawHTMLArticle | |
1504 | + assert_not_includes available_article_types, RawHTMLArticle | |
1514 | 1505 | profile.environment.add_admin(profile) |
1515 | - assert_includes @controller.available_article_types, RawHTMLArticle | |
1506 | + assert_includes available_article_types, RawHTMLArticle | |
1516 | 1507 | end |
1517 | 1508 | |
1518 | 1509 | should 'include new contents special types from plugins' do |
... | ... | @@ -1526,8 +1517,25 @@ class CmsControllerTest < ActionController::TestCase |
1526 | 1517 | |
1527 | 1518 | get :index, :profile => profile.identifier |
1528 | 1519 | |
1529 | - assert_includes @controller.special_article_types, Integer | |
1530 | - assert_includes @controller.special_article_types, Float | |
1520 | + assert_includes special_article_types, Integer | |
1521 | + assert_includes special_article_types, Float | |
1522 | + end | |
1523 | + | |
1524 | + protected | |
1525 | + | |
1526 | + # FIXME this is to avoid adding an extra dependency for a proper JSON parser. | |
1527 | + # For now we are assuming that the JSON is close enough to Ruby and just | |
1528 | + # making some adjustments. | |
1529 | + def parse_json_response | |
1530 | + eval(@response.body.gsub('":', '"=>').gsub('null', 'nil')) | |
1531 | + end | |
1532 | + | |
1533 | + def available_article_types | |
1534 | + @controller.send(:available_article_types) | |
1535 | + end | |
1536 | + | |
1537 | + def special_article_types | |
1538 | + @controller.send(:special_article_types) | |
1531 | 1539 | end |
1532 | 1540 | |
1533 | 1541 | end | ... | ... |