]> source.dussan.org Git - redmine.git/commitdiff
Adds a permission for exporting wiki pages.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 6 Feb 2010 09:30:53 +0000 (09:30 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 6 Feb 2010 09:30:53 +0000 (09:30 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3371 e93f8b46-1217-0410-a6f0-8f06a7374b81

44 files changed:
app/controllers/wiki_controller.rb
app/views/wiki/show.rhtml
app/views/wiki/special_date_index.rhtml
app/views/wiki/special_page_index.rhtml
config/locales/bg.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/cs.yml
config/locales/da.yml
config/locales/de.yml
config/locales/el.yml
config/locales/en.yml
config/locales/es.yml
config/locales/eu.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/hr.yml
config/locales/hu.yml
config/locales/id.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ko.yml
config/locales/lt.yml
config/locales/nl.yml
config/locales/no.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/th.yml
config/locales/tr.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-TW.yml
config/locales/zh.yml
lib/redmine.rb
test/fixtures/roles.yml

index 782f939d641629163d2b59629d3d2858281a3178..97e1531c0604deb2b0b1d3dc9fc0e5c09e83546f 100644 (file)
@@ -47,15 +47,17 @@ class WikiController < ApplicationController
       return
     end
     @content = @page.content_for_version(params[:version])
-    if params[:format] == 'html'
-      export = render_to_string :action => 'export', :layout => false
-      send_data(export, :type => 'text/html', :filename => "#{@page.title}.html")
-      return
-    elsif params[:format] == 'txt'
-      send_data(@content.text, :type => 'text/plain', :filename => "#{@page.title}.txt")
-      return
+    if User.current.allowed_to?(:export_wiki_pages, @project)
+      if params[:format] == 'html'
+        export = render_to_string :action => 'export', :layout => false
+        send_data(export, :type => 'text/html', :filename => "#{@page.title}.html")
+        return
+      elsif params[:format] == 'txt'
+        send_data(@content.text, :type => 'text/plain', :filename => "#{@page.title}.txt")
+        return
+      end
     end
-       @editable = editable?
+    @editable = editable?
     render :action => 'show'
   end
   
@@ -177,9 +179,13 @@ class WikiController < ApplicationController
       @pages_by_parent_id = @pages.group_by(&:parent_id)
     # export wiki to a single html file
     when 'export'
-      @pages = @wiki.pages.find :all, :order => 'title'
-      export = render_to_string :action => 'export_multiple', :layout => false
-      send_data(export, :type => 'text/html', :filename => "wiki.html")
+      if User.current.allowed_to?(:export_wiki_pages, @project)
+        @pages = @wiki.pages.find :all, :order => 'title'
+        export = render_to_string :action => 'export_multiple', :layout => false
+        send_data(export, :type => 'text/html', :filename => "wiki.html")
+      else
+        redirect_to :action => 'index', :id => @project, :page => nil
+      end
       return      
     else
       # requested special page doesn't exist, redirect to default page
index 0ae8c10dca5422667da5fdc4a6cb6ee4815002fa..690e9102b96a4eefb751e83cb2f8c946b20bf446 100644 (file)
@@ -48,7 +48,7 @@
 <% other_formats_links do |f| %>
        <%= f.link_to 'HTML', :url => {:page => @page.title, :version => @content.version} %>
        <%= f.link_to 'TXT', :url => {:page => @page.title, :version => @content.version} %>
-<% end %>
+<% end if User.current.allowed_to?(:export_wiki_pages, @project) %>
 
 <% content_for :header_tags do %>
   <%= stylesheet_link_tag 'scm' %>
index 53b7124c17dcc858e0729a18e97cb5ce847b6ba8..228737a5e8fbb1bca8279f105af7fca0bbb3c8a7 100644 (file)
@@ -24,7 +24,7 @@
 <% unless @pages.empty? %>
 <% other_formats_links do |f| %>
        <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
-       <%= f.link_to 'HTML', :url => {:action => 'special', :page => 'export'} %>
+       <%= f.link_to('HTML', :url => {:action => 'special', :page => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %>
 <% end %>
 <% end %>
 
index 0b8eeccce610d5d9e2d2dbd7620e53cb3fdcc057..b3ad10019bd05e006f4beb453a20b23907f484bc 100644 (file)
@@ -17,7 +17,7 @@
 <% unless @pages.empty? %>
 <% other_formats_links do |f| %>
        <%= f.link_to 'Atom', :url => {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
-       <%= f.link_to 'HTML', :url => {:action => 'special', :page => 'export'} %>
+       <%= f.link_to('HTML', :url => {:action => 'special', :page => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %>
 <% end %>
 <% end %>
 
index 7c699e1f08eef80e2da66bf0f59f36144d8162d6..d48c09314c385ec8a9ed4d57eb76500e6b0bb6ed 100644 (file)
@@ -878,3 +878,4 @@ bg:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 28fddcbd509373a045b1cc091c07c061eed5e9f0..6d297fefe4bc5f9e7361f5c95f24bd0565411881 100644 (file)
@@ -902,3 +902,4 @@ bs:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 3f440c92c6ed8b7d58467ce8c4229d6cb953a557..dc033a24eb2d5148a79678ec1a32c21950316ca6 100644 (file)
@@ -881,3 +881,4 @@ ca:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index a6c18e88a89acb2fd7bc35fc5ece1f0d87c744ee..dd4cea30bd05be52fe056ee423e7ae24ab02f6ef 100644 (file)
@@ -884,3 +884,4 @@ cs:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 99e9a0df54614d8aa11992e2b63e1e9b9c5733ed..1da8ac2fcf486e2c1fb0b8fb484a5d4e195535b5 100644 (file)
@@ -904,3 +904,4 @@ da:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index e4c35d1431a80ddb8a016daa7152324c5cfa65f8..ddb292c5d3f026c83270161d8a35f559c4320082 100644 (file)
@@ -904,3 +904,4 @@ de:
   label_close_versions: Vollständige Versionen schließen
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index c1c1e40b73fb7b6c06937eebb50e15aa84d7bc03..3943cb5c37aea8c3f5c24ff8dae62942803b9547 100644 (file)
@@ -884,3 +884,4 @@ el:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 37e9963ab5580f61fd5449f1b21bf2408770402e..c8b0ddbeee787a5964291e037f4a231551c42caa 100644 (file)
@@ -382,6 +382,7 @@ en:
   permission_edit_own_messages: Edit own messages
   permission_delete_messages: Delete messages
   permission_delete_own_messages: Delete own messages
+  permission_export_wiki_pages: Export wiki pages
   
   project_module_issue_tracking: Issue tracking
   project_module_time_tracking: Time tracking
index 360f488d2e936254ec9bc11a3bed9aeb1cca7c8b..8bc7c8c18d207d435b1ab572af39d17a248b69e1 100644 (file)
@@ -928,3 +928,4 @@ es:
   label_close_versions: Cerrar versiones completadas
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index ba48eebf3ba47bfd8d6f2fa503e00a0b6658448f..04bb5c5b7a07fb897586a5bc2192dd71d91c790a 100644 (file)
@@ -888,3 +888,4 @@ eu:
   enumeration_system_activity: Sistemako Jarduera
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages\r
index 822bb43510a34ff7878a76f05cdd83c65cd122db..9ed111556d3dd66a66b0ad0458bccb267da5b909 100644 (file)
@@ -914,3 +914,4 @@ fi:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 1449abb5783d0e26dd45ce59d52ac5423afd476e..99c4361f08f89669d24cc9ff4ccdb8b74c1a2ecb 100644 (file)
@@ -405,6 +405,7 @@ fr:
   permission_edit_own_messages: Modifier ses propres messages
   permission_delete_messages: Supprimer les messages
   permission_delete_own_messages: Supprimer ses propres messages
+  permission_export_wiki_pages: Exporter les pages
   
   project_module_issue_tracking: Suivi des demandes
   project_module_time_tracking: Suivi du temps passé
index 707eff4a391b3bfba5e0b0911305abbffb5facbb..b606ad46de668648ed1945da017847f7fb6876e5 100644 (file)
@@ -904,3 +904,4 @@ gl:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index af7aa883a38ccb7fbe42c74e622b3cb224342494..c2604ee5078732de771ccdf95c8cc466ab47e505 100644 (file)
@@ -888,3 +888,4 @@ he:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index bf3dc46cf96962e3b85c9942854111ddf5315ce1..4244e5b6cdd59964491acc64a8b90cf9a6f69652 100644 (file)
@@ -891,3 +891,4 @@ hr:
     Are you sure you want to continue?
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 603fd19dbe4aeec75f60d870c6bd45673e67bf8e..f419aa301286e7b804daf2caff04ded2a71c1bd9 100644 (file)
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 9e98bbfe2c6d285f9d4b882db03e8ac9c7a2d641..db92948aef28dc6cafdfce9e90e984661f3330a7 100644 (file)
@@ -896,3 +896,4 @@ id:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index c43d41b537d338a14228322a987e8c8765efe9b4..a3c12ad3fa84ad9983ffbc2a5fbf17a8af8d350f 100644 (file)
@@ -891,3 +891,4 @@ it:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 2f3336a6ccb6e072e1ec989f11d54181f7ff27b8..4a0fb894159ac4a9a725153fb39fa32a96d9169f 100644 (file)
@@ -913,3 +913,4 @@ ja:
   enumeration_doc_categories: 文書カテゴリ
   enumeration_activities: 作業分類 (時間トラッキング)
   enumeration_system_activity: システム作業分類
+  permission_export_wiki_pages: Export wiki pages
index 09bedd63e35f5a88634a6bb7d8cc45d53f355b6d..99fc180b3f804eb03678ed26d17da45c12f3b0af 100644 (file)
@@ -944,3 +944,4 @@ ko:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 289db443314df3bf7f5f250895db22bd33d38464..43158bccac9031a15b7134bec5b7504f4802df72 100644 (file)
@@ -952,3 +952,4 @@ lt:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 7c85fbbd0bae7aff5abee28dfc1d8aec14acc4cf..024db3238d60d2c34c9866a81b424de1451d592b 100644 (file)
@@ -866,3 +866,4 @@ nl:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 6eabaeb25f00f34446a113cbf5ae7e85fed7c8ba..726dadb4617384140b66b68bd7c515af69bff6d2 100644 (file)
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 84cc3ec86f9604a263078180bdfd3a6e9dde6915..5d4e62e55c2e9fff25baad555f455c893b498955 100644 (file)
@@ -909,3 +909,4 @@ pl:
   
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 300d5e7731f9a0ffb3e7ce661812729da5ac1b28..53f968ad181e829317208ce51ffdeb97692360ec 100644 (file)
@@ -912,3 +912,4 @@ pt-BR:
   label_board_sticky: Marcado
   label_board_locked: Travado
   label_change_log: Registro de alterações
+  permission_export_wiki_pages: Export wiki pages
index 0acfa0dd5828eefb16ac9bc729ec8f892f9c4e82..5d9d8ce46fe15108c348974eaca5923230bb8b33 100644 (file)
@@ -896,3 +896,4 @@ pt:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 55a61634c982618a315355c2f949b84ca97336ba..257cf8e1962b64250e40cefeb4e1068b4bba3734 100644 (file)
@@ -881,3 +881,4 @@ ro:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 451e7008944d3109d3e7bf1c2dcf653ca756d9b4..2dd495212fb94caefb78adf1c180845b65fbdf1a 100644 (file)
@@ -992,3 +992,4 @@ ru:
   label_close_versions: Закрыть завершенные версии
   label_board_sticky: Прикреплена
   label_board_locked: Заблокирована
+  permission_export_wiki_pages: Export wiki pages
index 009ec029463bded73938b96e20b3b98f19373008..c1070ab161f9ed1719d835d5294c85e115469670 100644 (file)
@@ -883,3 +883,4 @@ sk:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 9a640e010bf84fd49f73442e12418c2e861f3741..b12c77d781d6f21330e06b59e9b7d30a882a2491 100644 (file)
@@ -880,3 +880,4 @@ sl:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 2d1c7112f91c18a7ab9b92554ce440bd37edbf18..28eaaaa3c23c925592188628c6d4325042b16459 100644 (file)
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 64d6b0aba888986029a0b9cc7839049f4a8def2c..d0488ad968f159f1ced1ff68fa54d5768ddd6da0 100644 (file)
@@ -933,3 +933,4 @@ sv:
   enumeration_doc_categories: Dokumentkategorier
   enumeration_activities: Aktiviteter (tidsuppföljning)
   enumeration_system_activity: Systemaktivitet
+  permission_export_wiki_pages: Export wiki pages
index 3c47b76099d7f063e3a0b4619da1bb3a7705c30a..c5982851f2af8bb6ec48fb4193deddd500c85efa 100644 (file)
@@ -881,3 +881,4 @@ th:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 673762b0ee69c626930da0b88c5ce513e4a97a4f..86b365d85d45780b2a86362eb97b3788580ad1a6 100644 (file)
@@ -911,3 +911,4 @@ tr:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 0bf649b47ac16966378d05fded06c40c5d0d3e98..4ae064d69b27a531cb1e80cd69cf5f003ee7fc3a 100644 (file)
@@ -880,3 +880,4 @@ uk:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 3ec9d57f9337f37fe50bc41bc4456035f173589b..c66cdd53b0136e4505b19f5f7ca7974a06bc0164 100644 (file)
@@ -943,3 +943,4 @@ vi:
   label_close_versions: Close completed versions
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index b94713379dedaebefeb30da3747d3be6a522c68b..db5bfa2e8336545f89f9bf629f705c479c4533c7 100644 (file)
   enumeration_doc_categories: 文件分類
   enumeration_activities: 活動 (時間追蹤)
   enumeration_system_activity: 系統活動
+  permission_export_wiki_pages: Export wiki pages
index 632103a6e473cf8b1dec2a6a3a768462f6dbf7cb..8e7dc4d1cd6dc25cf60349c2d9cde06ed8cd5c42 100644 (file)
@@ -906,3 +906,4 @@ zh:
   enumeration_system_activity: 系统活动
   label_board_sticky: Sticky
   label_board_locked: Locked
+  permission_export_wiki_pages: Export wiki pages
index 0cf0cc497f59caf6368d7640c9dfa50468388950..9d9de9cf9cc9d2653309bf03de63dac27ac6f22d 100644 (file)
@@ -92,6 +92,7 @@ Redmine::AccessControl.map do |map|
     map.permission :rename_wiki_pages, {:wiki => :rename}, :require => :member
     map.permission :delete_wiki_pages, {:wiki => :destroy}, :require => :member
     map.permission :view_wiki_pages, :wiki => [:index, :special]
+    map.permission :export_wiki_pages, {}
     map.permission :view_wiki_edits, :wiki => [:history, :diff, :annotate]
     map.permission :edit_wiki_pages, :wiki => [:edit, :preview, :add_attachment]
     map.permission :delete_wiki_pages_attachments, {}
index 22f6903280765fbc0c19688c60e4c22e38de6ae9..e3dc3645f1cf57447dc7373b0a1d13db67535bb3 100644 (file)
@@ -33,6 +33,7 @@ roles_001:
     - :view_documents
     - :manage_documents
     - :view_wiki_pages
+    - :export_wiki_pages
     - :view_wiki_edits
     - :edit_wiki_pages
     - :delete_wiki_pages_attachments