<commit_before>h1. Acl9

Acl9 is yet another solution for role-based authorization in Rails. It consists of two
subsystems which can be used separately.

*Role control subsystem* allows you to set and query user roles for various objects.

*Access control subsystem* allows you to specify different role-based access rules
inside controllers. 

A bunch of access rules is translated into a complex
boolean expression. Then it's turned into a lambda or a method and can
be used with @before_filter@. Thus you can block unprivileged access to certain
actions of your controller.

An example:

<pre><code>
  class VerySecretController < ApplicationController
    access_control do
      allow :superadmin
      allow :owner, :of => :secret

      action :index do
        allow anonymous, logged_in
      end

      allow logged_in, :to => :show
      allow :manager, :of => :secret, :except => [:delete, :destroy]
      deny :thiefs
    end

    def index
      # ...
    end

    # ...
  end
</code></pre>

h1. Contacts

Acl9 is hosted on the GitHub: http://github.com/be9/acl9

You may find tutorials and additional docs on the "wiki page":http://wiki.github.com/be9/acl9

Rdocs are available here: http://rdoc.info/projects/be9/acl9

If you have questions, please post to the 
"acl9-discuss group":http://groups.google.com/group/acl9-discuss

h1. Installation

Acl9 can be installed as a gem from "GitHub":http://github.com.

Add the following line to your @config/environment.rb@:

<pre><code>
  config.gem "be9-acl9", :source => "http://gems.github.com", :lib => "acl9"
</pre></code>

Then run @rake gems:install@ (with possible @rake gems:unpack@ thereafter) and you're done!

Alternatively you can install Acl9 as a plugin:

<pre><code>
  script/plugin install git://github.com/be9/acl9.git
</pre></code>
<commit_msg>Some URL fixes in README<commit_after>h1. Acl9

Acl9 is yet another solution for role-based authorization in Rails. It consists of two
subsystems which can be used separately.

*Role control subsystem* allows you to set and query user roles for various objects.

*Access control subsystem* allows you to specify different role-based access rules
inside controllers. 

A bunch of access rules is translated into a complex
boolean expression. Then it's turned into a lambda or a method and can
be used with @before_filter@. Thus you can block unprivileged access to certain
actions of your controller.

An example:

<pre><code>
  class VerySecretController < ApplicationController
    access_control do
      allow :superadmin
      allow :owner, :of => :secret

      action :index do
        allow anonymous, logged_in
      end

      allow logged_in, :to => :show
      allow :manager, :of => :secret, :except => [:delete, :destroy]
      deny :thiefs
    end

    def index
      # ...
    end

    # ...
  end
</code></pre>

h1. Contacts

Acl9 is hosted "on the GitHub":http://github.com/be9/acl9.

You may find tutorials and additional docs on the "wiki page":http://wiki.github.com/be9/acl9.

Rdocs are available "here":http://rdoc.info/projects/be9/acl9.

If you have questions, please post to the 
"acl9-discuss group":http://groups.google.com/group/acl9-discuss

h1. Installation

Acl9 can be installed as a gem from "GitHub":http://github.com.

Add the following line to your @config/environment.rb@:

<pre><code>
  config.gem "be9-acl9", :source => "http://gems.github.com", :lib => "acl9"
</pre></code>

Then run @rake gems:install@ (with possible @rake gems:unpack@ thereafter) and you're done!

Alternatively you can install Acl9 as a plugin:

<pre><code>
  script/plugin install git://github.com/be9/acl9.git
</pre></code>

{'fraction_non_alphanumeric': 0.10191256830601093, 'fraction_numerical': 0.011475409836065573, 'mean_word_length': 3.530940594059406, 'pattern_counts': {'":': 8, '<': 29, '<?xml version=': 0, '>': 39, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1300466', 'n_tokens_mistral': 1148, 'n_tokens_neox': 1098, 'n_words': 430}