diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c2b127f59a..98c8f6ae880 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ Todas las modificaciones importantes del proyecto se documentarán en este archivo. +## [2.0.3] — 2026-01-18 +- Se eliminaron las comprobaciones redundantes de administrador (`is_siteadmin()`) en varias vistas clave, mejorando la detección correcta de roles locales (profesores vs estudiantes) y el sistema de permisos basado en capacidades. +- Se agrega negrilla en el titulo del bloque para mejorar la visibilidad. +- ## [2.0.2] — 2026-01-18 - Opción para mostrar/ocultar las descripciones en el bloque principal. - Adición del gráfico radar en resultados detallados y acceso permitido a los estudiantes a esta vista. diff --git a/admin_view.php b/admin_view.php index a33e632d51d..2bc9edadb1c 100644 --- a/admin_view.php +++ b/admin_view.php @@ -33,7 +33,7 @@ } // Friendly redirect for unauthorized users -if (!has_capability('block/learning_style:viewreports', $context) && !is_siteadmin()) { +if (!has_capability('block/learning_style:viewreports', $context)) { redirect(new moodle_url('/course/view.php', array('id' => $courseid))); } @@ -53,11 +53,8 @@ if ($confirm) { // Privacy check $targetuser = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST); - if (!is_siteadmin() && ( - !is_enrolled($context, $targetuser, 'block/learning_style:take_test', true) - || has_capability('block/learning_style:viewreports', $context, $userid) - || is_siteadmin($userid) - )) { + if (!is_enrolled($context, $targetuser, 'block/learning_style:take_test', true) + || has_capability('block/learning_style:viewreports', $context, $userid)) { redirect(new moodle_url('/course/view.php', array('id' => $courseid))); } diff --git a/block_learning_style.php b/block_learning_style.php index 7ffdc47d1b8..f421c5bdd9e 100644 --- a/block_learning_style.php +++ b/block_learning_style.php @@ -130,10 +130,8 @@ public function get_content() { /** * Check if user can view dashboard */ - private function can_view_dashboard($context) { - return is_siteadmin() - || has_capability('block/learning_style:viewreports', $context) - || has_capability('moodle/course:viewhiddensections', $context); + private function can_view_dashboard($context, $userid = null) { + return has_capability('block/learning_style:viewreports', $context, $userid); } /** @@ -282,7 +280,7 @@ private function get_teacher_content($context) { ]; // Agregar botones al final (después del dashboard) para profesores/administradores - $is_teacher = has_capability('block/learning_style:viewreports', $context) || is_siteadmin(); + $is_teacher = $this->can_view_dashboard($context); if ($is_teacher) { $template_data['show_buttons'] = true; $template_data['admin_url'] = (new moodle_url('/blocks/learning_style/admin_view.php', array('courseid' => $COURSE->id)))->out(); @@ -295,10 +293,8 @@ private function get_teacher_content($context) { $filtered_student_ids = array(); foreach ($student_ids as $candidateid) { $candidateid = (int)$candidateid; - if (is_siteadmin($candidateid)) { - continue; - } - if (has_capability('block/learning_style:viewreports', $context, $candidateid)) { + + if ($this->can_view_dashboard($context, $candidateid)) { continue; } $filtered_student_ids[] = $candidateid; diff --git a/download_results.php b/download_results.php index 9baf99fa686..83a15482b65 100644 --- a/download_results.php +++ b/download_results.php @@ -44,9 +44,7 @@ function block_learning_style_csv_safe($value): string { $student_ids = array(); foreach ($enrolled_ids as $candidateid) { $candidateid = (int)$candidateid; - if (is_siteadmin($candidateid)) { - continue; - } + if (has_capability('block/learning_style:viewreports', $context, $candidateid)) { continue; } diff --git a/templates/continue_test.mustache b/templates/continue_test.mustache index b546e003749..5f8129807bd 100644 --- a/templates/continue_test.mustache +++ b/templates/continue_test.mustache @@ -3,7 +3,7 @@