User idsΒΆ

Clio can track the user ids of those doing the editing of the data, and those who initiate the workflow itself (publish, edit, delete).

The changed_userid attribute on a clio model should contain the person who last changed the data on the model. The application is responsible for setting this userid, either by directly assigning to it, or by calling model.mark_changed() to automatically set it with the current user id.

Clio automatically maintains the published_userid attribute on clio models as well. It contains the user id of the person who published the object. Archived and published versions therefore all have a published_userid. The attribute is None for new versions and versions under edit. The application should not set this attribute itself.

In order for Clio to know the current user id, we need to teach it how to obtain it. This should be done by registering a utility with the Zope Component Architecture. With Grok, this can be done like this:

import grok
from clio.interfaces import ICurrentUserId

def get_userid():
     ... somehow obtain user id ..

# register this function with Clio
grok.global_utility(get_userid, provides=ICurrentUserId,
                    direct=True)

If no utility is registered, the current user id will be set as unknown.

Previous topic

Workflow

Next topic

clio - reference

This Page