Module: Eaco
- Defined in:
- lib/eaco.rb,
lib/eaco/acl.rb,
lib/eaco/dsl.rb,
lib/eaco/rake.rb,
lib/eaco/actor.rb,
lib/eaco/error.rb,
lib/eaco/dsl/acl.rb,
lib/eaco/railtie.rb,
lib/eaco/version.rb,
lib/eaco/adapters.rb,
lib/eaco/coverage.rb,
lib/eaco/cucumber.rb,
lib/eaco/dsl/base.rb,
lib/eaco/resource.rb,
lib/eaco/dsl/actor.rb,
lib/eaco/controller.rb,
lib/eaco/designator.rb,
lib/eaco/rake/utils.rb,
lib/eaco/dsl/resource.rb,
lib/eaco/cucumber/world.rb,
lib/eaco/rake/default_task.rb,
lib/eaco/dsl/actor/designators.rb,
lib/eaco/adapters/active_record.rb,
lib/eaco/cucumber/active_record.rb,
lib/eaco/adapters/couchrest_model.rb,
lib/eaco/dsl/resource/permissions.rb,
lib/eaco/cucumber/active_record/user.rb,
lib/eaco/cucumber/active_record/schema.rb,
lib/eaco/cucumber/active_record/document.rb,
lib/eaco/cucumber/active_record/position.rb,
lib/eaco/cucumber/active_record/department.rb,
lib/eaco/adapters/active_record/compatibility.rb,
lib/eaco/adapters/active_record/postgres_jsonb.rb,
lib/eaco/adapters/couchrest_model/couchdb_lucene.rb,
lib/eaco/cucumber/active_record/user/designators.rb,
lib/eaco/adapters/active_record/compatibility/v32.rb,
lib/eaco/adapters/active_record/compatibility/v40.rb,
lib/eaco/adapters/active_record/compatibility/v41.rb,
lib/eaco/adapters/active_record/compatibility/v42.rb,
lib/eaco/adapters/active_record/compatibility/scoped.rb,
lib/eaco/cucumber/active_record/user/designators/user.rb,
lib/eaco/cucumber/active_record/user/designators/position.rb,
lib/eaco/cucumber/active_record/user/designators/department.rb,
lib/eaco/cucumber/active_record/user/designators/authenticated.rb
Overview
Welcome to Eaco!
Eaco is a full-fledged authorization framework for Ruby that allows you to describe which actions are allowed on your resources, how to identify your users as having a particular privilege and which privileges are granted to a specific resource through the usage of ACLs.
Defined Under Namespace
Modules: Actor, Adapters, Controller, Coverage, Cucumber, DSL, Rake, Resource Classes: ACL, Designator, Error, Forbidden, Malformed, Railtie
Constant Summary collapse
- DEFAULT_RULES =
The location of the default rules file
Pathname('./config/authorization.rb')
- VERSION =
Current version
'0.8.0'
Class Method Summary collapse
-
.eval!(source, path) ⇒ Object
Evaluates the given authorization rules
source, orignally found onpath. -
.parse_default_rules_file! ⇒ Object
Parses and evaluates the authorization rules from the DEFAULT_RULES.
-
.parse_rules!(rules) ⇒ Object
Parses the given
rulesfile.
Class Method Details
.eval!(source, path) ⇒ Object
Evaluates the given authorization rules source, orignally found on path.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/eaco.rb', line 75 def self.eval!(source, path) DSL.send :eval, source, nil, path, 1 true rescue => e raise Error, "\n=== EACO === Error while evaluating rules\n\n\#{e.message}\n\n +--------- -- -\n | \#{e.backtrace.join(\"\\n | \")}\n +-\n\n=== EACO ===\n\n EOF\nend\n" |
.parse_default_rules_file! ⇒ Object
Parses and evaluates the authorization rules from the DEFAULT_RULES.
The authorization rules define all the authorization framework behaviour through the DSL
40 41 42 |
# File 'lib/eaco.rb', line 40 def self.parse_default_rules_file! parse_rules! DEFAULT_RULES end |
.parse_rules!(rules) ⇒ Object
Parses the given rules file.
53 54 55 56 57 58 59 60 |
# File 'lib/eaco.rb', line 53 def self.parse_rules!(rules) unless rules.exist? path = rules.realpath rescue rules.to_s raise Malformed, "Please create #{path} with Eaco authorization rules" end eval! rules.read, rules.realpath.to_s end |