Issue
When changing a group's visibility from public to private, all previous activity stream posts have disappeared. Posts are only visible to the users that created them originally.
Cause
There are four levels of post visibility that are stored in the Journal_Security table:
- Everyone
- Community
- Role/Group
- User
When a group is set to Public then the following options are present when posting content:
However, when a group is set to Private, then the only option for posting visibility is Group:
The issue here is that all the previous posts were published under the Everyone visibility category. Because that isn't an option in a private group, none of the posts are shown.
Solution
To fix this issue, you will need to run a SQL query that will change the visibility for all the older posts in the affected group from Everyone to Group.
Requirements: SuperUser/Host access
NOTE: Make sure to always backup the database before making any changes.
The following steps are for DNN versions 9.0+. In previous versions, SQL console is found at Host > Advanced Settings > SQL.
1. Log in to your DNN instance with SuperUser/Host credentials.
2. Go to Persona Bar > Settings > SQL Console.
3. Execute the following query to find the Group/Role ID:
SELECT * FROM Roles WHERE RoleName = 'ENTER_NAME_OF_GROUP'
4. Execute the following query to change all posts with Everybody visibility to Group visibility:
UPDATE JS SET JS.SecurityKey = 'R' FROM dbo.Journal_Security AS JS INNER JOIN dbo.Journal AS J ON JS.JournalId = J.JournalId WHERE JS.SecurityKey = 'E' AND J.GroupId = ENTER_GROUP_ID_NUMBER;
5. Clear your cache.
6. Validate the fix by checking the group activity stream. If successful, all previous posts that were hidden will be viewable.
Priyanka Bhotika
Comments