#1080 Menu permissions
This commit is contained in:
parent
cea6885293
commit
50e2f0730e
@ -41,11 +41,16 @@ class DmsfContextMenusController < ApplicationController
|
||||
@unlockable = @allowed && @dmsf_folder.unlockable? && (!@dmsf_folder.locked_for_user?) &&
|
||||
User.current.allowed_to?(:force_file_unlock, @project)
|
||||
@email_allowed = User.current.allowed_to?(:email_documents, @project)
|
||||
elsif @dmsf_link
|
||||
elsif @dmsf_link # url link
|
||||
@locked = false
|
||||
@unlockable = false
|
||||
@allowed = User.current.allowed_to? :file_manipulation, @project
|
||||
else
|
||||
@allowed = User.current.allowed_to?(:folder_manipulation, @project) &&
|
||||
User.current.allowed_to?(:file_delete, @project)
|
||||
@email_allowed = false
|
||||
else # multiple selection
|
||||
@locked = false
|
||||
@unlockable = false
|
||||
@allowed = User.current.allowed_to?(:file_manipulation, @project) &&
|
||||
User.current.allowed_to?(:folder_manipulation, @project)
|
||||
@email_allowed = User.current.allowed_to?(:email_documents, @project)
|
||||
end
|
||||
render layout: false
|
||||
@ -58,13 +63,16 @@ class DmsfContextMenusController < ApplicationController
|
||||
@allowed_restore = User.current.allowed_to? :file_manipulation, @project
|
||||
@allowed_delete = User.current.allowed_to? :file_delete, @project
|
||||
elsif @dmsf_folder
|
||||
@allowed = User.current.allowed_to?(:folder_manipulation, @project)
|
||||
elsif @dmsf_link
|
||||
@allowed_restore = User.current.allowed_to? :folder_manipulation, @project
|
||||
@allowed_delete = @allowed_restore
|
||||
elsif @dmsf_link # url link
|
||||
@allowed_restore = User.current.allowed_to? :file_manipulation, @project
|
||||
@allowed_delete = User.current.allowed_to? :file_delete, @project
|
||||
else
|
||||
@allowed = User.current.allowed_to?(:folder_manipulation, @project) &&
|
||||
User.current.allowed_to?(:file_manipulation, @project)
|
||||
else # multiple selection
|
||||
@allowed_restore = User.current.allowed_to?(:file_manipulation, @project) &&
|
||||
User.current.allowed_to?(:folder_manipulation, @project)
|
||||
@allowed_delete = User.current.allowed_to?(:file_delete, @project) &&
|
||||
User.current.allowed_to?(:folder_manipulation, @project)
|
||||
end
|
||||
render layout: false
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
@ -87,7 +95,7 @@ class DmsfContextMenusController < ApplicationController
|
||||
@dmsf_file = DmsfFile.find_by(id: $1)
|
||||
elsif params[:ids][0] =~ /(file|url)-link-(\d+)/
|
||||
@dmsf_link = DmsfLink.find_by(id: $2)
|
||||
@dmsf_file = DmsfFile.find_by(id: @dmsf_link.target_id) if @dmsf_link && @dmsf_link.target_type != 'DmsfUrl'
|
||||
@dmsf_file = DmsfFile.find_by(id: @dmsf_link.target_id) if @dmsf_link && (@dmsf_link.target_type != 'DmsfUrl')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -105,7 +105,6 @@ class DmsfController < ApplicationController
|
||||
format.html {
|
||||
@dmsf_count = @query.dmsf_count
|
||||
@dmsf_pages = Paginator.new @dmsf_count, per_page_option, params['page']
|
||||
#@dmsf_nodes = @query.dmsf_nodes(offset: @dmsf_pages.offset, limit: @dmsf_pages.per_page)
|
||||
render layout: !request.xhr?
|
||||
}
|
||||
format.api
|
||||
@ -151,7 +150,6 @@ class DmsfController < ApplicationController
|
||||
format.html {
|
||||
@dmsf_count = @query.dmsf_count
|
||||
@dmsf_pages = Paginator.new @dmsf_count, per_page_option, params['page']
|
||||
#@dmsf_nodes = @query.dmsf_nodes(offset: @dmsf_pages.offset, limit: @dmsf_pages.per_page)
|
||||
render layout: !request.xhr?
|
||||
}
|
||||
end
|
||||
|
||||
@ -576,24 +576,36 @@ class DmsfFolder < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def css_classes
|
||||
classes = %w(dmsf_tree)
|
||||
if type == 'folder'
|
||||
classes << 'dmsf_collapsed'
|
||||
classes << 'dmsf-not-loaded'
|
||||
else
|
||||
classes << 'dmsf_child'
|
||||
end
|
||||
if title =~ /^\./
|
||||
classes << 'dmsf_system'
|
||||
else
|
||||
classes << 'hascontextmenu'
|
||||
classes << 'dmsf-draggable'
|
||||
if type =~ /^folder/
|
||||
classes << 'dmsf-droppable'
|
||||
def css_classes(trash)
|
||||
classes = []
|
||||
if trash
|
||||
if title =~ /^\./
|
||||
classes << 'dmsf_system'
|
||||
else
|
||||
classes << 'hascontextmenu'
|
||||
if type =~ /link$/
|
||||
classes << 'dmsf_gray'
|
||||
end
|
||||
end
|
||||
if type =~ /link$/
|
||||
classes << 'dmsf_gray'
|
||||
else
|
||||
classes << 'dmsf_tree'
|
||||
if type == 'folder'
|
||||
classes << 'dmsf_collapsed'
|
||||
classes << 'dmsf-not-loaded'
|
||||
else
|
||||
classes << 'dmsf_child'
|
||||
end
|
||||
if title =~ /^\./
|
||||
classes << 'dmsf_system'
|
||||
else
|
||||
classes << 'hascontextmenu'
|
||||
classes << 'dmsf-draggable'
|
||||
if type =~ /^folder/
|
||||
classes << 'dmsf-droppable'
|
||||
end
|
||||
if type =~ /link$/
|
||||
classes << 'dmsf_gray'
|
||||
end
|
||||
end
|
||||
end
|
||||
classes.join(' ')
|
||||
|
||||
@ -202,7 +202,7 @@ class DmsfQuery < Query
|
||||
end
|
||||
scope = DmsfLink.
|
||||
select(%{
|
||||
dmsf_folders.id AS id,
|
||||
dmsf_links.id AS id,
|
||||
COALESCE(dmsf_folders.project_id, dmsf_links.project_id) AS project_id,
|
||||
NULL AS revision_id,
|
||||
dmsf_links.name AS title,
|
||||
@ -270,7 +270,7 @@ class DmsfQuery < Query
|
||||
end
|
||||
scope = DmsfLink.
|
||||
select(%{
|
||||
dmsf_files.id AS id,
|
||||
dmsf_links.id AS id,
|
||||
dmsf_files.project_id AS project_id,
|
||||
dmsf_file_revisions.id AS revision_id,
|
||||
dmsf_links.name AS title,
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<% query.dmsf_nodes.each do |node| %>
|
||||
<% system = node.title =~ /^\./ %>
|
||||
<% @idnt ||= 0 %>
|
||||
<tr id="<%= node.id %>span" class="<%= cycle('odd', 'even') %> <%= node.css_classes %> <%= params[:classes] %> <%= @idnt > 0 ? "idnt idnt-#{@idnt}" : nil %>">
|
||||
<tr id="<%= node.id %>span" class="<%= cycle('odd', 'even') %> <%= node.css_classes(query.deleted) %> <%= params[:classes] %> <%= @idnt > 0 ? "idnt idnt-#{@idnt}" : nil %>">
|
||||
<td class="checkbox hide-when-print">
|
||||
<%= check_box_tag('ids[]', "#{node.type}-#{node.id}", false, id: nil) unless system %>
|
||||
</td>
|
||||
|
||||
@ -22,10 +22,10 @@
|
||||
|
||||
<li>
|
||||
<%= context_menu_link l(:title_restore), entries_operations_dmsf_path(id: project, folder_id: folder,
|
||||
ids: params[:ids], restore_entries: true), method: :post, class: 'icon icon-cancel', disabled: !allowed %>
|
||||
ids: params[:ids], restore_entries: true), method: :post, class: 'icon icon-cancel', disabled: !allowed_restore %>
|
||||
</li>
|
||||
<li>
|
||||
<%= context_menu_link l(:button_delete), entries_operations_dmsf_path(id: project, folder_id: folder,
|
||||
ids: params[:ids], destroy_entries: true), method: :post, class: 'icon icon-del',
|
||||
data: { confirm: l(:text_are_you_sure) }, id: 'dmsf-cm-delete', disabled: !allowed %>
|
||||
data: { confirm: l(:text_are_you_sure) }, id: 'dmsf-cm-delete', disabled: !allowed_delete %>
|
||||
</li>
|
||||
|
||||
@ -29,7 +29,8 @@
|
||||
<%= render(partial: 'folder_trash', locals: { project: @project, folder: @folder, dmsf_folder: @dmsf_folder,
|
||||
dmsf_link: @dmsf_link, allowed: @allowed }) %>
|
||||
<% else %>
|
||||
<%= render(partial: 'multiple_trash', locals: { project: @project, folder: @folder, allowed: @allowed }) %>
|
||||
<%= render(partial: 'multiple_trash', locals: { project: @project, folder: @folder, allowed_delete: @allowed_delete,
|
||||
allowed_restore: @allowed_restore }) %>
|
||||
<% end %>
|
||||
</ul>
|
||||
<%= late_javascript_tag do %>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user