Issue #404 by cableman: Split user access check into two functions to get finer access control