# Stash Latest (2.9) : Controlling access to code

Added by pwatson , edited by pwatson on Jul 21, 2013

Stash provides the following types of permissions to allow fully customisable control of access to code:

## Global permissions

- Control user and group access to Stash projects and to the Stash server configuration.
- For example, these can be used to control the number of user accounts that can can access Stash for licensing purposes.
- See Global permissions.

## Project permissions

- Apply the same access permissions to all repositories in a project.
- For example, these can be used to define the core development team for a project.
- See Using project permissions.

## Repository permissions

- Extend access to a particular repository for other, non-core, users.
- For example, these can be used to allow external developers or consultants access to a repository for special tasks or responsibilities.
- See Using repository permissions.

## Branch permissions

- Control commits to specific branches within a repository.
- For example, these can provide a way to enforce workflow roles such as the Release Manager, who needs to control merges to the release branch.
- See Using branch permissions.

Note that you can also allow public (anonymous) access to projects and repositories. See Allowing public access to code.