It should be possible to use the role system to hide individual activities from the course home page (and some other places).
The aim is so that there are two roles, e.g. 'student' and 'frog', neither of which have special permissions on the course in general. However we want the 'frog' role to be able to see an activity which the 'student' role cannot. It is possible to do this with groupings, but we don't want to use groupings because we don't have user data in that format at present and we already have the 'frog' role.
This procedure should work:
- Mark the activity as hidden.
- Override the 'viewhiddenactivities' capability, on that single activity, for the 'frog' role so that it can access the activity.
Unfortunately this is not possible for two reasons:
1) viewhiddenactivities seems to be checked in course context, not activity context
2) The UI does not allow you to override viewhiddenactivities in activity context
This should be fixed (imo). Hopefully I will get a chance to look at it at some point over the next few months.