basic access control abstraction for golang projects