You can control what each user on a project can access and edit in the 'User Project Permissions' screen.

Note: site administrators automatically have their own default permissions so this is for all other users.

To access these settings for each user, go to the people section of the project and hover over the profile of the person you'd like to edit, so you see the gear icon:

Click the gear icon and you'll see the 'User Project Permissions' screen. There are + icons next to some options which you can click to expand and show more options underneath:

Note: it is important to remember that you will need to press the update button in order to save any changes you have made. Changes will need to be saved by pressing this button and are not saved immediately.

If you choose 'Project Administrator' at the top, all other options will be greyed out since they are included automatically with the Project Administrator level of permissions. Otherwise, you can choose each one individually.

With the "Can Edit All Tasks" option you can allow a user to edit tasks assigned to other users. If they are the creator of the task they will always have edit permissions on a task.  

When it comes to the permissions for billing and time, please note that since invoices can be created with time logs, it's not possible to give access to the billing area without also giving them the permission to log time and to view other people's time on the project. For this reason selecting "Can access billing" gives access to other people's time. 

Advanced options

You can also enable the 'Show Advanced' switch here, which gives you more options for that person beyond access to the project features, such as:

Receive Email Notifications: if this option is not selected, you won't be able to select this person in the notification options for any items in the project (you'll see a red 'x' next to their name).
Is Just An Observer Here: if you add someone as an observer, they won't be visible to be selected in the notifications area and they won't be visible to anyone outside the owner company in the list of people in the project overview, unless they have commented on an item or have a task assigned to them.
Can Set Privacy on Items: you can deselect this to prevent someone from being able to make any items private.

You'll also see the 'Copy to Other Projects' button here, so you can choose a set of permissions for one person then apply them for that person across other projects where they are a member.

Other options

There are also some quick links at the bottom of this screen:

Edit User Details: to access the general profile settings for that person
Resend invite: to send a new copy of the invite with a link to log in
Impersonate: to view the site as that person to check their access and permissions (please note,this is only available to site administrators and you cannot impersonate a site administrator)

When you're happy with the permissions that you've set here, click the 'Finished' button to go back to the people area. 

Note - any permissions that you change in this screen will be applied immediately, without clicking 'Finished' so there's no option to 'cancel' and exit without applying them.

Fore more information on setting task related permissions see: Task permissions