identity.model 0.0 "released"

I figured I would make a somewhat formal announcement about one of the python libraries I've been hacking on for a few months and have decided it's good enough to "release" at least to curious developers at this time. Though, I hope to make it a more robust solution over time, hopefully with input from others.

What is It?

identity.model is a python package who's purpose is to provide a way to manage users, groups and permissions. Yes there are other libraries for this, the reason I started writing this one was because I wanted it to be possible to have a universal user store that could be consumed by several applications, rather than making it so the user has to possibly create an account for every application.

So, I would say one difference for the Users, Groups and Permissions in identity.model is that their identities are globally unique. If you are a developer you know what that means, and what that benefits and drawbacks are.

Why does it exist?

Besides the fact that I decided I needed an ability to identify users in a globally unique way, I would say part of it was to scratch my own itch, which shouldn't be surprising, another reason was because as I start to build a web application, managing users, groups and permissions is something I need, but don't want to write from scratch (at least not every single time).

I also wanted to leave my options open on how I could integrate it with another application. Sometimes maybe just dealing with the model classes is the right thing to do, other times letting the built in wsgi applications handle everything is a good place to start. And maybe other times I need to integrate with repoze.who and repoze.what.

What's in it?

At the lowest level you have sqlalchemy based model classes for User, Group, Permission. If you didn't want to use anything else but the data persistence, this could be a good option for you.

There's some handy functions in the manage module for things like creating users, activating etc...

If you want to tie it in to repoze.who and or repoze.what there are plugins for an Authentication Source, Group Source, and Permission Source, all ready to go, you only need to configure r.who and r.what to use it.

And finally, there are what I'm calling mini-apps, which are small wsgi applications that facilitate the entire workflow for stuff like authentication, registration, and password reset. These can be composed into bigger web application in a variety of ways.

Where do I get it?

Last night I moved my repository over to bitbucket you can clone or just download a snapshot, whatever you prefer.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><p> <h1><h2><h3><h4><h5><h6> <img>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • E-Mail addresses are hidden with reCAPTCHA Mailhide.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.