Salve, vorrei segnalare il seguente bug individuato su CMDBuild versione 1.2.1 :
Testando la nuova funzionalità di inserimento "al volo" di una scheda da selezionare in un campo "reference", è emerso che se la classe da selezionare è padre di altre classi, allora si ottiene un errore "Privilegi insufficenti sulla classe XXXXX"
Mi spiego con un esempio specifico
Abbiamo il seguente scenario :
- una superclasse "Modello" che è padre di altre superclassi, :"Mod_Materiale", "Mod_Consumabile" ecc, ecc,
- la superclasse "Mod_Materiale" di cui sopra ha classi figlie "Mod_Stampante", "Mod_Computer", ecc, ecc
- una classe "Quantità" che ha un campo di nome "Modello" che è una reference alla classe modello
Tra le classi Quantità e Modello esiste un dominio di nome "Quantità_Modello" con cardinalità N:1
e di tipo Master-Detail
Passi per riprodurre il bug:
1) In modalità "gestione dati", cliccare sulla classe "Quantità" e poi sul tasto "Aggiungi scheda": nel tab "Scheda" in basso, compariranno i campi di "Quantità" che debbono essere compilati, tra questi anche il campo reference "Modello"
2) Cliccare sulla lente a destra della combo box "Modello", si aprirà una finestra per la selezione del modello. In questa finestra, vengono giustamente elencate tutte le istanze delle sottoclassi di Modello, ovvero tutti gli oggetti di "Mod_Stampante", tutti quelli di "Mod_Computer", e così via
3) cliccare su "aggiungi scheda modello" : nella combo box compaiono solo le superclassi figlie di Modello ovvero "Mod_Materiale", "Mod_Consumabile", ecc, e quindi se si seleziona una di queste e si prova a inserire si ottiene l'errore.
Sarebbe giusto invece che fosse possibile selezionare solo le classi che sono "foglie" dell'albero, ovvero "Mod_Stampante","Mod_Computer", ecc.
Nota: Quando il DB era vuoto e non avevamo inserito alcuna scheda di modello, nella stessa combo non comparivano nemmeno le superclassi figlie, ma si apriva direttamente una maschera per l'inserimento di una scheda di classe "Modello", e quindi essendo essa superclasse, ottenevamo comunque l'errore.
In cmdbuild.log l'errore segnalato è il seguente :
"org.cmdbuild.exception.AuthException: AUTH_CLASS_NOT_AUTHORIZED Modello at org.cmdbuild.exception.AuthException$AuthExceptionType.createException(AuthException.java:22) at org.cmdbuild.services.auth.PrivilegeManager.assureCreatePrivilege(PrivilegeManager.java:101) at org.cmdbuild.elements.proxy.CardProxy.save(CardProxy.java:33)
Cordiali saluti,
Alessandro Grillini