+import com.atlassian.sal.api.component.ComponentLocator
+import com.atlassian.stash.project.Project
+import com.atlassian.stash.project.ProjectService
+import com.atlassian.stash.project.ProjectUpdateRequest
+import com.atlassian.stash.user.Permission
+import com.atlassian.stash.user.PermissionAdminService
+import com.atlassian.stash.user.SetPermissionRequest
+import com.atlassian.stash.user.UserService
+import com.atlassian.stash.util.Page
+import com.atlassian.stash.util.PageProvider
+import com.atlassian.stash.util.PageRequest
+import com.atlassian.stash.util.PagedIterable
+def projectService = ComponentLocator.getComponent(ProjectService)
+def permissionAdminService = ComponentLocator.getComponent(PermissionAdminService)
+def userService = ComponentLocator.getComponent(UserService)
+new PagedIterable<Project>(new PageProvider<Project>() {
+ Page<Project> get(PageRequest pageRequest) {
+ projectService.findAll(pageRequest) as Page<Project>
+}, 10).each { project ->
+ log.debug("Update project ${project.key}")
+ def setPermissionRequest = new SetPermissionRequest.Builder()
+ .projectPermission(Permission.PROJECT_WRITE, project)
+ permissionAdminService.setPermission(setPermissionRequest)