serradura/u-authorization

View on GitHub
lib/micro/authorization/permissions.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

require 'micro/authorization/permissions/for_each_feature'
require 'micro/authorization/permissions/checker'
require 'micro/authorization/permissions/model'

module Micro
  module Authorization
    module Permissions
      def self.[](instance)
        return instance if instance.is_a?(Permissions::Model)

        raise ArgumentError.new(
          "#{instance.inspect} must be a #{Permissions::Model.name}"
        )
      end

      def self.new(permissions, context: [])
        Permissions::Model.new(permissions, context)
      end
    end
  end
end