I would have a session facade do it. You should "divide and conquer." I would have a controller react to what the session facade comes up with (e.g., if the user doesn't have the permission, the controller would disable some elements of the UI). If you have the session facade object do the reacting (e.g., disable UI elements itself) then it will be coupled with the UI and harder to swap implementations. And, as beyond_ said, you should do this work when you need to know the permission.