Visual companions to the access-control rules: one matrix for problem visibility and submitting, and a checklist for debugging “my student can’t see problem X.”
Roles are per group — Reporter/Editor privileges apply only inside groups where the user holds that role, and only while that membership row is enabled: a disabled membership grants no role at all (not member, reporter, or editor). “See” means the problem appears in the student list / its statement opens.
| Scenario | Function | Not in group | Member | Reporter | Editor | Admin |
|---|---|---|---|---|---|---|
| Normalavailable ✓ · group enabled ✓ · in-group switch ✓ | See | ✗ | ✓ | ✓ | ✓ | ✓ |
| Submit | ✗ | ✓ | ✓ | ✓ | ✓ | |
| In-group switch OFFstudent-only hide, one problem in one group | See | ✗ | ✗ | ✓ | ✓ | ✓ |
| Submit | ✗ | ✗ | ✗ | ✓ editor | ✓ | |
| Problem Available OFFdraft or retired problem | See | ✗ | ✗ | ✗ | ✓ | ✓ |
| Submit | ✗ | ✗ | ✗ | ✓ editor | ✓ | |
| Group disabledarchived course | See | ✗ | ✗ | ✗ | ✓ | ✓ |
| Submit | ✗ | ✗ | ✗ | ✓ editor | ✓ |
Walk the checks top to bottom — the first “no” is your answer.
Groups, per-group roles, and both enable switches are ignored entirely. Every enabled user — even one in no group — sees and can submit every Available problem. Problems with Available OFF are admin-only. Editors keep their problem-management pages, but their draft-submit privilege disappears with the rest of the group machinery.
Behavior on this page was measured against the running application (integration probe, 2026-08-22) rather than transcribed from code. Developers can read the full audit — entry-point matrices, findings, test-coverage gaps — in the submit-authorization report.