Hola Agustin, tengo una posible solución:
Lo que podes hacer es que los ingresantes accedan al 3W por un bloque de acceso, y los de grado por otro. Eso lo podes hacer en el archivo instalacion/alias.conf:
Alias /3w/ingresantes "<PATH-3W>/src/siu/www"
Alias /3w/grado "<PATH-3W>/src/siu/www"
<Location /3w/ingresantes>
SetEnv ACC_ID 3w_ingresantes
SetEnvIf always_match ^ ACC_ALIAS=/3w/ingresantes
</Location>
<Location /3w/grado>
SetEnv ACC_ID 3w_grado
SetEnvIf always_match ^ ACC_ALIAS=/3w/grado
</Location>
Luego en el archivo instalacion/login.php definís los dos tipos de login (form y ldap):
'form' => array(
'activo' => true,
'clase' => 'modelo\\autenticacion\\auth_form',
'parametros' => array( )
),
'ldap' => array(
'activo' => true,
'clase' => 'modelo\\autenticacion\\auth_ldap',
'parametros' => array(
'server' => 'localhost/ldap', //Servidor LDAP
'user' => 'admin', //Usuario
'dn' => 'dc=siu,dc=edu', //DN
'bind_dn' => 'cn=admin,dc=uni,dc=edu', //Usuario DN
'bind_pass' => 'admin', //Password
'filter' => 'uid=*' //Busqueda de usuarios.
)
),
Pero el truco viene ahora, en el archivo vendor/siu/chulupi-framework/src/SIU/Chulupi/acceso/LoginManager.php función __construct deberia quedar como sigue:
function __construct()
{
$conf = kernel::proyecto()->get_login_config();
$bloque_acceso = kernel::proyecto()->get_bloque_acceso();
if ($bloque_acceso == '3w_grado') {
unset($conf['form']);
$conf['form'] = $conf['ldap'];
unset($conf['ldap']);
}
$this->fuentes = new FuentesAutenticacion($conf);
}
Este ultimo archivo esta dentro de vendor y no lo vas a poder subir al colab, pero si podes hacer un Script de Composer en el archivo src/siu/Install.php que haga dicha modificacion, y luego vas a poder subir dicho cambio.
NOTA: El archivo src/siu/Install.php no es personalizable, cuando actualicen de versión deberán replicar dicho cambio en la misma.
saludos.