Check project for PUT access before allowing repository creation.
authorSybren A. Stüvel <sybren@stuvel.eu>
Wed, 8 Nov 2017 11:59:43 +0000 (12:59 +0100)
committerSybren A. Stüvel <sybren@stuvel.eu>
Wed, 8 Nov 2017 11:59:43 +0000 (12:59 +0100)
We'll need to save the project later, and without PUT access this is not
possible. Better check it before creating the actual repository.

svnman/routes.py

index ddf1348..6b390b3 100644 (file)
@@ -56,7 +56,11 @@ def create_repo(project: pillarsdk.Project):
 
     from . import exceptions
 
-    # TODO(sybren): check project access
+    if 'PUT' not in project.allowed_methods:
+        log.warning('User %s has no PUT access to project %s (id=%s) but wants to '
+                    'create a Subversion repository; denying access',
+                    current_user.user_id, project.url, project['_id'])
+        raise wz_exceptions.Forbidden()
 
     try:
         current_svnman.create_repo(project, f'{current_user.full_name} <{current_user.email}>')