Search code examples
sakai

Set quota on the number of participants per Sakai site types


We have a special use case that I want to share with you and try to find solutions for it:

I have normal project sites, that users can create by their own. Those type of sites, and because they are available to anyone in the system to create, can grow high. I want to limit the number of users in this type of sites to a configurable number. Whereas online courses are created by the admin and the site owner can add/remove participants. Because those type of sites use BigBlueButton as video conferencing solution, I want to limit the number of members that the site owner can add. Yet, I want Tutoring type of site to be limited to no more than 10 students.

Ideally, I should be some configuration like this:

max participants count=4
max participants project=20
max participants course=50
max participants onlinecourse=30
max participants tutoring=10

This way, the number of users per site is shown on the site setup tool, while adding participants.

This must be set by the sakai admin, with the possibility to change it per created site, just like how site quota works.

Besides, we are not using any roster or student systems.

To put it simple, It's a quota for site members.

Yours, Alaa NIZAR


Solution

  • This feature doesn't currently exist in Sakai.

    You will need a modification to the Sakai kernel to read in the property from some location (probably a site property which can be attached at site creation and modified afterwards). You'll also need it to read that property when adding participants and throw an appropriate exception if the limit is going to be exceeded.

    Site properties can already be set by admin's via the Admin Sites tool which could be an initial way to set these. You could provide default configuration in sakai.properties which WorkSite Setup then reads at site creation time and adds the property to the new site.

    The Site Info tool would also need modifying to show the currently configured value and be able to handle the case when a user tries to exceed the limit.