/* * $Id: AdminUserDefinitionServiceImpl.java,v 1.3 2006/09/25 08:52:36 acaproni Exp $ * * $Date: 2006/09/25 08:52:36 $ * $Revision: 1.3 $ * $Author: acaproni $ * * Copyright CERN, All Rights Reserved. */ package cern.laser.business.pojo; import java.util.ArrayList; import java.util.Collection; import org.apache.log4j.Logger; import cern.laser.business.dao.AdminUserDAO; import cern.laser.business.dao.CategoryDAO; import cern.laser.business.data.AdminUser; import cern.laser.business.definition.LaserDefinitionDuplicationException; import cern.laser.business.definition.LaserDefinitionException; import cern.laser.business.definition.LaserDefinitionNotFoundException; /** * * * @version $Revision: 1.3 $ $Date: 2006/09/25 08:52:36 $ * @author Katarina Sigerud */ public class AdminUserDefinitionServiceImpl { private static final Logger LOGGER = Logger.getLogger(AdminUserDefinitionServiceImpl.class.getName()); private static final String SOURCE_CATEGORY_PATH_PREFIX = "CERN.SOURCES."; private CategoryDAO categoryDAO; private AdminUserDAO adminUserDAO; // // -- PUBLIC METHODS ---------------------------------------------- // public void setCategoryDAO(CategoryDAO categoryDAO) { this.categoryDAO = categoryDAO; } public void setAdminUserDAO(AdminUserDAO adminUserDAO) { this.adminUserDAO = adminUserDAO; } public String loginAdminUser(String name, String password) { AdminUser admin_user = adminUserDAO.findAdminUserByNamePassword(name, password); return admin_user.getUserId(); } // public AdminUser findAdminUser(Integer userId) throws LaserDefinitionException { // if (userId == null) throw new LaserDefinitionNotAllowedException("userId is null"); // // AdminUser admin_user = adminUserDAO.getAdminUser(userId); // if (admin_user == null) { // throw new LaserDefinitionNotFoundException("unable to find admin user "+userId); // } // // return admin_user; // } public Collection getAdminUsers() throws LaserDefinitionException { try { AdminUser[] users = adminUserDAO.findAllAdminUsers(); Collection result = new ArrayList(users.length); for (int i = 0; i < users.length; i++) { result.add(users[i].getUserId()); } return result; } catch (Exception e) { throw new LaserDefinitionException("unable to get admin users", e); } } public String createAdminUser(String name, String password) throws LaserDefinitionException { LOGGER.info("creating admin user : " + name + "/" + password); AdminUser admin_user = adminUserDAO.getAdminUserByName(name); if (admin_user != null) { throw new LaserDefinitionDuplicationException("a user " + name + " already exists"); } admin_user = new AdminUser(name, password); admin_user.addAdministeredCategory(categoryDAO.findByCategoryTreeRoot()); adminUserDAO.saveAdminUser(admin_user); LOGGER.info("admin user " + name + "/" + password + " created"); return admin_user.getUserId(); } public void removeAdminUser(String name) throws LaserDefinitionException { LOGGER.info("removing admin user : " + name); AdminUser admin_user = adminUserDAO.getAdminUserByName(name); if (admin_user == null) { throw new LaserDefinitionNotFoundException("a user " + name + " does not exists"); } adminUserDAO.deleteAdminUser(admin_user); admin_user = null; LOGGER.info("user " + name + " removed"); } // // -- PRIVATE METHODS ---------------------------------------------- // }