Descrizione
Piattaforma utilizzata Joomla 2.5.4 + ACL del core Joomla
Ho la necessità di gestire dei gruppi di utenti affinchè possa differenziare la visualizzazione di articoli indirizzati solo a un gruppo di appartenenza, effettuando tutte le possibili intersezioni tra le varie proprietà.
Faccio un esempio:
Il gruppo principale che identifica l'utente si chiama "Tipo di attività" (autosalone, concessionarie, etc).
Questa tipologia di cliente deve essere differenziata per "Partner di appartenenza" (partner 1, partner 2, etc), per "Provincia di Residenza", per "tipo di attività" (Moto, macchine agricole, etc), per "marchio trattato" (audi, fiat, bmw, etc), etc.
Riepilogando i gruppi sono: Tipo di attività
Partner di appartenenza
Provincia di Residenza
Tipo di attività
Marchio trattato
(+).....
Così facendo devo avere la possibilità di attivare la visualizzazione di un articolo, attraverso login in area riservata, solo ad utenti di tipo Autosalone, il cui partner di riferimento è partner 1, che si trovano nella provincia di Roma e che trattano il marchio AUDI.
Ma devo anche attivare un articolo ai clienti che fanno parte dello stesso gruppo esposto, ma che si differenziano dal primo solo per il marchio trattato, quindi per esempio BMW.
Ora supponendo di prevedere molte voci per ogni gruppo (esempio i marchi sono circa 150, le province sono 110, etc) e sapendo che l'ACL di Joomla, nella versione 2.5, gestisce i "gruppi utente" secondo la logica della gerarchia (padre/figlio), tale struttura implica la creazione di una quantità di gruppi per ogni tipologia di cliente (autosalone, concessionaria) enorme , ovvero tutte le possibili permutazioni dei gruppi.
Esempio della struttura su joomla:
Registered
---autosalone
------partner 1
---------Roma
------------audi
------------fiat
---------------(+)
---------Milano
------------audi
------------fiat
---------------(+)
------partner 2
---------Roma
------------audi
------------fiat
---------------(+)
---------Milano
------------audi
------------fiat
---------------(+)
---concessionaria
------partner 1
---------Roma
------------audi
------------fiat
---------------(+)
---------Milano
------------audi
------------fiat
---------------(+)
------partner 2
---------Roma
------------audi
------------fiat
---------------(+)
---------Milano
------------audi
------------fiat
---------------(+)
Nella realizzazione dei vari gruppi ho provato a posizionarli tutti allo stesso livello ovvero, tutti figli del gruppo REGISTERED compreso il primo gruppo che identifica l'utente (autosalone, concessionaria, ricambista, etc).
Esempio di prova:
Registered (gruppo padre1)
---autosalone (gruppo figlio1)
---concessionaria (gruppo figlio1)
---fiat
---audi
---Roma
---Milano
Tale soluzione non mi ha permesso di ottenere il risultato che volevo in quanto, l'utente che apparteneva al gruppo "concessionarie" con marchio FIAT, visionava l'articolo per gli utenti sempre consessionari, ma con marchio AUDI, poichè i gruppi risultano essere disgiunti in termini di ereditarietà.
Necessito di un'alternativa nella gestione dei "gruppi utente" e del corrispondende livello di accesso affichè possa intersecare le tutte proprietà.