This is a classic problem as systems grow over time. The model begins with a half dozen permissions, and over time it grows to many time that, at which point it becomes ugly and unmanageable.
I would look into role based access control. You define a series of roles which can be assigned to your users. The permissions are then assigned to the role, not the user. This makes user management very easy, even for people with little understanding of the system -- rather than having to select from hundreds of permissions, they are choosing from a small number of roles. Whenever you need more granularity, simple create new roles.
It may look intimidating at first, but you're actually looking at just a few tables:
- user_role_assn
- role
- role_permission_assn
- permission
- permission_object (lookup)
- permission_operation (lookup)
I implemented the basic RBAC spec a few months ago, and the initial revision only took 3-4 days to build and implement.