diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb
index 72877bfc..f448d7c3 100644
--- a/app/controllers/dmsf_controller.rb
+++ b/app/controllers/dmsf_controller.rb
@@ -33,6 +33,9 @@ class DmsfController < ApplicationController
helper :all
def show
+ @folder_manipulation_allowed = User.current.allowed_to?(:folder_manipulation, @project)
+ @file_manipulation_allowed = User.current.allowed_to?(:folder_manipulation, @project)
+
unless @folder
@subfolders = @project.dmsf_folders.visible
@files = @project.dmsf_files.visible
diff --git a/app/views/dmsf/show.html.erb b/app/views/dmsf/show.html.erb
index 3aacb67a..e5fcfed5 100644
--- a/app/views/dmsf/show.html.erb
+++ b/app/views/dmsf/show.html.erb
@@ -109,7 +109,7 @@
<% @subfolders.each do |subfolder| %>
<% locked_for_user = subfolder.locked_for_user? %>
<% locked = subfolder.locked? %>
@@ -134,60 +134,59 @@
|
<%= h(subfolder.user) %> |
- <% if User.current.allowed_to?(:file_approval, @project) %>
-
- <% if subfolder.notification %>
- <%= link_to_function(image_tag('notify.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:action => 'notify_deactivate', :id => @project, :folder_id => subfolder)}')",
- :title => l(:title_notifications_active_deactivate)) %>
- <% else %>
- <%= link_to_function(image_tag('notifynot.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:action => 'notify_activate', :id => @project, :folder_id => subfolder)}')",
- :title => l(:title_notifications_not_active_activate)) %>
- <% end %>
-
- <% end %>
-
- <% if User.current.allowed_to?(:folder_manipulation, @project) %>
-
- <%= link_to(image_tag('edit.png', :class =>'detail_icon'),
- {:action => 'edit', :id => @project, :folder_id => subfolder },
- :title => l(:link_edit, :title => h(subfolder.title))) unless locked_for_user %>
-
+ <% if @folder_manipulation_allowed %>
+ <% if User.current.allowed_to?(:file_approval, @project) %>
+
+ <% if subfolder.notification %>
+ <%= link_to_function(image_tag('notify.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:action => 'notify_deactivate', :id => @project, :folder_id => subfolder)}')",
+ :title => l(:title_notifications_active_deactivate)) %>
+ <% else %>
+ <%= link_to_function(image_tag('notifynot.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:action => 'notify_activate', :id => @project, :folder_id => subfolder)}')",
+ :title => l(:title_notifications_not_active_activate)) %>
+ <% end %>
+
<% end %>
-
- <% unless locked_for_user && !User.current.allowed_to?(:force_file_unlock, @project)%>
- <% if locked %>
- <% if subfolder.unlockable? %>
- <%= link_to_function(image_tag('unlock.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:controller => 'dmsf', :action => 'unlock',
- :id => @project, :folder_id => subfolder)}')",
- :title => l(:title_unlock_file))%>
+
+
+ <%= link_to(image_tag('edit.png', :class =>'detail_icon'),
+ {:action => 'edit', :id => @project, :folder_id => subfolder },
+ :title => l(:link_edit, :title => h(subfolder.title))) unless locked_for_user %>
+
+
+ <% unless locked_for_user && !User.current.allowed_to?(:force_file_unlock, @project)%>
+ <% if locked %>
+ <% if subfolder.unlockable? %>
+ <%= link_to_function(image_tag('unlock.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:controller => 'dmsf', :action => 'unlock',
+ :id => @project, :folder_id => subfolder)}')",
+ :title => l(:title_unlock_file))%>
+ <% else %>
+ <%= image_tag('locked.png', :plugin => :redmine_dmsf,
+ :title => l(:title_folder_parent_locked, :name => subfolder.lock.reverse[0].folder.title)) %>
+ <% end %>
<% else %>
- <%= image_tag('locked.png', :plugin => :redmine_dmsf,
- :title => l(:title_folder_parent_locked, :name => subfolder.lock.reverse[0].folder.title)) %>
- <% end %>
- <% else %>
- <%= link_to_function(image_tag('lock.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:controller => 'dmsf', :action => 'lock',
- :id => @project, :folder_id => subfolder)}')",
- :title => l(:title_lock_file)) %>
- <% end %>
-
- <% end %>
- <% jetzt = Time.now %>
- <%= link_to_function(image_tag('delete.png', :plugin => :redmine_dmsf),
- "confirmation_link('#{url_for(:action => 'delete', :id => @project, :folder_id => @folder, :delete_folder_id => subfolder)}', '#{l(:question_do_you_really_want_to_delete_this_entry)}')",
- :title => l(:title_delete)) unless locked_for_user %>
+ <%= link_to_function(image_tag('lock.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:controller => 'dmsf', :action => 'lock',
+ :id => @project, :folder_id => subfolder)}')",
+ :title => l(:title_lock_file)) %>
+ <% end %>
+
+ <% end %>
+ <%= link_to_function(image_tag('delete.png', :plugin => :redmine_dmsf),
+ "confirmation_link('#{url_for(:action => 'delete', :id => @project, :folder_id => @folder, :delete_folder_id => subfolder)}', '#{l(:question_do_you_really_want_to_delete_this_entry)}')",
+ :title => l(:title_delete)) unless locked_for_user %>
+
-
-
+
+ <% end %>
|
0 |
0 |
<% end %>
- <% workflows_available = DmsfWorkflow.where(['project_id = ? OR project_id IS NULL', @project.id]).count > 0 %>
+ <% workflows_available = DmsfWorkflow.where(['project_id = ? OR project_id IS NULL', @project.id]).count > 0 %>
<% @files.each do |file| %>
<% unless file.last_revision %>
<% Rails.logger.error "Error: dmsf_file id #{file.id} has no revision!" %>
@@ -219,8 +218,8 @@
<% end %>
<%= file.last_revision.version %> |
-
- <% if wf %>
+ |
+ <% if wf && @file_manipulation_allowed %>
<%= link_to(
file.last_revision.workflow_str(false),
log_dmsf_workflow_path(
@@ -235,97 +234,99 @@
|
<%= h(file.last_revision.user) %> |
- <% if User.current.allowed_to?(:file_approval, @project) %>
-
- <% if file.notification %>
- <%= link_to_function(image_tag('notify.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'notify_deactivate', :id => file)}')",
- :title => l(:title_notifications_active_deactivate)) %>
- <% else %>
- <%= link_to_function(image_tag('notifynot.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'notify_activate', :id => file)}')",
- :title => l(:title_notifications_not_active_activate)) %>
- <% end %>
- <% case file.last_revision.workflow %>
- <% when DmsfWorkflow::STATE_WAITING_FOR_APPROVAL %>
- <% if wf %>
- <% assignments = wf.next_assignments(file.last_revision.id) %>
- <% index = assignments.find_index{|assignment| assignment.user_id == User.current.id} if assignments %>
- <% if index %>
- <%= link_to(
- image_tag('waiting_for_approval.png', :plugin => :redmine_dmsf),
- action_dmsf_workflow_path(
- :project_id => @project.id,
- :id => wf.id,
- :dmsf_workflow_step_assignment_id => assignments[index].id,
- :dmsf_file_revision_id => file.last_revision.id),
- :title => l(:title_waiting_for_approval),
- :remote => true) %>
+ <% if @file_manipulation_allowed %>
+ <% if User.current.allowed_to?(:file_approval, @project) %>
+
+ <% if file.notification %>
+ <%= link_to_function(image_tag('notify.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'notify_deactivate', :id => file)}')",
+ :title => l(:title_notifications_active_deactivate)) %>
+ <% else %>
+ <%= link_to_function(image_tag('notifynot.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'notify_activate', :id => file)}')",
+ :title => l(:title_notifications_not_active_activate)) %>
+ <% end %>
+ <% case file.last_revision.workflow %>
+ <% when DmsfWorkflow::STATE_WAITING_FOR_APPROVAL %>
+ <% if wf %>
+ <% assignments = wf.next_assignments(file.last_revision.id) %>
+ <% index = assignments.find_index{|assignment| assignment.user_id == User.current.id} if assignments %>
+ <% if index %>
+ <%= link_to(
+ image_tag('waiting_for_approval.png', :plugin => :redmine_dmsf),
+ action_dmsf_workflow_path(
+ :project_id => @project.id,
+ :id => wf.id,
+ :dmsf_workflow_step_assignment_id => assignments[index].id,
+ :dmsf_file_revision_id => file.last_revision.id),
+ :title => l(:title_waiting_for_approval),
+ :remote => true) %>
+ <% else %>
+ <%= image_tag('waiting_for_approval.png', :title => "#{l(:label_dmsf_wokflow_action_approve)} #{l(:label_dmsf_wokflow_action_reject)} #{l(:label_dmsf_wokflow_action_delegate)}", :plugin => :redmine_dmsf) %>
+ <% end %>
<% else %>
<%= image_tag('waiting_for_approval.png', :title => "#{l(:label_dmsf_wokflow_action_approve)} #{l(:label_dmsf_wokflow_action_reject)} #{l(:label_dmsf_wokflow_action_delegate)}", :plugin => :redmine_dmsf) %>
<% end %>
- <% else %>
- <%= image_tag('waiting_for_approval.png', :title => "#{l(:label_dmsf_wokflow_action_approve)} #{l(:label_dmsf_wokflow_action_reject)} #{l(:label_dmsf_wokflow_action_delegate)}", :plugin => :redmine_dmsf) %>
- <% end %>
- <% when DmsfWorkflow::STATE_APPROVED %>
- <%= image_tag('approved.png', :title => l(:title_approved), :plugin => :redmine_dmsf) %>
- <% when DmsfWorkflow::STATE_ASSIGNED %>
- <% if User.current && (file.last_revision.dmsf_workflow_assigned_by == User.current.id) && wf %>
- <%= link_to_function(image_tag('assigned.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{start_dmsf_workflow_path(
- :id => file.last_revision.dmsf_workflow_id,
- :dmsf_file_revision_id => file.last_revision.id)}')",
- :title => l(:label_dmsf_wokflow_action_start)) %>
- <% else %>
- <%= image_tag('assigned.png', :title => l(:label_dmsf_wokflow_action_start), :plugin => :redmine_dmsf) %>
- <% end %>
- <% when DmsfWorkflow::STATE_REJECTED %>
- <%= image_tag('rejected.png', :title => l(:title_rejected), :plugin => :redmine_dmsf) %>
- <% else %>
- <% if workflows_available %>
- <%= link_to(
- image_tag('none.png', :plugin => :redmine_dmsf),
- assign_dmsf_workflow_path(
- :project_id => @project.id,
- :dmsf_file_revision_id => file.last_revision.id),
- :title => l(:label_dmsf_wokflow_action_assign),
- :remote => true) %>
- <% end %>
- <% end %>
-
- <% end %>
-
-
- <%= link_to(image_tag('filedetails.png', :plugin => :redmine_dmsf, :class =>'detail_icon'),
- {:controller => 'dmsf_files', :action => :show, :id => file },
- :title => l(:link_details, :title =>h(file.last_revision.title))) %>
-
-
- <% unless locked_for_user && !User.current.allowed_to?(:force_file_unlock, @project)%>
- <% if locked %>
- <% if file.unlockable? %>
- <%= link_to_function(image_tag('unlock.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'unlock', :id => file)}')",
- :title => l(:title_unlock_file))%>
- <% else %>
- <%= image_tag('locked.png', :plugin => :redmine_dmsf,
- :title => l(:title_file_parent_locked, :name => file.folder.lock.reverse[0].folder.title)) %>
- <% end%>
- <% else %>
- <%= link_to_function(image_tag('lock.png', :plugin => :redmine_dmsf),
- "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'lock', :id => file)}')",
- :title => l(:title_lock_file)) %>
- <% end %>
-
+ <% when DmsfWorkflow::STATE_APPROVED %>
+ <%= image_tag('approved.png', :title => l(:title_approved), :plugin => :redmine_dmsf) %>
+ <% when DmsfWorkflow::STATE_ASSIGNED %>
+ <% if User.current && (file.last_revision.dmsf_workflow_assigned_by == User.current.id) && wf %>
+ <%= link_to_function(image_tag('assigned.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{start_dmsf_workflow_path(
+ :id => file.last_revision.dmsf_workflow_id,
+ :dmsf_file_revision_id => file.last_revision.id)}')",
+ :title => l(:label_dmsf_wokflow_action_start)) %>
+ <% else %>
+ <%= image_tag('assigned.png', :title => l(:label_dmsf_wokflow_action_start), :plugin => :redmine_dmsf) %>
+ <% end %>
+ <% when DmsfWorkflow::STATE_REJECTED %>
+ <%= image_tag('rejected.png', :title => l(:title_rejected), :plugin => :redmine_dmsf) %>
+ <% else %>
+ <% if workflows_available %>
+ <%= link_to(
+ image_tag('none.png', :plugin => :redmine_dmsf),
+ assign_dmsf_workflow_path(
+ :project_id => @project.id,
+ :dmsf_file_revision_id => file.last_revision.id),
+ :title => l(:label_dmsf_wokflow_action_assign),
+ :remote => true) %>
+ <% end %>
+ <% end %>
+
<% end %>
- <% if User.current.allowed_to?(:file_manipulation, @project) && !locked_for_user %>
- <%= link_to_function(image_tag('delete.png', :plugin => :redmine_dmsf),
- "confirmation_link('#{url_for(:controller => 'dmsf_files', :action => 'delete', :id => file)}', '#{l(:question_do_you_really_want_to_delete_this_entry)}')",
- :title => l(:title_delete)) %>
- <% end %>
+
+
+ <%= link_to(image_tag('filedetails.png', :plugin => :redmine_dmsf, :class =>'detail_icon'),
+ {:controller => 'dmsf_files', :action => :show, :id => file },
+ :title => l(:link_details, :title =>h(file.last_revision.title))) %>
+
+
+ <% unless locked_for_user && !User.current.allowed_to?(:force_file_unlock, @project)%>
+ <% if locked %>
+ <% if file.unlockable? %>
+ <%= link_to_function(image_tag('unlock.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'unlock', :id => file)}')",
+ :title => l(:title_unlock_file))%>
+ <% else %>
+ <%= image_tag('locked.png', :plugin => :redmine_dmsf,
+ :title => l(:title_file_parent_locked, :name => file.folder.lock.reverse[0].folder.title)) %>
+ <% end%>
+ <% else %>
+ <%= link_to_function(image_tag('lock.png', :plugin => :redmine_dmsf),
+ "manipulation_link('#{url_for(:controller => 'dmsf_files', :action => 'lock', :id => file)}')",
+ :title => l(:title_lock_file)) %>
+ <% end %>
+
+ <% end %>
+ <% unless locked_for_user %>
+ <%= link_to_function(image_tag('delete.png', :plugin => :redmine_dmsf),
+ "confirmation_link('#{url_for(:controller => 'dmsf_files', :action => 'delete', :id => file)}', '#{l(:question_do_you_really_want_to_delete_this_entry)}')",
+ :title => l(:title_delete)) %>
+ <% end %>
+
-
-
+
+ <% end %>
|
1 |
<%= file.last_revision.size %> |
@@ -411,5 +412,5 @@ sUrl = "jquery.dataTables/#{I18n.locale.to_s.downcase}.json" if I18n.locale && !
<% end %>
-<%= render(:partial => 'multi_upload') if (User.current.allowed_to?(:file_manipulation, @project) && !@locked_for_user) %>
+<%= render(:partial => 'multi_upload') if (@file_manipulation_allowed && !@locked_for_user) %>
diff --git a/init.rb b/init.rb
index c23ba62f..c72aff3b 100644
--- a/init.rb
+++ b/init.rb
@@ -49,10 +49,10 @@ Redmine::Plugin.register :redmine_dmsf do
activity_provider :dmsf_files, :class_name => 'DmsfFileRevision', :default => true
project_module :dmsf do
- permission :view_dmsf_folders, {:dmsf => [:show], :dmsf_folders_copy => [:new, :copy_to, :move_to]}
+ permission :view_dmsf_folders, {:dmsf => [:show], :dmsf_folders_copy => [:new, :copy_to, :move_to]}, :read => true
permission :user_preferences, {:dmsf_state => [:user_pref_save]}
permission :view_dmsf_files, {:dmsf => [:entries_operation, :entries_email],
- :dmsf_files => [:show], :dmsf_files_copy => [:new, :create, :move]}
+ :dmsf_files => [:show], :dmsf_files_copy => [:new, :create, :move]}, :read => true
permission :folder_manipulation, {:dmsf => [:new, :create, :delete, :edit, :save, :edit_root, :save_root, :lock, :unlock]}
permission :file_manipulation, {:dmsf_files => [:create_revision, :delete, :lock, :unlock],
:dmsf_upload => [:upload_files, :upload_file, :commit_files]}
@@ -60,7 +60,7 @@ Redmine::Plugin.register :redmine_dmsf do
:dmsf => [:notify_activate, :notify_deactivate],
:dmsf_workflows => [:index, :new, :create, :destroy, :edit, :add_step, :remove_step, :reorder_steps, :update, :start, :assign, :assignment, :action, :new_action, :log, :autocomplete_for_user]}
permission :force_file_unlock, {}
- end
+ end
# Administration menu extension
Redmine::MenuManager.map :admin_menu do |menu|