-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Preview
Authenticates_rpi is a login system for Rails applications. It is meant for environments like Rensselaer Polytechnic Instute where the Central Authentication Service (CAS) is available to authenticate users.
Authenticates_rpi provides a controller for session interaction, and authenticates users with the rubycas-client plugin. It also provides hooks for user-based authorization with the authenticates_access plugin.
Authenticates_rpi is in development and likely to change over coming weeks. However, v0.1 provides a fairly flexible API, and does the job of logging users in and out, and adding the authorization hooks, quite well. I call this a ‘developer preview’ but for general purposes it should be usable in applicable applications.
The Master branch at github represents a fairly stable product: development occurs on a separate branch and will be pulled back in when stable.
Future improvements will include LDAP user lookup, better error handling, more programmable options for login behavior, signup pages, and more.
The full process in much more detail is on the authenticates_rpi wiki Home Page. However, the quick summary of the installation is installing as a rails plugin, cloning, or installing as a git submodule in vendor/plugins the following repository:
git://github.com/mikldt/authenticates_rpi.git
You’ll also need rubycas-client, and optionally authenticates_access.
Configuring the plugin involves adding a line like this, with parameters describing your user model, to your application controller:
authenticate_rpi Person, :username_field => 'username', :admin_field => 'is_admin'
These methods will become available after configuration:
- logged_in?
- admin_logged_in?
- current_user
See the authenticates_rpi wiki Home Page for full installation, configuration, and usage. There is also some insight to be gleamed form browsing the source at http://github.com/mikldt/authenticates_rpi/tree/master.
The plugin is currently a Developer Preview. For questions, feel free to message mikldt on github, and with issues please use the github Issues system. Right now my focus is getting this running on a few of my own webapps, but long-term, I’d like to make this as useful for a wide audience, and get the code fully tested and up to snuff. Comments welcome!