Sha256: 2515c011561f2911a06f301d68486f3daed9bff471d2b4f1308542964746e186
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true module Decidim module Consultations module Abilities # Defines the base abilities related to consultations and questions for # authenticated users. Intended to be used with `cancancan`. class CurrentUserAbility < Decidim::Abilities::EveryoneAbility attr_reader :user def initialize(user, context) super(user, context) return unless user @user = user can :vote, Question do |question| can_vote?(question) end can :unvote, Question do |question| can_unvote?(question) end end private def can_vote?(question) question.organization.id == user.organization.id && question.consultation.active? && question.consultation.published? && question.published? && !question.voted_by?(user) end def can_unvote?(question) question.consultation.active? && question.consultation.published? && question.published? && question.voted_by?(user) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems