Imaginemos que añadimos una nueva pestaña al formulario de un usuari, entonces por ejemplo que las pestañas a mostrar del usuario fueran:
Profile, Editar Información, Forum Posts, Blog, Activity Reports, NuevaPestaña
La idea que tengo pensada es que el estudiante pueda decidir si quiere que otros estudiantes vean la NuevaPestaña, y por ejemplo los profesores y administradores la vean siempre.
La segunda parte de lo dicho anteriormente creo que sí se hacerlo. Si no estoy equivocado es definir el permiso en el access.php del nuevo módulo que cree y poner como permitidos a los profesores y admins, y luego en el código del view.php del user consultar el rol del usuario para saber si lo puede ver o no.
Hasta aquí bien, pero la parte en que otros estudiantes puedan o no ver la NuevaPestaña de otro estudiante es la que no tengo clara. Es decir:
1- ¿Donde puedo añadir la opción para que el estudiante decida si otros estudiantes veran su NuevaPestaña o no?
2- ¿La solución podría ser un campo nuevo a mdl_user que fuera por ejemplo PermitirVerPestañaNueva y si es true que otros usuarios la vean? No se si esta solución se adapta mucho a la estructura del código de moodle... Además, preferiría alguna otra opción (si es posible) que no dependiera tanto de modificar el código de USER, ya que es bastante más lioso jeje
No se si me he expresado claramente, espero que si,
Saludos!
Como tratar permisos concretos para una nueva funcionalidad?
Número de respuestas: 3Re: Como tratar permisos concretos para una nueva funcionalidad?
Hola Daniel, te comento como me parece que lo podrias hacer, para lo q se me ocurren dos cosas...
A nivel de DB lo que podes hacer es usar la tabla user_preferences y crear un registro nuevo(por usuario) que sea por ejemplo "view_custom_tab" o como desees llamarlo. Ahi no estarías tocando el modelo para nada. El problema de esto es donde vas a poner el checkbox que indicaría si el usuario quiere o no que se vea la pestaña. si lo pones en el formulario de edición de perfil estarías hardcodeando el core. Es una solución viable pero te recomiendo que tengas cuidado cuando hagas estas cosas!.
Otra es crear un nuevo campo para el perfil. Eso lo haces desde Usuarios >> Cuentas >> Campos de perfil de usuario. Esto lo que hace es permitirte extender el perfil de un usuario agregando campos personalizados(para esto usa las tablas user_info_category, user_info_field, user_info_data). El tema es que no está la opción de crear un checkbox(la verdad no se si hay alguna extensión para hacer esto ultimo). Si no encontras ninguna extensión, la podrias crear vos. Tenes que crear un nuevo tipo de campo(checkbox) y con algo de programación ya tendrias algo bastante más genérico, pero eso requiere de un poco más de tiempo.
Te digo sinceramente, no se si estas soluciones sirvan, pero es lo que s eme ocurrió
.
Espero que te sirva de algo, saludos.
A nivel de DB lo que podes hacer es usar la tabla user_preferences y crear un registro nuevo(por usuario) que sea por ejemplo "view_custom_tab" o como desees llamarlo. Ahi no estarías tocando el modelo para nada. El problema de esto es donde vas a poner el checkbox que indicaría si el usuario quiere o no que se vea la pestaña. si lo pones en el formulario de edición de perfil estarías hardcodeando el core. Es una solución viable pero te recomiendo que tengas cuidado cuando hagas estas cosas!.
Otra es crear un nuevo campo para el perfil. Eso lo haces desde Usuarios >> Cuentas >> Campos de perfil de usuario. Esto lo que hace es permitirte extender el perfil de un usuario agregando campos personalizados(para esto usa las tablas user_info_category, user_info_field, user_info_data). El tema es que no está la opción de crear un checkbox(la verdad no se si hay alguna extensión para hacer esto ultimo). Si no encontras ninguna extensión, la podrias crear vos. Tenes que crear un nuevo tipo de campo(checkbox) y con algo de programación ya tendrias algo bastante más genérico, pero eso requiere de un poco más de tiempo.
Te digo sinceramente, no se si estas soluciones sirvan, pero es lo que s eme ocurrió
Espero que te sirva de algo, saludos.
Re: Como tratar permisos concretos para una nueva funcionalidad?
Muchas gracias Gabriel, tu segunda opción me ha servido perfectamente!
Además por lo que he visto, a partir de la versión 1.9.3 de moodle si te deja crear un checkbox como campo de perfil de usuario y haciendo pruebas funciona correctamente!
Saludos
Además por lo que he visto, a partir de la versión 1.9.3 de moodle si te deja crear un checkbox como campo de perfil de usuario y haciendo pruebas funciona correctamente!
Saludos

Re: Como tratar permisos concretos para una nueva funcionalidad?
Bueno me alegro que te sirva, la verdad es que estoy un poco desactualizado con las versiones. Estamos usando la 1.9.1 pero dentro de poco ya vamos actualizar a la ultima, saludos!