20141128 (Friday, 28 November 2014)

Worked on the German docs about Lino Welfare.

While working on #16, I stumbled over an relatively old problem which I registered as #20 and then fixed.

Checkin at 13:54 fixes #20.

It took me then a few hours to find the explanation for #16:

The problem occurs only when acting as another user. E.g. I am Rolf and acting as Theresia (who is not manager). I ask to create a new Confirmation. A Confirmation is a UserAuthored. When Lino creates a UserAuthored instance, the author will be set to Rolf because this is my real identity. And then Theresia is not allowed to modify other users’ work because she is not a manager.

The solution was very subtle: get_row_permission must be a bit more permissive: when user A is acting as user B, then neither A nor B are considered to be “other user”.

TODO:

  • I’ll probably also move the UserAuthored mixin to lino.modlib.users.
  • Maybe also make it configurable whether on_create puts user or subst_user.
  • Write test cases to verify these subtleties.