This is an old revision of the document!
revokeTutorRights(ident uid, ident username, ident exerciseId, ident groupId) {
assume exists //accounts/account[uid]/assistant[id];
assume exists //accounts/account[username]/tutor[exerciseId]/group[groupId];
assume exists //exercises/exercise[exerciseId]/groups/group[groupId]/tutor[account];
# implied by integrity and the assumption before
remove //accounts/account[username]/tutor[exerciseId]/group[groupId];
if size(//accounts/account[username]/tutor[exerciseId]/group) = 0 then # should this be an additional procedure?
remove //accounts/account[username]/tutor[exerciseId];
fi
remove //exercises/exercise[exerciseId]/groups/group[groupId]/tutor[account];
}