Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java:1.5 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java:1.6 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java:1.5 Thu Sep 21 13:22:14 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java Mon Sep 25 13:24:40 2006 @@ -20,23 +20,28 @@ package org.codelutin.topia.security.entities.authorization; -import static org.codelutin.topia.security.TopiaSecurityUtil.CREATE; -import static org.codelutin.topia.security.TopiaSecurityUtil.DELETE; -import static org.codelutin.topia.security.TopiaSecurityUtil.LOAD; -import static org.codelutin.topia.security.TopiaSecurityUtil.UPDATE; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.CREATE; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.DELETE; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.LOAD; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.UPDATE; import java.util.Set; import org.codelutin.topia.security.jaas.TopiaPrincipalMap; +import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; - +/** + * Classe permettant la comparaison des autorisations. + * @author ruchaud + */ +//TODO: Inversion des autorisations public abstract class TopiaAuthorizationImpl extends TopiaAuthorizationAbstract implements - TopiaAuthorization { + TopiaAuthorization, NoEntityVetoableReadListener { /** - * - * @param other - * @return + * Compare deux autorisations entres elles. + * @param other une autre autorisation + * @return vrai si l'autorisation implique l'autre */ public boolean implies(TopiaAuthorization other) { return impliesId(getId(), other.getId()) && @@ -45,10 +50,11 @@ } /** - * - * @param thisId - * @param thatId - * @return + * Comparare deux identifiants entres eux. + * thisId => thatId = ? + * @param thisId un identifiant + * @param thatId un autre identifiant + * @return vrai si thisId implique thatId */ public boolean impliesId(String thisId, String thatId) { return (thisId.equals(thatId) || @@ -58,10 +64,11 @@ } /** - * - * @param thisActions - * @param thatActions - * @return + * Compare deux actions entre elles. + * thisActions => thatActions = ? + * @param thisActions une action + * @param thatActions une autre action + * @return vrai si thisActions implique thatActions */ public boolean impliesActions(int thisActions, int thatActions) { boolean result = true; @@ -81,10 +88,11 @@ } /** - * - * @param thisPrincipals - * @param thatPrincipals - * @return + * Compare deux principals entre eux. + * thisPrincipals => thatPrincipals = ? + * @param thisPrincipals un principal + * @param thatPrincipals un autre principal + * @return vrai si thisPrincipals implique thatPrincipals */ public boolean impliesPrincipals(TopiaPrincipalMap thisPrincipals, TopiaPrincipalMap thatPrincipals) { Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java:1.4 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java:1.5 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java:1.4 Thu Sep 21 13:22:14 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java Mon Sep 25 13:24:40 2006 @@ -20,15 +20,21 @@ package org.codelutin.topia.security.entities.authorization; -import static org.codelutin.topia.security.TopiaSecurityUtil.actionsString2Int; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.actionsString2Int; import java.security.Principal; import java.util.Set; import org.codelutin.topia.security.jaas.TopiaPrincipalMap; +import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; +/** + * Classe permettant de définir des autorisations sur les entités. + * @author ruchaud + */ +//TODO: Rajouter la possibilité de faire des autorisations sur les champs d'une entité public class TopiaEntityAuthorizationImpl extends - TopiaEntityAuthorizationAbstract implements TopiaEntityAuthorization { + TopiaEntityAuthorizationAbstract implements TopiaEntityAuthorization, NoEntityVetoableReadListener { private static final long serialVersionUID = 1L; Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java:1.3 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java:1.4 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java:1.3 Thu Sep 21 13:22:14 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java Mon Sep 25 13:24:40 2006 @@ -21,16 +21,29 @@ package org.codelutin.topia.security.entities.authorization; import org.codelutin.topia.security.jaas.TopiaPrincipalMap; +import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; +/** + * Classe permettant de définir des autorisations identiques à une autre autorisation. + * @author ruchaud + */ public class TopiaLinkAuthorizationImpl extends TopiaLinkAuthorizationAbstract - implements TopiaLinkAuthorization { + implements TopiaLinkAuthorization, NoEntityVetoableReadListener { private static final long serialVersionUID = 1L; + /* + * (non-Javadoc) + * @see org.codelutin.topia.security.entities.authorization.TopiaAuthorization#getActions() + */ public int getActions() { return topiaAuthorization.getActions(); } + /* + * (non-Javadoc) + * @see org.codelutin.topia.security.entities.authorization.TopiaAuthorization#getPrincipals() + */ public TopiaPrincipalMap getPrincipals() { return topiaAuthorization.getPrincipals(); } Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java:1.4 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java:1.5 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java:1.4 Thu Sep 21 13:22:14 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java Mon Sep 25 13:24:40 2006 @@ -20,7 +20,7 @@ package org.codelutin.topia.security.entities.authorization; -import static org.codelutin.topia.security.TopiaSecurityUtil.actionsString2Int; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.actionsString2Int; import java.util.List; @@ -28,22 +28,41 @@ import org.codelutin.topia.TopiaException; import org.codelutin.topia.persistence.TopiaId; import org.codelutin.topia.security.jaas.TopiaPrincipalMap; +import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; - +/** + * Classe permettant les autorisations de type association. C'est à dire l'autorisation + * permet de donné une autorisation par rapport à une association dans le modèle. + * Attention il faut avoir une autorisation de chargement sur la l'entité où + * commence l'association + * @author ruchaud + */ +//TODO: Gestion d'un identifiant de début et de fin d'association typé public class TopiaAssociationAuthorizationImpl extends TopiaAssociationAuthorizationAbstract implements - TopiaAssociationAuthorization { + TopiaAssociationAuthorization, NoEntityVetoableReadListener { private static final long serialVersionUID = 1L; + /** + * Constructeur permettant initialisation des principals. + */ public TopiaAssociationAuthorizationImpl() { principals = new TopiaPrincipalMap(); } + /* + * (non-Javadoc) + * @see org.codelutin.topia.security.entities.authorization.TopiaAuthorization#getId() + */ public String getId() { return idBeginAssociation; } + /* + * (non-Javadoc) + * @see org.codelutin.topia.security.entities.authorization.TopiaAuthorizationImpl#impliesId(java.lang.String, java.lang.String) + */ public boolean impliesId(String thisId, String thatId) { String select = "count(test)"; String from = TopiaId.getClassNameAsString(thisId) + " test join test." + nameAssociation + " as association";