- Shipped
- 10 août 2026 à 14:13 UTC
- Author
- Kamo
- Commit
- 41c76a7
Les contacts ont été mis au point par l'organisation. listBooks(orgId) était findByOrganizationId(orgId), et la requête de la liste de contact ouverte Où c.contactBook.organization.id et :orgId sans prédicat de propriétaire, donc chaque membre savait - et pouvait supprimer, déplacer et exporter - chaque contact tout collègue a jamais ajouté. CardDAV a été mis au point par le propriétaire tout le temps (listBooksByUserId -- findByOwnerId), donc un téléphone d'un membre et le web console n'était pas d'accord sur ce que ce compte possédait. Le champ d'application est désormais l'organisation ET le propriétaire de chaque lecture. Le propriétaire seul serait porteur les livres d'un membre dans toutes les organisations auxquelles ils appartiennent; organisation seul est le bogue à être remplacé. - ContactQueryStore.whereClause() est un fragment JPQL statique et testable, donc le prédicat propriétaire vit exactement un endroit plutôt que d'être redérivée par site d'appel. - findInOrg -- findInScope(ids, orgId, ownerId): le garde derrière chaque supprimer, déplacer, exporter et modifier le nombre de membres du groupe. - Énumération de groupe dans la boutique d'interrogations, portée par le propriétaire; Le lecteur sur ContactService n'avait plus d'appels d'appel et est supprimé plutôt que laissé en tant que point d'entrée non éteint. - Les gardes deviennent livresBelongsToMember / groupBelongsToMember / contactBelongsToMember. Le livre sans propriétaire d'organisation-parfeuille appartient à personne et 404 pour tout le monde. - les dispositions de garantie "Mes contacts" à la première lecture, un membre sans livre, il n'est plus laissé avec un cueilleur vide et un créateur qui ne peut pas succès. listBooks n'est donc plus luOnly. Corrections supplémentaires - qui ont passé un identificateur d'utilisateur en listBooks(orgId) et l'a donc apparié avec ORGANIATION-ID-il Je n'ai rien renvoyé. Il utilise maintenant la liste de la portée du propriétaire qu'il voulait toujours dire. Les données déjà présentes dans des livres partagés sont migrées par ContactBookOwnerSplitMigration dans KamoInitializerService.