Closed willdayble closed 4 years ago
Course permissions are set on a course level and are edited so. We can add model with course permissions which will act as a state machine. This way we can connect give course permission with a user enrolment.
What should happen when a user is enrolled and a course creator changes permissions? For instance from free to paid or from no code and no login to login required? What we can do:
Any user that is enrolled in a course should remain in that course once it changes state.
E.g. User X joins a course that is "free", and the course is later given a price (not free), the user should remain enrolled, even though every other user must pay a fee after the change.
@willdayble @Yuffster below are some of my concerns regarding anonymous users and their access to content:
For now, the simplest way would be to allow viewing public courses without enrollment for an anonymous user and in every other case require login.
Okay this is a tricky one, let me try again from a teacher point of view:
As a teacher of a course with limited number of students (i.e. a class with physical enrolments in a school), I want to ensure that only my students get in, i.e. "only course code access" or "only logged in students", or possibly both.
As a teacher of a course with possibly unlimited number of students (i.e. an online course that is open to the internet), I probably want to allow anonymous users and logged in users because:
HOWEVER, I don't want to tie the idea of anonymity with public accessibility, and this means that the simplest way would be to allow viewing public courses without enrollment for an anonymous user and in every other case require login.
doesn't work.
Example:
I'm a high school teacher with teenage students, so I would not expect my students to make accounts (i.e. be anonymous). But I want to see how many (anonymous) people log into the course, to see if only 2 people sign up, or if all of my 25 students do.
However, I don't want random strangers in the course, so I want it only accessible via a course code, to know that those anonymous users are my students.
You and @Yuffster need to solve the above with magic internet code, sorry!
If you're requiring a user-id for enrolment, you may need to either allow generation of "shadow" user-ids that are tied to session, or some other magical method for allowing anonymous, tracked access to courses.
@willdayble as for UX from teacher perspective: Free access, no code, no login (anon allowed) is: Cost=free, Visibility=public, Anonymity=True
Free access, but requires login is: Cost=free, Visibility=public, Anonymity=False
Free access, requires a login, requires code is: Cost=free, Visibility=code only, Anonymity=False
In that case, what's left if business logic behind those options. :)
There are a few things left:
@willdayble there is at least one thing to check for you, namely on the course intro page we have in two places with enrollment CTA. I've added logic for the bottom.
@willdayble on my side it's done.
The three modes we want to implement for this are:
This is set in the course edit, and changes the 'enrol' button functionality on the course_intro page.