Reworked system db guarding

Now uses base view model to check canActivate. Simpler, less code, less
hacky.