durusmail: qp: permissions and root object
permissions and root object
2006-01-24
2006-01-24
permissions and root object
David Binger
2006-01-24
On Jan 24, 2006, at 3:43 PM, mario ruggier wrote:

> but unless i misunderstand something, i suspect this is simply a
> remnant of some previous idea you were working with. I take it that
> this method should simply be:
>
>     def is_granted(self, permission, other=True):
>    ...

Good eye, Mario!  And your explanation is accurate, too.
I checked this in so we'll have it in the next release, which
I hope will come next week.

To preview the next release, here is the changelog as it is at the
moment:

     Change user root BTree object into a UserDatabase.  This change
will
     require existing QP applications to update using a script like the
     following example:

                from qp.pub.publish import Publisher
                from durus.file_storage import FileStorage
                from durus.connection import Connection
                from qp.lib.site import Site

                if __name__ == '__main__':
                    site = Site('durusmail')
                    connection = Connection(FileStorage(site.get_durus_file()))
                    publisher = Publisher(connection, site)

                    # Update user_db from qp version 1.3 to qp version 1.4.
                    # Also replace publisher.get_users() calls in your code
                    # with publisher.get_user_db().get_users().
                    user_db = publisher.get_root()['user_db']
                    user_db.users = publisher.get_root()['users']
                    del publisher.get_root()['users']

                    publisher.commit()
                    publisher.get_connection().pack()

        Remove Publisher.get_users() and add Publisher.get_user_db().  If your
        code was using get_users(), you can replace those calls with
        get_user_db().get_users().

The motivation for this is that it makes it a little easier for us to
convert our existing applications to work with qp.

Other than that, qp is pretty stable.

We'll probably also release a Durus update at the same time.
The changes there are not disruptive:  just adding some methods to
BTree.



reply