Skip to content

Commit 21fdef3

Browse files
authored
Merge pull request #8632 from ProcessMaker/bugfix/FOUR-25401
FOUR-25401: [45809] Project export not working
2 parents 3045806 + ed92e9b commit 21fdef3

3 files changed

Lines changed: 13 additions & 10 deletions

File tree

ProcessMaker/ImportExport/Exporters/GroupExporter.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace ProcessMaker\ImportExport\Exporters;
44

5-
use ProcessMaker\ImportExport\DependentType;
5+
use Illuminate\Support\Facades\Log;
66
use ProcessMaker\Models\Permission;
77

88
class GroupExporter extends ExporterBase
@@ -15,20 +15,21 @@ class GroupExporter extends ExporterBase
1515

1616
public function export() : void
1717
{
18-
foreach ($this->model->users as $dependentModel) {
19-
$this->addDependent(DependentType::USERS, $dependentModel, UserExporter::class);
20-
}
21-
18+
// Skipping user expansion to avoid exporting entire group membership (can be tens of thousands).
19+
Log::info('[GroupExporter] Skipping user expansion', [
20+
'group_id' => $this->model->id,
21+
]);
2222
$this->addReference('permissions', $this->model->permissions()->pluck('name')->toArray());
2323
}
2424

2525
public function import() : bool
2626
{
2727
$group = $this->model;
2828

29-
foreach ($this->getDependents('users') as $dependent) {
30-
$dependent->model->groups()->syncWithoutDetaching($group->id);
31-
}
29+
// Skipping user import for group membership. Can be tens of thousands of users.
30+
Log::info('[GroupExporter] Skipping user import for group', [
31+
'group_id' => $group->id,
32+
]);
3233

3334
$permissions = $this->getReference('permissions') ?? [];
3435
$permissionIds = Permission::whereIn('name', $permissions)->pluck('id')->toArray();

tests/Feature/ImportExport/Exporters/GroupExporterTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public function testGroupExporter()
3939

4040
public function testGroupWithUsers()
4141
{
42+
$this->markTestSkipped('Group members are no longer exported/imported to avoid massive expansions.');
43+
4244
DB::beginTransaction();
4345

4446
// Creating 1 group and 10 users

tests/Feature/ImportExport/Exporters/UserExporterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ public function testDoNotCopyAdmin()
7171
$user = User::where('username', 'admin')->firstOrFail();
7272

7373
$this->assertEquals($originalUserCount, User::count());
74-
// Added to original users group
75-
$this->assertEquals(['test group', 'test group 2'], $user->groups()->pluck('name')->toArray());
74+
// Group memberships are no longer copied; original memberships remain
75+
$this->assertEquals(['test group'], $user->groups()->pluck('name')->toArray());
7676

7777
// Test importing on new instance
7878
DB::rollBack(); // Delete all created items since DB::beginTransaction

0 commit comments

Comments
 (0)