Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-37559

Other Users page does not list all roles

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.3.4, 2.4.1, 2.5
    • Fix Version/s: 2.3.5, 2.4.2
    • Component/s: Roles / Access
    • Labels:
      None
    • Testing Instructions:
      Hide

      1/ clone manager role
      2/ assign manager and the cloned role to one user in the "Other users page" in some course
      3/ verify that after reload the page shows both roles

      Show
      1/ clone manager role 2/ assign manager and the cloned role to one user in the "Other users page" in some course 3/ verify that after reload the page shows both roles
    • Workaround:
      Hide

      One way to resolve this issue is to wrap this line with a statement to ensure that the array has not been set before trying to instantiate a new array.

      ie.
      if (! isset($users[$userrole->id]['roles']))

      { $users[$userrole->id]['roles'] = array(); }

      This will keep any previous roles array data, and allow multiple roles to be displayed.

      Show
      One way to resolve this issue is to wrap this line with a statement to ensure that the array has not been set before trying to instantiate a new array. ie. if (! isset($users [$userrole->id] ['roles'] )) { $users[$userrole->id]['roles'] = array(); } This will keep any previous roles array data, and allow multiple roles to be displayed.
    • Affected Branches:
      MOODLE_23_STABLE, MOODLE_24_STABLE, MOODLE_25_STABLE
    • Fixed Branches:
      MOODLE_23_STABLE, MOODLE_24_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      w03_MDL-37559_m25_otherusers

      Description

      When viewing the Other users page for a Course, and a User has multiple roles, only 1 of the roles are displayed.

      In issue is caused by line number 843 in moodle/enrol/locallib.php for Moodle Stable version 2.4.1 (possibly other versions). If multiple roles are evident for the same user, this line '$users[$userrole->id]['roles'] = array();' will recreate the roles array for each role iteration. If the roles array was created and populated for a previous iteration, the data is lost. It serves as a 'last in wins' situation.

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            skodak Petr Skoda added a comment -

            Thanks for the report.

            Show
            skodak Petr Skoda added a comment - Thanks for the report.
            Hide
            nebgor Aparup Banerjee added a comment -

            thanks, thats been integrated now into 23, 24 and master for testing.

            Show
            nebgor Aparup Banerjee added a comment - thanks, thats been integrated now into 23, 24 and master for testing.
            Hide
            andyjdavis Andrew Davis added a comment - - edited

            This is working perfectly in master but there is a problem in both 2.4 and 2.3. On the "other users" page after you assign the user the two roles the user does not appear when the page reloads. They do however now appear on the enrolled user's page and both of their roles are shown.

            Petr, are you able to reproduce what I'm seeing in 2.4 or 2.3? Is it due to this issue or is it unrelated?

            I've also raised MDL-37638 which is extremely minor.

            Show
            andyjdavis Andrew Davis added a comment - - edited This is working perfectly in master but there is a problem in both 2.4 and 2.3. On the "other users" page after you assign the user the two roles the user does not appear when the page reloads. They do however now appear on the enrolled user's page and both of their roles are shown. Petr, are you able to reproduce what I'm seeing in 2.4 or 2.3? Is it due to this issue or is it unrelated? I've also raised MDL-37638 which is extremely minor.
            Hide
            skodak Petr Skoda added a comment -

            Hi, if user is already enrolled they do not appear on the "Other users" page.

            Show
            skodak Petr Skoda added a comment - Hi, if user is already enrolled they do not appear on the "Other users" page.
            Hide
            andyjdavis Andrew Davis added a comment -

            Hrmmm, maybe it is working. I've had a second look. Passing.

            Show
            andyjdavis Andrew Davis added a comment - Hrmmm, maybe it is working. I've had a second look. Passing.
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            Surely you will be happy to know that your code is now part of Moodle upstream. Thanks, thanks!

            Closing as fixed, ciao

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - Surely you will be happy to know that your code is now part of Moodle upstream. Thanks, thanks! Closing as fixed, ciao
            Hide
            sillyxone Huy Hoang added a comment -

            Sorry for poking a closed ticket, but this bug is also in Moodle 2.2.7+ (Build: 20130208).

            Show
            sillyxone Huy Hoang added a comment - Sorry for poking a closed ticket, but this bug is also in Moodle 2.2.7+ (Build: 20130208).
            Hide
            skodak Petr Skoda added a comment -

            Yes, 2.2.x is not receiving more bug fixes, please upgrade.

            Show
            skodak Petr Skoda added a comment - Yes, 2.2.x is not receiving more bug fixes, please upgrade.

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  11/Mar/13