# frozen_string_literal: true module C class Ability include CanCan::Ability def initialize(user) user ||= C::User.new can :manage, :all if user user.permissions.each do |permission| opts = {} opts[:id] = permission.subject_id if permission.subject_id can [:read], permission.subject, opts if permission.read? can [:new, :create], permission.subject, opts if permission.new? can [:edit, :update], permission.subject, opts if permission.edit? can [:destroy, :confirm_destroy], permission.subject, opts if permission.remove? end end end end