Share tags2

Supersedes #11351.
Why can user be null? If you want to return all tags of a user, simply create a second method, thats simpler