use User object for access check