I am trying to set up a single activity course that will allow guest access to a Chat activity. The use case is that I want users to be able to access and participate in a Chat activity anonymously.
After doing some research I found out that the default Guest role doesn't have the necessary permissions to be able to use the Chat activity. So I have been following the instructions for creating a new Guest role with tweaked permissions.
So far I have managed to set up the course correctly. It uses the Single Activity course format. It is the only course (out of 300+ courses in our Moodle) with Guest Access enrolment enabled. It has "auto-login for guests" enabled.
Next thing I did was create a new role. My first attempt - using the 'Archetype: Student' - failed because you cannot assign this to the 'Guest Role' on the 'User Policies' page. Instead I opted to use the 'Archetype: Guest' and renamed it 'Research Participant'. This is essentially just the Guest role, but with the "mod/chat:chat" permission enabled.
I am satisfied that the course works as it should. Guests are automatically granted access via the custom "Research Participant" role (with its tweaked permissions). However, once through to the Chat activity they get this message: "The chat is not open to guests".
I understand that this is the message that is shown to regular Guest users; who don't have mod/chat:chat permissions. But with the tweaks I've made to my 'Research Participant' role, shouldn't they be able to see the activity?
Note: when I enable the "Read chat logs" (mod/chat:readlog) permission, these do show up. But the 'Research Participant' user still cannot participate in the chats.
Also note: the Chat activity is definitely working; it's been tested with regular Student and Teacher users.
FYI: I'm running on Moodle 2.6.5+
I have been going round and round trying to solve this puzzle myself. Trying different combinations of Chat permissions (mod/chat) and 'Archetype' roles to use as the basis of my 'Research Participant' custom role.
Can anyone think why this isn't working?
Am I missing something blindingly obvious (most likely)?
Or can you point me in a new / right direction to solve this problem a different way.
Many thanks for your help,