/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.auth; /* * #%L * JSF Support Beans * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.util.Set; import javax.enterprise.event.Event; import javax.inject.Inject; import javax.inject.Named; import com.intuit.tank.util.Messages; import com.intuit.tank.dao.GroupDao; import com.intuit.tank.dao.UserDao; import com.intuit.tank.project.User; import com.intuit.tank.qualifier.Modified; import com.intuit.tank.vm.common.PasswordEncoder; import com.intuit.tank.vm.settings.TankConfig; /** * RequestUser * * @author dangleton * */ @Named public class UserRequest { private User user = new User(); private String passwordConfirm; @Inject private Messages messages; @Inject @Modified private Event<User> userEvent; /** * @return the user */ public User getUser() { return user; } /** * @return the passwordConfirm */ public String getPasswordConfirm() { return passwordConfirm; } /** * @param passwordConfirm * the passwordConfirm to set */ public void setPasswordConfirm(String passwordConfirm) { this.passwordConfirm = passwordConfirm; } public void request() { if (!user.getPassword().equals(passwordConfirm)) { messages.error("Passwords do not match."); } else { UserDao userDao = new UserDao(); GroupDao groupDao = new GroupDao(); user.setPassword(PasswordEncoder.encodePassword(passwordConfirm)); userDao.saveOrUpdate(user); Set<String> defaultGroups = new TankConfig().getSecurityConfig().getDefaultGroups(); for (String groupName : defaultGroups) { user.addGroup(groupDao.getOrCreateGroup(groupName)); } user = userDao.saveOrUpdate(user); userEvent.fire(user); } } }