Class: Decidim::Meetings::Permissions

Inherits:
DefaultPermissions
  • Object
show all
Defined in:
app/permissions/decidim/meetings/permissions.rb

Instance Method Summary collapse

Instance Method Details

#permissionsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/permissions/decidim/meetings/permissions.rb', line 8

def permissions
  # Delegate the admin permission checks to the admin permissions class
  return Decidim::Meetings::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
  return permission_action if permission_action.scope != :public

  return Decidim::Meetings::MeetingPermissions.new(user, permission_action, context).permissions if subject == :meeting

  toggle_allow(can_respond_question?) if subject == :response && action == :create
  toggle_allow(can_update_question?) if subject == :question && action == :update
  toggle_allow(can_update_poll?) if subject == :poll && action == :update

  return permission_action unless user

  permission_action
end