|
28 | 28 | use OCA\Workspace\Db\SpaceMapper; |
29 | 29 | use OCA\Workspace\Exceptions\BadRequestException; |
30 | 30 | use OCA\Workspace\Folder\RootFolder; |
31 | | -use OCA\Workspace\Group\Admin\AdminGroup; |
32 | | -use OCA\Workspace\Group\Admin\AdminUserGroup; |
33 | 31 | use OCA\Workspace\Helper\GroupfolderHelper; |
34 | | -use OCA\Workspace\Service\Group\ConnectedGroupsService; |
35 | | -use OCA\Workspace\Service\Group\GroupFormatter; |
| 32 | +use OCA\Workspace\Service\Formatter\WorkspaceFormatter; |
36 | 33 | use OCA\Workspace\Service\Group\ManagersWorkspace; |
37 | | -use OCA\Workspace\Service\Group\UserGroup; |
38 | 34 | use OCA\Workspace\Service\Group\WorkspaceManagerGroup; |
39 | | -use OCA\Workspace\Service\SpaceService; |
40 | 35 | use OCA\Workspace\Service\User\UserFormatter; |
41 | 36 | use OCA\Workspace\Service\UserService; |
42 | | -use OCA\Workspace\Service\Workspace\WorkspaceCheckService; |
43 | 37 | use OCA\Workspace\Service\WorkspaceService; |
44 | 38 | use OCA\Workspace\Space\SpaceManager; |
45 | 39 | use OCP\AppFramework\Controller; |
|
53 | 47 | class WorkspaceController extends Controller { |
54 | 48 | public function __construct( |
55 | 49 | IRequest $request, |
56 | | - private AdminGroup $adminGroup, |
57 | | - private AdminUserGroup $adminUserGroup, |
58 | 50 | private GroupfolderHelper $folderHelper, |
59 | 51 | private IGroupManager $groupManager, |
60 | 52 | private RootFolder $rootFolder, |
61 | 53 | private IUserManager $userManager, |
62 | 54 | private LoggerInterface $logger, |
63 | 55 | private SpaceMapper $spaceMapper, |
64 | | - private SpaceService $spaceService, |
65 | 56 | private UserService $userService, |
66 | | - private ConnectedGroupsService $connectedGroups, |
67 | | - private WorkspaceCheckService $workspaceCheck, |
| 57 | + private WorkspaceFormatter $workspaceFormatter, |
68 | 58 | private WorkspaceService $workspaceService, |
69 | | - private UserGroup $userGroup, |
70 | 59 | private UserFormatter $userFormatter, |
71 | | - private WorkspaceManagerGroup $workspaceManagerGroup, |
72 | 60 | private SpaceManager $spaceManager, |
73 | 61 | public $AppName, |
74 | 62 | ) { |
@@ -144,53 +132,27 @@ public function destroy(int $spaceId): JSONResponse { |
144 | 132 | public function findAll(): JSONResponse { |
145 | 133 | $workspaces = $this->workspaceService->getAll(); |
146 | 134 | $spaces = []; |
| 135 | + $rootFolderStorageId = $this->rootFolder->getRootFolderStorageId(); |
147 | 136 | foreach ($workspaces as $workspace) { |
148 | 137 | $folderInfo = $this->folderHelper->getFolder( |
149 | 138 | $workspace['groupfolder_id'], |
150 | | - $this->rootFolder->getRootFolderStorageId() |
| 139 | + $rootFolderStorageId |
151 | 140 | ); |
152 | | - $space = ($folderInfo !== false) ? array_merge( |
153 | | - $folderInfo, |
154 | | - $workspace |
155 | | - ) : $workspace; |
156 | 141 |
|
157 | | - $gids = array_keys($space['groups'] ?? []); |
158 | | - $wsGroups = []; |
159 | | - $space['users'] = (object)[]; |
160 | | - $addedGroups = []; |
161 | | - |
162 | | - foreach ($gids as $gid) { |
163 | | - $group = $this->groupManager->get($gid); |
164 | | - if (is_null($group)) { |
165 | | - $this->logger->warning( |
166 | | - "Be careful, the $gid group does not exist in the oc_groups table." |
167 | | - . ' The group is still present in the oc_group_folders_groups table.' |
168 | | - . ' To fix this inconsistency, recreate the group using occ commands.' |
169 | | - ); |
170 | | - continue; |
171 | | - } |
172 | | - if (UserGroup::isWorkspaceGroup($group)) { |
173 | | - $wsGroups[] = $group; |
174 | | - } else { |
175 | | - $addedGroups[] = $group; |
176 | | - } |
177 | | - |
178 | | - if (UserGroup::isWorkspaceUserGroupId($gid)) { |
179 | | - $space['usersCount'] = $group->count(); |
180 | | - } |
| 142 | + if ($folderInfo === false) { |
| 143 | + $this->logger->warning("The groupfolder associated with {$workspace['name']} does not seem to exist."); |
| 144 | + continue; |
181 | 145 | } |
182 | 146 |
|
183 | | - $space['groups'] = GroupFormatter::formatGroups($wsGroups); |
184 | | - $space['added_groups'] = (object)GroupFormatter::formatGroups($addedGroups); |
185 | | - |
186 | | - $spaces[] = $space; |
| 147 | + $spaces[$workspace['name']] = $this->workspaceFormatter->format($workspace, $folderInfo); |
187 | 148 | } |
| 149 | + |
188 | 150 | // We only want to return those workspaces for which the connected user is a manager |
189 | 151 | if (!$this->userService->isUserGeneralAdmin()) { |
190 | 152 | $this->logger->debug('Filtering workspaces'); |
191 | | - $filteredWorkspaces = array_values(array_filter($spaces, function ($space) { |
| 153 | + $filteredWorkspaces = array_filter($spaces, function ($space) { |
192 | 154 | return $this->userService->isSpaceManagerOfSpace($space); |
193 | | - })); |
| 155 | + }); |
194 | 156 | $spaces = $filteredWorkspaces; |
195 | 157 | } |
196 | 158 |
|
|
0 commit comments