2010-12-31, 12:23 AM
(2010-12-30, 05:03 PM)Justin S. Wrote: [ -> ]Thank you for addressing the additional group thing. I can't believe no one thought of that...(2010-12-30, 07:56 AM)- G33K - Wrote: [ -> ]You'll also need a plugin to have the users active in more than one usergroup.
No you don't. Have all of the students in the Registered group as their Primary User Group, then have each of their added courses as an Additional User Group. Users can be members of an unlimited number of groups. Then you would just set forum permissions up so that Registered group doesn't have any access to forums (unless there are any global forums that all users should have access to), but user groups for courses do. You could probably set up a category for each course and restrict access based on the categories - then have as many forums within that category as necessary, inheriting permissions from the category (which would restrict access). Because additional user groups only add, not restrict, forum permissions, if you're a member of three user groups in addition to the Registered group, you can access all of the forums those groups have access to - you're not limited to one.
Forum creation could be a bit tricky - you could set up teachers to have access only to the Forum Management portion in the Admin CP (perhaps through a Teachers group which has admin permissions set to just that, so you don't have to set permissions for each teacher, just put them in the teachers group), but they then have access to manage all of the forums. As I said, you could set it up so each course is a category, then teachers can create as many forums as they'd like within that category, and restrict access based on the category (that way you only have to set up the permissions for the category and have the forums within the category inherit those permissions). If you want to limit teachers to only be able to create forums within certain categories, that would have to be done with a plugin or modification.
With the course groups, you could make them publicly joinable, which would allow any user to request access to any of the course groups. You can also limit the groups to have join requests moderated, which means you set up Group Leaders (likely the teacher or TA - you can have multiple) to moderate the requests or to add new members on their own. All of this is handled in the Group Memberships section of the User CP. Group Leaders have to manually accept requests if they're moderated (there's no password functionality, though you do provide a "reason" when joining). You could probably write a plugin that replaces the reason with a password that is checked automatically, accepting or denying admission to the group then - eliminating the need for manual approval - but I'm not certain.