Add role-based authorization

Closes #3.