Introducing IntraVox – an open-source intranet app for Nextcloud (feedback welcome)

After removing the three orphaned database records from the oc_group_folders and the other cleanup operations, things look good to go.

occ intravox:setup
Setting up IntraVox groupfolder…
✓ IntraVox groupfolder created successfully
✓ Default homepage created
✓ Groups configured with proper permissions

Importing demo data for language: en…
✓ en: 157 items imported
✓ Demo data imported

Ensuring _resources folders exist…
✓ _resources folders verified/created

Setting up templates…
✓ _templates folders verified/created
✓ Default templates installed: 7 new

The IntraVox groupfolder is now available in the Files app
Admins in “IntraVox Admins” have full access
Users in “IntraVox Users” have read-only access

Thanks for your supportive suggestions. ToBeContinued.
Are you OK to create your own path to avoid this incident in a future release?

Just for the records:
nextcloud_database=> Select folder_id, mount_point, storage_id FROM oc_group_folders;

folder_id | mount_point | storage_id
-----------±------------±-----------
1 | IntraVox |
2 | Kakafonie |
3 | Intravox |
(3 rows)

nextcloud_database=> delete from oc_group_folders ;

DELETE 3

nextcloud_database=> Select folder_id, mount_point, storage_id FROM oc_group_folders;

folder_id | mount_point | storage_id
-----------±------------±-----------
(0 rows)

nextcloud_database=> SELECT fileid, path FROM oc_filecache WHERE path LIKE '\__groupfolders/%';

fileid | path
--------±---------------------
682772 | __groupfolders/trash
(1 row)

I left the trash folder untouched
nextcloud_database=> select \* from oc_group_folders_groups ;

applicable_id | folder_id | permissions | group_id | circle_id
---------------±----------±------------±-----------------±--------------------------------
1 | 1 | 31 | admin |
2 | 1 | 31 | IntraVox Admins |
3 | 1 | 7 | IntraVox Editors |
4 | 1 | 1 | IntraVox Users |
101 | 4 | 1 | IntraVox Users |
102 | 4 | 15 | IntraVox Editors |
103 | 4 | 31 | IntraVox Admins |
105 | 5 | 31 | | 2PkzWUVUWIkMgLLwQiq5Lzj8hcKt5hl
104 | 4 | 1 | | 2PkzWUVUWIkMgLLwQiq5Lzj8hcKt5hl
(9 rows)

nextcloud_database=> delete from oc_group_folders_groups ;

DELETE 9

nextcloud_database=> select \* from oc_group_folders_groups ;

applicable_id | folder_id | permissions | group_id | circle_id
---------------±----------±------------±---------±----------
(0 rows)

nextcloud_database=> select \* from oc_group_folders_acl ;

acl_id | fileid | mapping_type | mapping_id | mask | permissions
--------±-------±-------------±-----------±-----±------------
(0 rows)

nextcloud_database=> select path from oc_filecache where path like '%\__groupfolders%' ;

path

__groupfolders
__groupfolders/trash
(2 rows)

Left this also as is.

One more comment on

IMHO one more check could be made before showing the records in MetaVox: not only the records should show in oc_group_folders, but also the matching __groupfolders/<id> should exist (and be writable).