README.markdown in cream-0.7.3 vs README.markdown in cream-0.7.5

- old
+ new

@@ -1,11 +1,11 @@ # Cream This project aims to assist you in setting up a complete user login and role permission system for your Rails 3 app. -It targets [Devise](http://github.com/plataformatec/devise) as the Session system, [CanCan](http://github.com/ryanb/cancan) as the permission system and -[Roles](http://github.com/kristianmandrup/roles_generic) as the user Roles system. +It targets [Devise](http://github.com/plataformatec/devise) as the Authentication system, [CanCan](http://github.com/ryanb/cancan) with Permits and Licenses as the Authorization system and [Roles Generic](http://github.com/kristianmandrup/roles_generic) as the user Roles system. + The objective of this project is to * Integrate all these sub-systems * Provide a generator that can auto-configure your Rails 3 app with these sub-systems for a given ORM ## Status @@ -17,16 +17,24 @@ I have now also started a new project called [Cream rails 3 app](http://github.com/kristianmandrup/cream-rails3-app) which is to be a template Rails 3 project that demonstrates what a final Rails 3 app using Cream will look like. I plan to use this as a template for the Cream config generator, making sure that given Mongo Mapper as the ORM and default arguments, the generartor should generate a "mirror image" of this template project. You are most welcome to help me in this effort or provide suggestions etc. The README of the template project will contain a recipe with the steps to be taken to produce it ;) -NOTE: I have renamed the old 'auth-assistant' project to this project called 'cream'. +### Update Nov 25, 2010 -## Session systems +Cream dependency to *cancan-permits* updated to use version 0.3.2. +Cream Permits Config generator uses new *cancan:permits* and *cancan:licenses* generators. -Cream targets [Devise](http://github.com/plataformatec/devise) as the Session system of choice +Currently to activate Cream in a rails app, insert this line in a Rails initializer. +<code> + require 'cream/configure/rails' +</code> +## Authentication systems + +Cream targets [Devise](http://github.com/plataformatec/devise) as the Authentication system of choice + * [devise](http://github.com/plataformatec/devise) ### Devise links The project [devise links](http://github.com/kristianmandrup/devise-links) adds more convenience for creating view links to trigger Devise session actions. @@ -43,19 +51,24 @@ * [Roles Active Record](http://github.com/kristianmandrup/roles_active_record) * [Roles DataMapper](http://github.com/kristianmandrup/roles_data_mapper) * [Roles MongoMapper](http://github.com/kristianmandrup/roles_mongo_mapper) * [Roles Mongoid](http://github.com/kristianmandrup/roles_for_mongoid) +* [Roles Mongoid](http://github.com/kristianmandrup/roles_for_mongoid) +* [Roles Simply Stored](https://github.com/kristianmandrup/roles_simply_stored) _Role Groups_ Document DBs such as *Mongo* and *Riak* are good for modeling a role-group hierarchical relationship. Role-Group support is planned as a future add-on for the roles strategies integration. (Any assistance appreciated!) _Note:_ You are most welcome to provide "plugins" for any other role frameworks. Please follow the API conventions of Roles generic. -Update: Currently in the process of expanding the API a little (add, remove, exhange roles) while making it more generic and flexible. +_Update:_ +Roles Generic has recently been upgraded with a better API, architecture, framework for testing and more and better functionality. It should also now be more DRY and +easier/simpler to add more strategies and Datastore adapters. + ## Permission systems There is support for the [CanCan](http://github.com/ryanb/cancan) permission system. I have created a [Cancan permits](http://github.com/kristianmandrup/cancan-permits) gem that adds the concept of Permits for each role (see below). @@ -68,10 +81,11 @@ * Active Record * Data Mapper * Mongo Mapper * Mongoid +* Couch DB These ORMs are also supported for the Roles strategy system. The Permission system should not have any ORM dependency. There are plans to create a top-level generator which sets up your project with all these systems for a given ORM. ## Installation and configuration ## @@ -95,11 +109,17 @@ * Active Record * Data Mapper * Mongo Mapper * Mongoid +* Couch DB +### Update + +The Role systems for Active Record, Mongoid and MongoMapper have recently been upgraded to take advantage of the new Roles Generic API and archictecture. +I hope to soon have time to also upgrade the remaining ORM Role adapters. + ## Permission system The only Permission system currently supported is *CanCan*. ### CanCan @@ -116,10 +136,14 @@ Currently CanCan is supported as the permission system. I have added the concept of Permits (and optionally Licenses) linked to Roles. Check out [Cancan permits](http://github.com/kristianmandrup/cancan-permits) for more info for how to use Permits. Cream has ben updated to support my the version of *Cancan permits*, which now support all the ORMs that both Cream and Roles Generic support. -The various players are starting to play together nice! + +For more advanced role/permission scenarios you can create Licenses placed in '/app/licenses/', which are 'permission sets' that can be reused across multiple Permits. +Note: The gem *cancan-permits* comes with both a *permits* and a *licenses* generator. + +See [CanCan permits demo app](https://github.com/kristianmandrup/cancan-permits-demo) for an example of how to use cancan-permits and licenses. ## Generators The following generators are currently available