Sha256: a0509b0080a2e725faf4bb52dac8ee942192f1b1c5ea518a1fbfa3b12a3a8274

Contents?: true

Size: 521 Bytes

Versions: 1

Compression:

Stored size: 521 Bytes

Contents

# frozen_string_literal: true
module RbacSystem
    class Authorization
      def initialize(admin, resource, action)
        @admin = admin
        @resource = resource
        @action = action
      end
  
      def authorized?
        roles.each do |role|
          return true if role_authorized?(role)
        end
        false
      end
  
      private
  
      def roles
        @admin.roles
      end
  
      def role_authorized?(role)
        role.permissions[@resource]&.key?(@action)
      end
    end
end
  

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rbac_system-0.1.0 lib/rbac_system/authorization.rb