Sha256: 41b67ff8466bbdcbdecebbc4b8771d9a00a8fcc0c7e0b0747245dce16af870b6
Contents?: true
Size: 1.01 KB
Versions: 8
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Decidim module Surveys module Abilities # Defines the abilities related to surveys for a logged in user. # Intended to be used with `cancancan`. class CurrentUser include CanCan::Ability attr_reader :user, :context def initialize(user, context) return unless user @user = user @context = context can :answer, Survey if authorized?(:answer) end private def authorized?(action) return unless feature ActionAuthorizer.new(user, feature, action).authorize.ok? end def current_settings context.fetch(:current_settings, nil) end def feature_settings context.fetch(:feature_settings, nil) end def feature feature = context.fetch(:current_feature, nil) return nil unless feature && feature.manifest.name == :surveys feature end end end end end
Version data entries
8 entries across 8 versions & 2 rubygems