Index: topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java:1.4 topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java:1.5 --- topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java:1.4 Fri Apr 29 16:00:39 2005 +++ topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java Fri May 20 17:51:10 2005 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * - * Mise a jour: $Date: 2005/04/29 16:00:39 $ + * Mise a jour: $Date: 2005/05/20 17:51:10 $ * par : $Author: thimel $ */ @@ -33,14 +33,19 @@ import java.io.IOException; import java.io.Writer; +import java.util.Hashtable; import java.util.Iterator; import java.io.File; +import javax.security.auth.login.Configuration; + import org.codelutin.generator.Generator; import org.codelutin.generator.ObjectModelGenerator; import org.codelutin.generator.models.object.ObjectModel; import org.codelutin.generator.models.object.ObjectModelClassifier; import org.codelutin.topia.generators.Util; +import org.codelutin.topia.security.TopiaConfiguration; +import org.codelutin.topia.security.TopiaPolicy; public class ObjectModelToApplicationContextGenerator extends ObjectModelGenerator { // ObjectModelToApplicationContextGenerator @@ -58,7 +63,6 @@ } public void generateFromModel(Writer output, ObjectModel model) throws IOException { - /*{ package <%=getProperty("defaultPackage")%>; @@ -66,9 +70,12 @@ import org.codelutin.topia.TopiaContextFactory; import org.codelutin.topia.TopiaException; import org.codelutin.topia.security.TopiaSecurityException; +import org.codelutin.topia.security.TopiaConfiguration; +import org.codelutin.topia.security.TopiaPolicy; import java.util.Properties; import java.util.List; -import java.security.Principal; +import java.util.Hashtable; +import javax.security.auth.login.Configuration; public class <%=model.getName()%>Context extends TopiaContext { @@ -76,6 +83,20 @@ *) protected <%=model.getName()%>Context(Properties properties) { super(properties); + initSecurity(); + } + + /** + * Initialise les paramètres de sécurité. + *) + private void initSecurity() { + Configuration conf = new TopiaConfiguration("<%=model.getName()%>", + getContextPropertiesFilename()); + Configuration.setConfiguration(conf); + TopiaPolicy policy = new TopiaPolicy(); + policy.installPolicy(); + permissionListeners.add(policy); + loadPermissions(); } /** Index: topia/src/java/org/codelutin/topia/generators/ObjectModelToContextPropertiesGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ObjectModelToContextPropertiesGenerator.java:1.7 topia/src/java/org/codelutin/topia/generators/ObjectModelToContextPropertiesGenerator.java:1.8 --- topia/src/java/org/codelutin/topia/generators/ObjectModelToContextPropertiesGenerator.java:1.7 Wed May 4 16:09:41 2005 +++ topia/src/java/org/codelutin/topia/generators/ObjectModelToContextPropertiesGenerator.java Fri May 20 17:51:10 2005 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.7 $ + * @version $Revision: 1.8 $ * - * Mise a jour: $Date: 2005/05/04 16:09:41 $ + * Mise a jour: $Date: 2005/05/20 17:51:10 $ * par : $Author: thimel $ */ @@ -82,8 +82,9 @@ //Secuity Variables /*{ topia.auth.type=simple -topia.auth.simple.file=passwords.file +topia.auth.simple.file.login=passwords.file #topia.auth.simple.hash=SHA +topia.auth.simple.file.groups=groups.file }*/ } Index: topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java:1.9 topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java:1.10 --- topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java:1.9 Wed May 4 16:09:41 2005 +++ topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java Fri May 20 17:51:10 2005 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ * - * Mise a jour: $Date: 2005/05/04 16:09:41 $ + * Mise a jour: $Date: 2005/05/20 17:51:10 $ * par : $Author: thimel $ */ @@ -90,7 +90,7 @@ public void generateNormalAttributeDeclaration(Writer output, ObjectModelAttribute attribute) throws IOException { /*{ - protected <%=Util.getAttributeType(attribute)%> <%=attribute.getName()%> = <%=Util.getInitValue(attribute)%>; + private <%=Util.getAttributeType(attribute)%> <%=attribute.getName()%> = <%=Util.getInitValue(attribute)%>; protected boolean _<%=attribute.getName()%>Modified_ = false; }*/ } @@ -109,8 +109,11 @@ public void generateGetNormalAttributeAccessor(Writer output, ObjectModelAttribute attribute) throws IOException { /*{ public <%=Util.getAttributeType(attribute)%> get<%=Util.capitalize(attribute.getName())%>() throws TopiaException { - TopiaAccessController.checkPermission(this, "read"); - return <%=attribute.getName()%>; +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "read"); +}*/ + } +/*{ return <%=attribute.getName()%>; } public boolean is_<%=attribute.getName()%>Modified_(){ return this._<%=attribute.getName()%>Modified_; @@ -125,8 +128,11 @@ * @return an unmodifiable collection *) public <%=Util.getAttributeType(attribute)%> get<%=Util.capitalize(attribute.getName())%>() throws TopiaException { - TopiaAccessController.checkPermission(this, "read"); - return Collections.unmodifiableCollection(<%=attribute.getName()%>); +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "read"); +}*/ + } +/*{ return Collections.unmodifiableCollection(<%=attribute.getName()%>); } public boolean is_<%=attribute.getName()%>Modified_(){ return this._<%=attribute.getName()%>Modified_; @@ -150,7 +156,11 @@ throws IOException { /*{ public void set<%=Util.capitalize(attribute.getName())%>(<%=Util.getAttributeType(attribute)%> value) throws TopiaException { - this._<%=attribute.getName()%>Modified_ = true; +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ this._<%=attribute.getName()%>Modified_ = true; this.<%=attribute.getName()%> = value; } }*/ @@ -160,26 +170,46 @@ throws IOException { /*{ public void add<%=Util.capitalize(attribute.getName())%>(<%=attribute.getType()%> value) throws TopiaException { - this._<%=attribute.getName()%>Modified_ = true; +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ this._<%=attribute.getName()%>Modified_ = true; this.<%=attribute.getName()%>.add(value); } public void remove<%=Util.capitalize(attribute.getName())%>(<%=attribute.getType()%> value) throws TopiaException { - this._<%=attribute.getName()%>Modified_ = true; +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ this._<%=attribute.getName()%>Modified_ = true; this.<%=attribute.getName()%>.remove(value); } public void clear<%=Util.capitalize(attribute.getName())%>() throws TopiaException { - this._<%=attribute.getName()%>Modified_ = true; +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ this._<%=attribute.getName()%>Modified_ = true; this.<%=attribute.getName()%> = <%=Util.getInitValue(attribute)%>; } public void add<%=Util.capitalize(attribute.getName())%>(<%=Util.getAttributeType(attribute)%> list) throws TopiaException{ - add<%=Util.capitalize(attribute.getName())%>(list, false); +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ add<%=Util.capitalize(attribute.getName())%>(list, false); } public void add<%=Util.capitalize(attribute.getName())%>(<%=Util.getAttributeType(attribute)%> list, boolean duplicate) throws TopiaException{ - if(!duplicate){ +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ if(!duplicate){ java.util.ArrayList listClone = new java.util.ArrayList(); listClone.addAll(list); listClone.removeAll(get<%=Util.capitalize(attribute.getName())%>()); @@ -225,6 +255,9 @@ ////////////////////////////////////////////////////////////////////// public void generateRemoveEntity(Writer output, ObjectModelClassifier clazz) throws IOException { + //TODO ??? Arno : Autoriser seulement si ADMIN ? + //Réponse : ne pas se soucier des droits ici, vérification dans XXXPersistenceServiceImpl + //Idem pour create /*{ /** * Delete this entity with its persistenceService @@ -283,7 +316,9 @@ * Return a String representation of this entity *) public String toString(){ - return <%=getProperty("defaultPackage")%>.<%=model.getName()%>EntitiesHelper.toString(this); + }*/ + //TODO Arno : Faut-il restreindre ca ??? + /*{ return <%=getProperty("defaultPackage")%>.<%=model.getName()%>EntitiesHelper.toString(this); } /** @@ -316,7 +351,11 @@ * Les modifications s'effectue au travers des methodes set. *) public void set_allProperties_(TopiaEntity topiaEntity) throws TopiaException { - <%=clazz.getName()%> entity = (<%=clazz.getName()%>)topiaEntity; +}*/ if (!"true".equals(getProperty("security.skip"))){ +/*{ TopiaAccessController.checkPermission(this, "write"); +}*/ + } +/*{ <%=clazz.getName()%> entity = (<%=clazz.getName()%>)topiaEntity; }*/ if(clazz.getSuperclasses().size() != 0){ /*{ Index: topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java:1.7 topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java:1.8 --- topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java:1.7 Wed May 4 16:09:41 2005 +++ topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java Fri May 20 17:51:10 2005 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.7 $ + * @version $Revision: 1.8 $ * - * Mise a jour: $Date: 2005/05/04 16:09:41 $ + * Mise a jour: $Date: 2005/05/20 17:51:10 $ * par : $Author: thimel $ */ @@ -125,6 +125,8 @@ public void generateOther(Writer output, ObjectModelClassifier clazz) throws IOException { if(clazz instanceof ObjectModelClass){ /*{ + public <%=clazz.getName()%> find<%=clazz.getName()%>By_TopiaId_(String topiaId) throws TopiaException; + /** * Return new entity *) Index: topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java diff -u topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java:1.6 topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java:1.7 --- topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java:1.6 Wed May 4 16:09:41 2005 +++ topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java Fri May 20 17:51:10 2005 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ * - * Mise a jour: $Date: 2005/05/04 16:09:41 $ + * Mise a jour: $Date: 2005/05/20 17:51:10 $ * par : $Author: thimel $ */ @@ -133,6 +133,11 @@ if(clazzifier instanceof ObjectModelClass){ ObjectModelClass clazz = (ObjectModelClass)clazzifier; /*{ + + public <%=clazz.getName()%> find<%=clazz.getName()%>By_TopiaId_(String topiaId) throws TopiaException { + // TODO Arno : Tester le topiaId avant de faire le find !!! + return (<%=clazz.getName()%>)getAppContext().getPersistenceHelper().findByTopiaId(topiaId); + } /** * Return new entity