Implement Permissions checks into Core

I may have missed some spots...
What happened here? Was this not being used at all?