Not only do you need to allow page access for each user role, but if there are microflows, nanoflows, and entities on the page you need to allow access to those as well. Do this by hitting security under the module you're working on and adjust the roles under all necessary access tabs :)
In addition to Michael's answer, if your buttons are default buttons without microflows behind them it's possible the users don't have the ‘Create new objects’ or ‘Delete existing objects’ permissions ofthe user access intthe entity access settings
If the buttons on the page trigger microflows, please make sure that the user roles assigned to the user have access to these microflows, if they do not, the user will not be able to see buttons on the page.
Also for your widgets, please make sure that the user has access to read or write the attributes that are displayed using the widgets. If they do not have write access to attributes displayed by the widget they will only be able to view it and not edit it.
Also, make sure that the user roles under Security in the Project explorer are assigned the correct module roles in each module.
If the widget on the page uses account data (for instance, feedback widget uses acccount/Email) and if you have anonymous users turned on and they can view your page, then this might also give a problem. The solution is to create an Atlas_Default_Anonymous Template, in which you omit the account settings in the feedback widget. It is explained in detail in one of the advanced tutorials ;-). Hope this helps.