Properly decorate class based view

By moving the functions from urls we make it obvious that the CBV is protected.
We need to use @method_decorator on the dispatch method since we cannot
decorate the CBV's methods directly.