Feature Wiki

Information about planned and released features

Tabs

Learning Sequence: Streamlining of Permission Handling

1 Initial Problem

The current handling of JOIN und LEAVE permissions in the Learning Sequence object is different from other objects in ILIAS like course or group. This leads to problems and wrong configurations and should be changed.

The permissions JOIN and LEAVE have been introduced with the container objects 'Group' and 'Course' to handle the self-registration of users for these object types. The default permission setting for users that are not members yet is to give them VISIBLE and JOIN to see a course/group in the object lists of the repository and to register by themselves to such a course/group (assumed self-registration is allowed). This is why non-members usually do not have READ permission for these objects. They get this permission only by becoming a course or group member.

The object type 'Learning Sequence' in its current implementation behaves a bit different. It uses the JOIN permission to start a learning sequence and the LEAVE permission to finish/complete its use (and to be removed from the list of members). READ permission for the learning sequence gives the opportunity to "look into the object" and even see the linear workflow listing of the embedded objects. But users get no access to the content of learning sequence even if they have READ permission for the embedded objects – as this is only granted by JOIN permission. While JOIN has usually a lower position in the hierarchy of ILIAS permissions than READ, in the learning sequence it is vice versa.

2 Conceptual Summary

The original feature request came with two options to solve the problem and to make the learning sequence behave like other container objects in ILIAS:

  1. Migrate the current permissions JOIN and LEAVE to new permissions.
  2. Remove the permissions at all and allow starting the learning sequence with READ permission.

In the meantime, I highly recommend to make things easier and to drop these special permissions.

Suggestion : Remove the permissions at all and allow starting the learning sequence with READ permission

Preferred option is to get rid of this confusing permission handling and to remove these permissions at all.

  • The actions of looking into a learning sequence, starting and finishing were all controlled by READ permission.
  • If users have READ permission for a learning sequence they can start it.
  • If access to the learning sequence should be controlled manually, the user or member role of the parent object should only grant VISIBLE permission and a tutor or admin has to add users manually to the participant list of a learning sequence.

The Learning Sequence would behave similar to the Exercise object where also no specific permission to join or leave the exercise has been implemented.

Instead of modifying the known concepts for JOIN and LEAVE for a specific purpose of the learning sequence, two new permissions could be introduced to control the two desired actions

  • starting a learning sequence
  • finishing and leaving a learning sequence

The permission to start a learning sequence could be granted by a new permission START. This permission presents the button to start a learning sequence and navigate through it. A migration step could assign this permission to all roles that have already JOIN permission for a specific learning sequence.

The permission to finish a learning sequence and to be removed from the list of participants of a learning sequence could be granted by a new permission FINISH. This permission would be similar to the current LEAVE permission and could simply be assigned to existing roles by a migration step.

Permission defaults for the learning sequence would be:

  • VISIBLE, READ, START and FINISH for global role user and role templates course member and group member.

Optional didactic templates could offer alternative permission settings for learning sequences and support the use case where users are assigned manually to learning sequences (only VISIBLE given) or should have a look into the learning sequence but only start it after having been added manually as a participant (only VISIBLE and READ given).

3 User Interface Modifications

3.1 List of Affected Views

No user interfaces are affected by this change of permission handling.

3.2 User Interface Details

None

3.3 New User Interface Concepts

None

4 Technical Information

{The maintainer has to provide necessary technical information, e.g. dependencies on other ILIAS components, necessary modifications in general services/architecture, potential security or performance issues.}

5 Privacy Information

None

6 Security Implications

{ Does the feature include any special security relevant changes, e.g. the introducion of new endpoints or other new possible attack vectors. If yes, please explain these implications and include a commitment to deliver a written security concept as part of the feature development. This concept will need an additional approvement by the JourFixe. }

7 Contact

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

9 Discussion

Suittenpointner, Florian [suittenpointner], 06 Sep 2021:
I think it's still a little more complex ...

  • "Join" and "Leave" do something that is very well comparable to joining/leaving a course, i.e., they assign to you a local "member" role (or remove it again).
    "Start" and "Finish" wouldn't express that in a proper way and, thus, users wouldn't realize they put themselves onto a list revealing personal data.
    This is particularly severe as, in contrast to courses/groups, a learning sequence still displays you in its learning progress report after you "left" the object.
    The same applies to the proposal of removing those permissions entirely.
  • As it's also possible to be assigned to a learning sequence by some administrator, the [Start|Join] button does different things but reads the same every time.
    Being a member already, it should read "Start", however, not being a member yet, it should read "Join".
    The same applies to the [Finish/Leave], accordingly.

Kunkel, Matthias [mkunkel], 15 MAR 2023: I would like to fix the permission confusion in the Learning Sequence with ILIAS 9. This is why I have updated this feature request. My preference now is to get rid of the two permissions JOIN and LEAVE and to make the Learning Sequence behave like the Exercise object.

10 Implementation

{The maintainer has to give a description of the final implementation and add screenshots if possible.}

Test Cases

Test cases completed at {date} by {user}

  • {Test case number linked to Testrail} : {test case title}

Approval

Approved at {date} by {user}.

Last edited: 19. Apr 2023, 12:29, Kunkel, Matthias [mkunkel]