A permission system implemented as a trait