Sha256: 745f9ddfa70177e44453e1f71be038808c2a1d9fed04e5fad3ef97a03e9d7cd1

Contents?: true

Size: 1.59 KB

Versions: 6

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true
module Decidim
  module Admin
    # A policy to define all the authorizations regarding a
    # ParticipatoryProcess, to be used with Pundit.
    class ParticipatoryProcessPolicy < ApplicationPolicy
      # Checks if the user can see the form for participatory process creation.
      #
      # Returns a Boolean.
      def new?
        user.roles.include?("admin")
      end

      # Checks if the user can create a participatory process.
      #
      # Returns a Boolean.
      def create?
        user.roles.include?("admin")
      end

      # Checks if the user can list a participatory process.
      #
      # Returns a Boolean.
      def index?
        user.roles.include?("admin") && user.organization == record.first.organization
      end

      # Checks if the user can see a participatory process.
      #
      # Returns a Boolean.
      def show?
        user.roles.include?("admin") && user.organization == record.organization
      end

      # Checks if the user can edit a participatory process.
      #
      # Returns a Boolean.
      def edit?
        user.roles.include?("admin") && user.organization == record.organization
      end

      # Checks if the user can update a participatory process.
      #
      # Returns a Boolean.
      def update?
        user.roles.include?("admin") && user.organization == record.organization
      end

      # Checks if the user can destroy a participatory process.
      #
      # Returns a Boolean.
      def destroy?
        user.roles.include?("admin") && user.organization == record.organization
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
decidim-admin-0.0.1.alpha7 app/policies/decidim/admin/participatory_process_policy.rb
decidim-0.0.1.alpha7 decidim-admin/app/policies/decidim/admin/participatory_process_policy.rb
decidim-admin-0.0.1.alpha6 app/policies/decidim/admin/participatory_process_policy.rb
decidim-0.0.1.alpha6 decidim-admin/app/policies/decidim/admin/participatory_process_policy.rb
decidim-admin-0.0.1.alpha5 app/policies/decidim/admin/participatory_process_policy.rb
decidim-0.0.1.alpha5 decidim-admin/app/policies/decidim/admin/participatory_process_policy.rb