Limit access to a view based on profile field
I do this on my site using Rules.  I use the Data comparison condition on profile save and then add or remove the role as necessary.  If you do decide to use the Rules module, make sure to add a NOT Data comparison as well to make sure the Rule doesn't get called multiple times (I had problems with this).

Example:


Event: After updating an existing user account
Condition: NOT Data Comparison: account-unchanged:field_mycheckbox is Yes
Condition: Data Comparison: account:field_mycheckbox is Yes
Action: Add a role