Proyectos de Subversion Moodle

Rev

Rev 1365 | Rev 1367 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1365 Rev 1366
Línea 42... Línea 42...
42
    $notifyeditingon  = empty($_GET['notifyeditingon']) ? 0 : intval($_GET['notifyeditingon'], 10);
42
    $notifyeditingon  = empty($_GET['notifyeditingon']) ? 0 : intval($_GET['notifyeditingon'], 10);
Línea 43... Línea 43...
43
 
43
 
44
    // Detectar si el usuario es invitado o está accediendo sin loguearse
44
    // Detectar si el usuario es invitado o está accediendo sin loguearse
Línea 45... Línea 45...
45
    $isguestaccess = isguestuser() || !isloggedin();
45
    $isguestaccess = isguestuser() || !isloggedin();
46
 
46
 
47
    // Verificación de capacidades más permisiva para invitados
47
    // Solo activar redirección si NO es docente, admin, ni invitado anónimo
48
    if (
48
    if (
49
        has_capability('moodle/course:manageactivities', $course_context, $USER->id) ||
49
        has_capability('moodle/course:manageactivities', $course_context, $USER->id) ||
50
        has_capability('moodle/course:viewhiddenactivities', $course_context, $USER->id) ||
50
        has_capability('moodle/course:viewhiddenactivities', $course_context, $USER->id) ||
51
        $notifyeditingon ||
-
 
52
        $isguestaccess ||
51
        $notifyeditingon ||
53
        (isguestuser() && has_capability('moodle/course:view', $course_context, $USER->id))
52
        $isguestaccess
54
    ) {
53
    ) {
-
 
54
        $searchURL = false;
-
 
55
    } else {
55
        $searchURL = false;
56
        // Solo aplicar redirección si NO es un usuario invitado
-
 
57
        if (!isguestuser()) {
-
 
58
            $searchURL = true;
-
 
59
        } else {
56
    } else {
60
            $searchURL = false;
Línea 57... Línea 61...
57
        $searchURL = true;
61
        }
58
    }
62
    }
59
 
63
 
Línea 60... Línea 64...
60
    if ($searchURL) {
64
    if ($searchURL) {
61
        $completioninfo = new \completion_info($course);
65
        $completioninfo = new \completion_info($course);
62
        $modules = get_fast_modinfo($course->id)->get_cms();
66
        $modules = get_fast_modinfo($course->id)->get_cms();
63
 
67
 
64
        if (!empty($modules)) {
68
        if (!empty($modules)) {
65
            foreach ($modules as $module) {
69
            foreach ($modules as $module) {
66
                // Verificación más permisiva para invitados
70
                // Para invitados, solo verificar visibilidad básica
67
                if (isguestuser()) {
71
                if (isguestuser()) {
-
 
72
                    if (!$module->uservisible || empty($module->url)) {
68
                    if (!$module->uservisible || empty($module->url)) {
73
                        continue;
69
                        continue;
74
                    }
70
                    }
75
                } else {
71
                } else {
76
                    // Para usuarios normales, mantener la lógica original
Línea 72... Línea 77...
72
                    if (!$module->uservisible || $module->is_stealth() || empty($module->url)) {
77
                    if (!$module->uservisible || $module->is_stealth() || empty($module->url)) {
Línea -... Línea 78...
-
 
78
                        continue;
-
 
79
                    }
73
                        continue;
80
                }
74
                    }
81
 
75
                }
82
                $linkURL = new \moodle_url($module->url, array('forceview' => 1));
76
 
83
 
77
                $linkURL = new \moodle_url($module->url, array('forceview' => 1));
84
                // Solo verificar completitud para usuarios no invitados
78
 
85
                if (!isguestuser()) {
-
 
86
                    $completiondata = $completioninfo->get_data($module, true);
79
                $completiondata = $completioninfo->get_data($module, true);
87
                    if (
Línea 80... Línea 88...
80
                if (
88
                        $completiondata &&
81
                    $completiondata &&
89
                        ($completiondata->completionstate == COMPLETION_COMPLETE || $completiondata->completionstate == COMPLETION_COMPLETE_PASS)
82
                    ($completiondata->completionstate == COMPLETION_COMPLETE || $completiondata->completionstate == COMPLETION_COMPLETE_PASS)
90
                    ) {