Skip to content

Commit d55e0e2

Browse files
committed
fix(Group): ensure that group IDs are not too long on creation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
1 parent 82b7d4e commit d55e0e2

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

lib/GroupManager.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,22 @@ protected function assignUserToGroup(IUser $user, string $gid): void {
157157
$providerId = $this->settings->getProviderId();
158158
$settings = $this->settings->get($providerId);
159159
$groupPrefix = $settings['saml-attribute-mapping-group_mapping_prefix'] ?? SAMLSettings::DEFAULT_GROUP_PREFIX;
160+
161+
$newNextcloudGroupId = $groupPrefix . $gid;
162+
if (strlen($newNextcloudGroupId) > 64) {
163+
$newNextcloudGroupId = $groupPrefix . hash('tiger192,4', $gid);
164+
if (strlen($newNextcloudGroupId) > 64) {
165+
Server::get(LoggerInterface::class)->error(
166+
'Cannot create group ID as it is too long. Original name from SAML is {name}',
167+
[
168+
'app' => 'user_saml',
169+
'name' => $gid,
170+
]
171+
);
172+
return;
173+
}
174+
}
175+
160176
$group = $this->createGroupInBackend($groupPrefix . $gid, $gid);
161177
}
162178

0 commit comments

Comments
 (0)