Index: topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaUserImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaUserImpl.java:1.2 topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaUserImpl.java:1.3 --- topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaUserImpl.java:1.2 Wed Sep 13 14:26:18 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaUserImpl.java Mon Sep 25 13:24:40 2006 @@ -20,29 +20,65 @@ package org.codelutin.topia.security.entities.user; -import static org.codelutin.topia.security.TopiaSecurityUtil.hash; +import static org.codelutin.topia.security.util.TopiaSecurityUtil.hash; -public class TopiaUserImpl extends TopiaUserAbstract implements TopiaUser { +import java.util.ArrayList; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; + +/** + * Classe permettant la gestion des utilisateurs. + * @author ruchaud + */ +public class TopiaUserImpl extends TopiaUserAbstract implements TopiaUser, NoEntityVetoableReadListener { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(TopiaUserImpl.class); private static final long serialVersionUID = 1L; - public boolean isCorrectPassword(String password) { + /** + * Contructeur permettant d'initialiser la liste des groupes à vide. + */ + public TopiaUserImpl() { + setTopiaGroup(new ArrayList()); + } + + /** + * Permet de vérifier la validité d'un mot de passe. + * @param password mot de passe à vérifier + */ + public boolean checkPassword(String password) { if (this.password == null) { return password == null; } else{ - return this.password.equals(hash(password)); + String hashed = hash(password); + log.debug("password is: " + this.password + " and hashed is " + hashed); + return this.password.equals(hashed); } } + /** + * Permet de remplacer l'ancien mot de passe. + * @param newPassword nouveau mot de passe + */ public void setPassword(String newPassword) { password = hash(newPassword); + log.debug("setPassword to: " +password); } + /** + * Permet de remplacer l'ancien mot de passe si l'ancien mot de passe est + * correct. + * @param newPassword ancien mot de passe + * @param oldPassword nouveau mot de passe + */ public void setPassword(String oldPassword, String newPassword) { - if (!isCorrectPassword(oldPassword)) { - return; + if (checkPassword(oldPassword)) { + setPassword(newPassword); } - setPassword(newPassword); } } Index: topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaGroupImpl.java diff -u /dev/null topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaGroupImpl.java:1.1 --- /dev/null Mon Sep 25 13:24:45 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/user/TopiaGroupImpl.java Mon Sep 25 13:24:40 2006 @@ -0,0 +1,59 @@ +/* *##% +* Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, +* Cédric Pineau, Benjamin Poussin, +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*##%*/ + +package org.codelutin.topia.security.entities.user; + +import java.util.ArrayList; +import java.util.List; + +import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; + +/** + * Classe permettant la gestion de groupes d'utilisateurs. + * @author ruchaud + * + */ +public class TopiaGroupImpl extends TopiaGroupAbstract implements TopiaGroup, NoEntityVetoableReadListener { + + private static final long serialVersionUID = 1L; + + /** + * Contructeur permettant l'initialisation des sous-groupes et des utilisateurs + * à vide. + */ + public TopiaGroupImpl() { + setTopiaUser(new ArrayList()); + setSubGroup(new ArrayList()); + } + + /** + * Permet de récupérer les utilisateurs du groupe et de ses sous-groupes. + * @return liste des utilisateurs du groupe + */ + public List getAllUser() { + List result = new ArrayList(); + result.addAll(getTopiaUser()); + for (TopiaGroup group : getSubGroup()) { + result.addAll(group.getAllUser()); + } + return result; + } + +}