The repoze.what
Quickstart plugin¶
Author: | Gustavo Narea. |
---|---|
Latest release: | 1.0.10 |
Overview
This plugin allows you to take advantage of a rather simple, and usual, authentication and authorization setup, in which the users’ data, the groups and the permissions used in the application are all stored in a SQLAlchemy or Elixir-managed database.
Put simply, it configures repoze.who
and repoze.what
in one
go so that you can have an authentication and authorization system working
quickly – hence the name.
How to install¶
The minimum requirements are SQLAlchemy, repoze.who.plugins.sa
,
repoze.who.plugins.friendlyform
, repoze.what
and
repoze.what.plugins.sql
, and you can install it all with
easy_install
:
easy_install repoze.what-quickstart
Support and development¶
The prefered place to ask questions is the Repoze mailing list. Some users are on the #repoze IRC channel.
This project is hosted on GitHub.
How to use it¶
To get started quickly, you may copy the SQLAlchemy-powered model defined in model_sa_example.py (or model_elixir_example.py for Elixir) and then create at least a few rows to try it out:
u = User()
u.user_name = u'manager'
u.password = u'managepass'
DBSession.save(u)
g = Group()
g.group_name = u'managers'
g.users.append(u)
DBSession.save(g)
p = Permission()
p.permission_name = u'manage'
p.groups.append(g)
DBSession.save(p)
DBSession.flush()
Now that you have some rows in your database, you can set up authentication and authorization as explained in the next section.
How to set it up¶
Although this is a repoze.what
plugin and repoze.what
is meant
to deal with authorization only, this module configures authentication and
identification for you through repoze.who
as well.
Such a setup is performed by the setup_sql_auth()
function:
See “changing attribute names” to learn how to use the translations
argument in setup_sql_auth()
.
Customizing the model definition¶
Your auth-related model doesn’t have to be like the default one, where the
class for your users, groups and permissions are, respectively, User
,
Group
and Permission
, and your users’ user name is available in
User.user_name
. What if you prefer Member
and Team
instead of
User
and Group
, respectively? Or what if you prefer Group.members
instead of Group.users
? Read on!
Changing class names¶
Changing the name of an auth-related class (User
, Group
or Permission
)
is a rather simple task. Just rename it in your model, and then make sure to
update the parameters you pass to setup_sql_auth()
accordingly.
Changing attribute names¶
You can also change the name of the attributes assumed by
repoze.what
in your auth-related classes, such as renaming
User.groups
to User.memberships
.
Changing such values is what repoze.what
calls “translating”.
You may set the translations for the attributes of the models
repoze.what
deals with in a dictionary passed to setup_sql_auth()
as its translations
parameters. For
example, if you want to replace Group.users
with Group.members
, you may
use the following translation dictionary:
translations['users'] = 'members'
Below are the translations that you would be able to set in the translations
dictionary used above:
user_name
: The translation for the attribute inUser.user_name
.users
: The translation for the attribute inGroup.users
.group_name
: The translation for the attribute inGroup.group_name
.groups
: The translation for the attribute inUser.groups
andPermission.groups
.permission_name
: The translation for the attribute inPermission.permission_name
.permissions
: The translation for the attribute inUser.permissions
andGroup.permissions
.validate_password
: The translation for the method inUser.validate_password
.
Contents¶
repoze.what
Quickstart via configuration filesrepoze.what.plugins.quickstart
releases- Version 1.0.9 (2011-11-29)
- Version 1.0.8 (2010-05-20)
- Version 1.0.7 (2010-05-05)
- Version 1.0.6 (2010-01-31)
- Version 1.0.5 (2010-01-27)
- Version 1.0.4 (2009-12-07)
- Version 1.0.2 and 1.0.3 (2009-10-09)
- Version 1.0.1 (2009-08-14)
- Version 1.0 (2009-03-02)
- Version 1.0rc4 (2009-02-18)
- Version 1.0rc3 (2009-02-17)
- Version 1.0rc2 (2009-02-11)
- Version 1.0rc1 (2009-01-30)