I think you may to change your paradigm on this a little bit. Users actually do this automatically by entering time/work against a task. The first time any work is entered by any single resource against a task it triggers project server to populate the Actual Start date field. In like fashion, when resources (all resources assigned to the task) indicates a task is complete (Remaining Work is zero) the Actual Finish is populated.
Oh, and if you didn't get it from the above comments, any one task is NOT finished until all the resources that are assigned to the task have indicated that there is zero work remaining for that specific task - so don't expect tasks so show actual completion unless that is true. Actual Finish will show NA until all resources report zero work remaining.
If you're talking about the planned start and finish dates - these are something only the project manager can change, through Project Professional. These fields are referred to as Start and Finish.
If you use baselines - which you should, so you can see how your plan changes over time - this all becomes a little more complicated. When the baseline is saved the original Start and Finish dates are copied into Baseline Start and Baseline Finish. Then those dates are used for planned start and finish from then on - unless of course you remove the baseline.
Hope that helps.
Earl
How do I enable the start and finish dates to be editable from the Web
Project Server so the users on the team can enter the dates they start and
stop the tasks?