function role_assign(...)

function role_assign(...)

de Patricia De Leon -
Número de respuestas: 0
Estos comentarios son sobre la version 1.9.1+ (Build: 20080521) de Moodle.

Mirando la API de Moodle, me parecio encontrar una inconsistencia en la funcion role_assign(...) que se encuentra en el archivo lib/accesslib.php.

Esta funcion recibe como parametros un id de usuario, un id de grupo, un id de rol, entre otros
($roleid, $userid, $groupid, $contextid, $timestart=0, $timeend=0, $hidden=0, $enrol='manual',$timemodified=''), para hacer la asignacion de roles en la tabla 'role_assignments'.

Ahora bien en el codigo de la funcion verifica si el id de usuario no es nulo, en caso que no lo sea realiza la asignacion del rol a ese usuario, pero en caso contrario realiza la asignacion del rol a un grupo.

/// Check for existing entry
if ($userid) {
$ra = get_record('role_assignments', 'roleid', $roleid, 'contextid', $context->id, 'userid', $userid);
} else {
$ra = get_record('role_assignments', 'roleid', $roleid, 'contextid', $context->id, 'groupid', $groupid);
}


Esta es la parte del codigo que no me cierra ya que segun las funcion 'get_record' va a buscar un registro con el campo 'groupid' en la tabla '
role_assignments'. Cuando me fijo en los campos de esta tabla en mi instalacion del moodle el campo 'groupid' no existe en la tabla 'role_assignments'.

En el resto de las funciones de Moodle cuando se invoca a esta funcion siempre se pasa el groupid como nulo, por ende no llega a dar un error cuando es invocada, ya que cuando se arma la clausula where verifica que los valores no sean nulos sino no lo incluye.

La consulta es si es un bug en el codigo que se haya arrastrado de una version anterior o en la tabla deberia tener este campo?

Agradezco sus comentarios.

Promedio de valoraciones: -