Admin course and student management pages don't work for admins
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, python
- Área
- backend-api-design, full-stack
Línea de trabajo
Start with pages/admin/courses/manage.js and pages/admin/students/manage.js, then trace the backend routes those pages call, including require_course_role and get_user_enrollments. Compare the proposed admin-only endpoints with the existing course-role checks; the issue notes that option 2 keeps those checks simple. Done means admins can manage courses and view the selected student's enrollments without granting access to non-admins.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The admin pages for managing a course and viewing a student call routes that only allow people enrolled in that course, or that ignore the parameter the page sends. An admin who isn't enrolled in the course gets 403s or the wrong data. This is separate from the auth fix in #366, which made the admin pages send the session cookie but didn't change these routes.
pages/admin/courses/manage.js:
get_course_info: requires student, TA or instructor in the course.get_course_enrollment: requires instructor or TA in the course.update_course: requires instructor in the course.delete_course: requires instructor in the course.create_enrollment: requires a staff role in the course.leave_course: has no auth at all (see the other issue).
pages/admin/students/manage.js:
- Calls
get_user_enrollments?user_id=<student>, but the backend ignoresuser_idand returns the logged-in user's own enrollments. The page shows the admin's courses, not the student's.
Options:
- Let a global admin pass these course checks, either inside
require_course_roleor with separate admin endpoints. - Add admin-only endpoints for the admin panel (for example, a user's enrollments by id) and point the admin pages at them.
Option 2 keeps the course role checks simple and makes admin access explicit.
- Lenguaje dominante
- Python
- Estrellas
- 13
- Forks
- 0
- Merge medio
- 2 h 4 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de kiat/codeAssist
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
kiat/codeAssist#391 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
kiat/codeAssist#364 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
kiat/codeAssist#393 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 63/100
kiat/codeAssist#392 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
kiat/codeAssist#390 ·
Todos los issues de kiat/codeAssist
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
task
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
danparshall/claude_researcher#87 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
datajoint/datajoint-python#1586 ·
Los mantenedores suelen responder en 1 día
-
1D intercept of length 1 is accepted as `fix_params` in population GLM with more than 1 unitPosiblemente ocupada @dhvani7014 la tomó hoy. Abiertobug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
flatironinstitute/nemos#642 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Broken links in the docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
uniswap-python/uniswap-python#487 ·