when user is null the current user will be used
support for false protocol