added a comment - - edited
The key confusion is between the "Assigned roles" and the "Manual enrolments", obviously, mostly because they are independent, and the 'Assigned roles' screen contains people who are both participants and non-participants.
My GUI idea is that we get rid of the generic assigned roles screen totally, and change the distinction to enrolled participants and non-enrolled participants, with separate pages.
A. ENROLLED PEOPLE
The manual enrolment screen should be changed to a name like "Active course participants", which is all the people who are actively involved and seen in the course. It could even be integrated with the under/index.php page but doesn't have to be. Basically it's a table with paging and firstname/lastname selectors. Columns are: profile image, name, email etc, enrolment method, and roles.
A selector box (like the right hand of the old assign roles screen) lets you manually assign lots of people to this page, and there are X icons to remove them (as well as checkboxes for multiselect).
The enrolment column lists names of ALL the enrolment methods that led to a user being here. Of course, any added with the selector box here would be "manual" or "added by teacher". If a non-manual method is active for any user then you would not be allowed to remove them here.
The roles column would work like the roles column does on the permissions screen. You can add/remove roles here easily with an AJAX popup menu.
B. NON-ENROLLED PEOPLE
Since these are less common, and likely to be very few people, we can have a separate page for them. It's a paged table similar to the above, except it will be very clear that these people are not enrolled no matter what permissions they have. It would make sense to go here to add an observer teacher, or a supervisor, for example.
We can show inherited users from higher contexts here too, with information about exactly what context they are enrolled in.
C. MENU STRUCTURE AND OTHER STUFF
I think it's best for the manual enrolment to be integrated in the main overview as above, rather than appear as a plugin like all the other ones. It's special. We do still need to have configuration pages for all the other plugins, of course. However, these are not things you visit often, so don't need to be so prominent.
We can also move the settings from the course settings screen to settings menu. (I'm not sure about this, because I do like your forms there, but it's also good to keep this all clear in the menus with less mega-forms).
- Participants (---> A)
- Other people (---->B)
- Enrolment methods (menu)
- - Manage enrolment methods (enable/disable any of them, plus settings links to below)
- - Manual enrolments (-> page to set default role etc)
- - Guest access (-> page to set password etc)
- - Self enrolment (-> page to set password, role, days etc)
- - Cohort enrolment
- - etc