nextcloud / contacts

📇 Contacts app for Nextcloud
https://apps.nextcloud.com/apps/contacts
GNU Affero General Public License v3.0
569 stars 173 forks source link

Organization chart : When a manager's contact file is deleted, it crashes the organization chart display #3058

Open Jerome-Herbinet opened 2 years ago

Jerome-Herbinet commented 2 years ago

Describe the bug

While testing this new feature, I deleted the manager of Dark Sidious and then the chart cannot be displayed anymore. To make it appear again, I have to delete de "Manager" field entry in the Dark Sidious contact file.

2022-10-19_11-51

Steps to reproduce

  1. Create an organization chart
  2. Delete a contact which is manager of another contact
  3. See that you cannot display the chart anymore
  4. Delete the manager field entry in the contact file which was underneath the previously deleted contact in the chart
  5. See that the chart can be displayed again

Expected behavior

When a "manager" contact is deleted, all dependencies should be deleted in order to avoid chart explosion.

Actual behavior

It crashes because of remaining broken dependencies.

Contact version

5.0.1

Operating system

CentOS

PHP engine version

PHP 8.0

Web server

Nginx

Database

MySQL

Additional info

No response

ChristophWurst commented 2 years ago

@bkrith any idea how we could solve this? Ignore all non-existent references when we build the graph?

Additionally, at contact deletion from within this app, we could scan all other contacts of the same address book and delete any references.

bkrith commented 2 years ago

I will check it.. i think the issue is that we scan for the relationships but we don't check if the manager exists.. maybe on deletion we need to scan contacts and make null manager deleted id references.

bkrith commented 2 years ago

@ChristophWurst I have a PR for this please review it when you have time. (#3077)