package br.gov.frameworkdemoiselle.fuselage.business; import java.util.List; import javax.inject.Inject; import br.gov.frameworkdemoiselle.fuselage.domain.SecurityProfile; import br.gov.frameworkdemoiselle.fuselage.domain.SecurityUser; import br.gov.frameworkdemoiselle.fuselage.persistence.UserDAO; import br.gov.frameworkdemoiselle.lifecycle.Startup; import br.gov.frameworkdemoiselle.query.contrib.QueryConfig; import br.gov.frameworkdemoiselle.stereotype.BusinessController; import br.gov.frameworkdemoiselle.template.contrib.DelegateCrud; import br.gov.frameworkdemoiselle.transaction.Transactional; @BusinessController public class UserBC extends DelegateCrud<SecurityUser, Long, UserDAO> { private static final long serialVersionUID = 1L; @Transactional @Startup public void startup() { if (findAll().isEmpty()) { insert(new SecurityUser("faa-admin", "Administrador do Fuselage", "123456")); } } @Inject private ProfileBC profileBC; public List<SecurityProfile> getProfilesExceptList(List<SecurityProfile> securityProfiles) { return profileBC.findProfilesExceptList(securityProfiles); } public boolean userAvailable(String login) { if (login != null && login.length() > 2) { List<SecurityUser> userList = findByLogin(login); if (userList.size() == 0) return true; } return false; } public void insertOrUpdate(SecurityUser securityUser) { if (securityUser.getId() == null) { securityUser.setAvailable(1); getDelegate().insert(securityUser); } else getDelegate().update(securityUser); } public SecurityUser loadByLogin(String login) { List<SecurityUser> userList = findByLogin(login); if (userList.size() != 1) return new SecurityUser(); else return userList.get(0); } public List<SecurityUser> findByLogin(String login) { QueryConfig<SecurityUser> queryConfig = getQueryConfig(); queryConfig.getFilter().put("login", login); queryConfig.setFilterCaseInsensitive(false); return findAll(); } public void disable(SecurityUser securityUser) { securityUser.setAvailable(0); update(securityUser); } public void enable(SecurityUser securityUser) { securityUser.setAvailable(1); update(securityUser); } }