If I have a calendar shared with write-access with a group that has a name with special characters (like letters with diacritics) and set a reminder for an event in this calendar, the reminder notification is sent only for the user that created the event, and not for the group members.
Steps to reproduce
Add the following line to the crontab of the www-data user: */1 * * * * php -f /var/www/nextcloud/occ dav:send-event-reminders
Run the command sudo -u www-data php -f /var/www/nextcloud/occ config:app:set dav sendEventRemindersMode --value occ
Log in with the admin user
Create a group named Sócios
Create two new users Socio1 and Socio2 and add them to the Sócios group
Using two different browsers, login with each newly-created account
Create a new calendar named Calendário Sócios and share it with the Sócios group with write-acess
Create a new event named Evento Teste in the Calendário Sócios calendar for any future date
Set a new Notification reminder for one minute from now
Wait for the specified reminder time
Expected behavior
All of the Sócios group members should receive a notification for the reminder.
Instead, only the admin user receives a notification.
Installation method
Community Manual installation with Archive
Nextcloud Server version
27
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.2
Web server
Apache (supported)
Database engine version
MariaDB
Is this bug present after an update or on a fresh install?
Fresh Nextcloud Server install
Are you using the Nextcloud Server Encryption module?
When a group is created with a name that has diacritics, the $gid field value is an urlencoded version of the group name (example: S%C3%B3cios).
If $this->groupManager->get($gid) is called with this value, it returns null.
However, if I create a second group called Socios and repeat steps 5-10 (only changing the group name to the newer one), the notifications are sent normally to all users.
⚠️ This issue respects the following points: ⚠️
Bug description
If I have a calendar shared with write-access with a group that has a name with special characters (like letters with diacritics) and set a reminder for an event in this calendar, the reminder notification is sent only for the user that created the event, and not for the group members.
Steps to reproduce
crontab
of thewww-data
user:*/1 * * * * php -f /var/www/nextcloud/occ dav:send-event-reminders
sudo -u www-data php -f /var/www/nextcloud/occ config:app:set dav sendEventRemindersMode --value occ
admin
userSócios
Socio1
andSocio2
and add them to theSócios
groupCalendário Sócios
and share it with theSócios
group with write-acessEvento Teste
in theCalendário Sócios
calendar for any future dateNotification
reminder for one minute from nowExpected behavior
All of the
Sócios
group members should receive a notification for the reminder.Instead, only the
admin
user receives a notification.Installation method
Community Manual installation with Archive
Nextcloud Server version
27
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.2
Web server
Apache (supported)
Database engine version
MariaDB
Is this bug present after an update or on a fresh install?
Fresh Nextcloud Server install
Are you using the Nextcloud Server Encryption module?
Encryption is Disabled
What user-backends are you using?
Configuration report
List of activated Apps
Nextcloud Signing status
Nextcloud Logs
Additional info
After debugging the server code, I discovered that the following line is where the bug happens:
https://github.com/nextcloud/server/blob/565dc36226d08d071c30d8ad4fd54126dfa4be79/apps/dav/lib/CalDAV/Reminder/ReminderService.php#L598
When a group is created with a name that has diacritics, the
$gid
field value is anurlencode
d version of the group name (example:S%C3%B3cios
).If
$this->groupManager->get($gid)
is called with this value, it returnsnull
.However, if I create a second group called
Socios
and repeat steps 5-10 (only changing the group name to the newer one), the notifications are sent normally to all users.