This is an old revision of the document!
grantAssistantRights(ident uid, ident username, ident exerciseId) {
assume exists //accounts/account[uid]/admin;
assume exists //accounts/account[username]; # implicitly true in OO implementations
assume exists //exercises/exercise[exerciseId];
assume not exists //accounts/account[username]/assistant[exerciseId]);
assume not exists //exercises/exercise[exerciseId]/assistant[username]; # implied by integrity and the assumption before
insert //accounts/account[username] <assistant exercise=[exerciseId] />;
insert //exercises/exercise[exerciseId] <assistant account=[username] />;
}