The best way is to set up Apache and to set the access through it. Check the svn book for help. If you don't want to use Apache, you can also do minimalistic access control using svnserve.
You can use svn+ssh:, and then it's based on access control to the repository at the given location.
This is how I host a project group repository at my uni, where I can't set up anything else. Just having a directory that the group owns, and running svn-admin (or whatever it was) in there means that I didn't need to do any configuration.
To complete your answer, you can also delegate the user rights to the project manager, through a plain text file in your repository.
To do that, you set up your SVN database with a default authz file containing the following:
###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....
[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =
[/admin/acl_descriptions.txt]
@projadmins = rw
This default authz file authorizes the SVN administrators to modify a visible plain text file within your SVN repository, called '/admin/acl_descriptions.txt', in which the SVN administrators or project managers will modify and register the users.
Then you set up a pre-commit hook which will detect if the revision is composed of that file (and only that file).
If it is, this hook's script will validate the content of your plain text file and check if each line is compliant with the SVN syntax.
Then a post-commit hook will update the \conf\authz file with the concatenation of:
the TEMPLATE authz file presented above
the plain text file /admin/acl_descriptions.txt
The first iteration is done by the SVN administrator, who adds:
[groups]
projadmins = zzzz
He commits his modification, and that updates the authz file.
Then the project manager 'zzzz' can add, remove or declare any group of users and any users he wants.
He commits the file and the authz file is updated.
That way, the SVN administrator does not have to individually manage any and all users for all SVN repositories.
Apache Subversion supports path-based authorization that helps you configure granular permissions for user and group accounts on paths in your repositories (files or directories). Path-based authorization supports three access levels - No Access, Read Only and Read / Write.
Path-based authorization permissions are stored in per-repository or per-server authorization files with a special syntax. Here is an example from SVNBook:
[calc:/branches/calc/bug-142]
harry = rw
sally = r
When you require a complex permission structure with many paths and accounts you can benefit from a GUI-based permission management tools provided by VisualSVN Server:
Server administrators can manage user and group permissions via the VisualSVN Server Manager console or PowerShell,
Non-admin users can manage permissions via RepoCfg.
Repository permissions in VisualSVN Server Manager
Repository permissions in PowerShell
Non-admin users can manage permissions via the RepoCfg tool