Awesome docs, Gustavo. I really like the @require decorator for tg. Wonder how easy it would be to create a security policy in bfg that would perform the same way.
Regards, David On Nov 26, 2008, at 2:54 PM, Gustavo Narea wrote: > Hello, everybody. > > I am pleased to announce the first beta release of repoze.what, the > authorization framework for WSGI applications. For more > information, you may > visit the repoze.what website: > http://static.repoze.org/whatdocs/ > > Changes: > ======== > > * Removed dependencies on TurboGears and Pylons. > * Introduced a framework-independent function > (repoze.what.authorize.check_authorization) to check authorization > based on a predicate and the WSGI environment, along with the > repoze.what.authorize.NotAuthorizedError exception. > * Now repoze.what is 100% documented. > * Moved the predicates from repoze.what.authorize to > repoze.what.predicates. Nevertheless, they are imported in the > former > to avoid breaking TurboGears 2 applications created when > tg.ext.repoze.who or tgext.authorization existed. > * Added the Not predicate. > * Now you can override the error message of the built-in predicates > or set > your own message at instantiation time by passing the ``msg`` keywork > argument to the predicate. Example:: > > from repoze.what.predicates import is_user > > my_predicate = is_user('carla', msg="Only Carla may come here") > > As a result, if your custom predicate defines the constructor method > (``__init__``), then you're highly encouraged to call its parent > with the > ``msg`` keyword argument. Example:: > > from repoze.what.predicates import Predicate > > class MyCoolPredicate(Predicate): > def __init__(self, **kwargs): > super(MyCoolPredicate, self).__init__(**kwargs) > > * Moved the SQL plugin (repoze.what.plugins.sql) into a separate > package. Also moved repoze.what.plugins.quickstart into that package > because it's specific to the SQL plugin. > * Log messages are no longer sent to standard output if the > ``WHO_LOG`` > environment variable is defined, but with ``AUTH_LOG``. > * Now repoze.what uses logging internally to ease debugging. > > > Backwards-incompatible changes > ------------------------------ > > * If you have custom predicates, you should update the > ``eval_with_object`` > method, which has been renamed to ``_eval_with_environ`` and only > receives > one argument (the WSGI environment). This is, if your method's > signature > looks like this:: > > eval_with_object(obj, errors) > > Now it should look like this:: > > _eval_with_environ(environ) > > Note that ``errors`` are no longer passed. > > On the other hand, the ``error_message`` attribute of predicates > has been > renamed to ``message`` because they are not only used to display > errors > (see repoze.what.predicates). > * The repoze.what.authorize.require decorator has been removed because > it's specific to TurboGears. TurboGears 2 applications will find > it at > tg.require. > > Because this is the first beta release, there should not be more > backwards > incompatible changes in the coming 1.X releases. > > Cheers. > -- > Gustavo Narea <http://gustavonarea.net/>. > > Get rid of unethical constraints! Get freedomware: > http://www.getgnulinux.org/ > > _______________________________________________ > Repoze-dev mailing list > Repoze-dev@lists.repoze.org > http://lists.repoze.org/listinfo/repoze-dev _______________________________________________ Repoze-dev mailing list Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev