Sha256: c6a9cecd5602e4fbfe043b1179be852903f79cc1ad74cedd7a0023c389c23ca6
Contents?: true
Size: 1.14 KB
Versions: 54
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true module Decidim module Accountability module Admin class Permissions < Decidim::DefaultPermissions def permissions return permission_action if permission_action.scope != :admin permission_action.allow! if can_perform_actions_on?(:result, result) permission_action.allow! if can_perform_actions_on?(:status, status) permission_action.allow! if can_perform_actions_on?(:timeline_entry, timeline_entry) permission_action end private def result @result ||= context.fetch(:result, nil) end def status @status ||= context.fetch(:status, nil) end def timeline_entry @timeline_entry ||= context.fetch(:timeline_entry, nil) end def can_perform_actions_on?(subject, resource) return unless permission_action.subject == subject case permission_action.action when :create true when :update, :destroy resource.present? else false end end end end end end
Version data entries
54 entries across 54 versions & 1 rubygems