I am working on an instance that has a large set of
ContentVersion data uploaded by Customer Portal Users and saved across many ContentWorkspace(s) or Libraries.
We have encountered some issues with the number of ContentWorkspaces growing too large, and have therefore decided to discard this model and instead use FeedItems to insert new ContentVersion data (which doesn't assign it to a library).
However, previously, when a new Portal User is added, they were assigned to a 'Group' which included all the other users in the same Account. I can only assume that inclusion in this Group with an AccountShare record granted access to the existing Library (as there is no other-way to programatically grant library access: Which object stores Content Library-Members list?) - and no explanation of the relationship between Group membership and Library access except sharing?
As these new users are no longer being added to the Group (causes DML-exceptions), is there any other way to grant them access to these libraries or do I need to pull all the files from the libraries and reinsert them as new FeedItems?
I have written a bulk-job to do this - however, I'm hesitant to run it as it will move well over 300gb of files (and thus creating duplicates will be too much space in our org)
Would it be possible to reference the original
ContentVersion as an attachment to a new
FeedItem and will it update the
ContentVersion and make it available to users whom are not members of it's original library?