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.