Module: Scimitar::Rbac
- Defined in:
- lib/scimitar/rbac.rb,
lib/scimitar/rbac/engine.rb,
lib/scimitar/rbac/version.rb,
lib/scimitar/rbac/route_helper.rb
Defined Under Namespace
Modules: RouteHelper Classes: Engine, Error
Constant Summary collapse
- URN_PREFIX =
URN prefix for RBAC extension schemas
"urn:ietf:params:scim:schemas:extension:rbac:2.0"- VERSION =
"0.1.2"
Class Method Summary collapse
-
.load! ⇒ Object
Eagerly load all RBAC components.
-
.register_resources! ⇒ Object
Register all RBAC resources with the Scimitar engine.
-
.reset! ⇒ Object
private
Reset load state — useful for testing.
Class Method Details
.load! ⇒ Object
Eagerly load all RBAC components. Called after Rails and scimitar are fully initialized (via Engine initializer or manually).
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/scimitar/rbac.rb', line 17 def self.load! return if @loaded # Complex type schemas (must be loaded before the complex types # that reference them and before resource schemas that use them) require_relative "rbac/schema/hierarchy_member" require_relative "rbac/schema/role_assignment" require_relative "rbac/schema/entitlement_assignment" require_relative "rbac/schema/application_reference" # Complex types (must be loaded before resource schemas that reference them) require_relative "rbac/complex_types/hierarchy_member" require_relative "rbac/complex_types/role_assignment" require_relative "rbac/complex_types/entitlement_assignment" require_relative "rbac/complex_types/application_reference" # Resource schemas require_relative "rbac/schema/role" require_relative "rbac/schema/entitlement" require_relative "rbac/schema/application" # Resources require_relative "rbac/resources/role" require_relative "rbac/resources/entitlement" require_relative "rbac/resources/application" @loaded = true end |
.register_resources! ⇒ Object
Register all RBAC resources with the Scimitar engine. Called automatically by the Rails engine, or can be called manually.
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/scimitar/rbac.rb', line 48 def self.register_resources! load! [ Scimitar::Resources::Rbac::Role, Scimitar::Resources::Rbac::Entitlement, Scimitar::Resources::Rbac::Application ].each do |resource| unless Scimitar::Engine.custom_resources.include?(resource) Scimitar::Engine.add_custom_resource(resource) end end end |
.reset! ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Reset load state — useful for testing
64 65 66 |
# File 'lib/scimitar/rbac.rb', line 64 def self.reset! @loaded = false end |