Como hemos explicado anteriormente, buscamos centralizar la administración de los módulos basados en el concepto de usuario y grupo sobre LDAP en único punto. Este punto es el interfaz de usuario proporcionado por el módulo Usuarios o Grupos.
Continuemos con el ejemplo del módulo samba. Cuando el administrador de la aplicación edita un grupo, y el servicio samba está activado podrá configurar los parámetros que ofrece el módulo para ese grupo. En este caso será posible activar un recurso compartido asociado al grupo así como su nombre. Estas opciones aparecerán bajo las opciones generales del grupo.
Lo que hace EBox::UsersAndGroups
en el citado ejemplo, es llamar a la implementación de
_groupAddOns() en el módulo samba pasándole
el nombre del grupo que se está editando. El módulo samba devolverá la
plantilla mason y sus argumentos.
Ejemplo 6.1. Implementando el método _groupAddOns
sub _groupAddOns($$) {
my $self = shift;
my $groupname = shift;
my $samba = EBox::Global->modInstance('samba');
unless ($samba->service){
return undef;
}
my @args;
my $args = { 'groupname' => $groupname,
'share' => $self->_groupSharing($groupname)
'sharename' => $self->sharingName($groupname)};
return { path => '/samba/samba.mas', params => $args };
}
En la linea 3 recibimos el nombre del grupo como parámetro.
En la linea 6 devolvemos undef si el servicio no está activado.
En las siguientes lineas se crea el un hash que contiene la ruta de la plantilla mason y los argumentos de la misma. Estos son, el nombre del recurso compartido y la activación del mismo.