UNIMOODLE / moodle-mod_certifygen

GNU General Public License v3.0
1 stars 1 forks source link

Error en el tipo de role obtenido #76

Closed tmas0 closed 2 days ago

tmas0 commented 1 month ago

Buenas,

En muchas de las instalaciones de Moodle, y especialmente en UniMoodle, los roles suelen ser diferentes a los estándares de Moodle. Por otra parte, así como está definido funcionalmente Moodle, te permite generar tantos roles como necesidades se tenga, por tanto es un error suponer que, por ejemplo, el role Estudiante siempre será 'student'.

Por favor, he detectado este caso, pero puede que haya mas como este:

https://github.com/UNIMOODLE/moodle-mod_certifygen/blob/c9c1a626b6dd34faa260b7fd088e3e37a5402a9b/classes/certifygen.php#L399

Aquí se deben leer todos los roles, cuyo archetype sea 'student'.

Es bloqueante, ya que para nosotros hace que el plugin no se pueda usar.

Un saludo

juacas commented 4 weeks ago

Cierto, en parte, y muy importante, todas las comprobaciones de uso deben centrarse únicamente en require_capability, has_capability , get_users_by_capability (y semejantes).

No se debe usar para nada la tabla de roles. La comprobación de arquetipos no es fiable pues otro crear roles sin ellos o modificar otros para buscar el mismo comportamiento.

En resumen, solo usar capability. Si es necesario definir uno específico del módulo

elena3ip commented 3 weeks ago

Hola, Se crea la capability mod/certifygen:emitmyactivitycertificate para identificar a los alumnos. He modificado el código para que se pregunte por dicha capability en vez de el rol student.

tmas0 commented 3 days ago

Buenas,

No lo podemos probar porqué ahora estamos afectados por el bug #80 Quedamos a expensas para corroborar, aunque comentar que revisando la parte de código, debería estar.

Un saludo

tmas0 commented 2 days ago

Comprobado.