/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.admin; /* * #%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.io.Serializable; import java.util.List; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Event; import javax.inject.Inject; import javax.inject.Named; import com.intuit.tank.ModifiedUserMessage; import com.intuit.tank.config.Admin; import com.intuit.tank.dao.PreferencesDao; import com.intuit.tank.dao.UserDao; import com.intuit.tank.project.Preferences; import com.intuit.tank.project.User; import com.intuit.tank.qualifier.Modified; import com.intuit.tank.util.Multiselectable; import com.intuit.tank.view.filter.ViewFilterType; import com.intuit.tank.wrapper.SelectableBean; import com.intuit.tank.wrapper.SelectableWrapper; import com.intuit.tank.wrapper.VersionContainer; /** * UserAdmin * * @author dangleton * */ @Named @RequestScoped public class UserAdmin extends SelectableBean<User> implements Serializable, Multiselectable<User> { private static final long serialVersionUID = 1L; private int version; @Inject private UserLoader userLoader; private SelectableWrapper<User> selectedUser; @Inject @Modified private Event<ModifiedUserMessage> userEvent; @Inject @Deleted private Event<Preferences> deletedPrefsEvent; /** * @return the users */ public List<User> getEntityList(ViewFilterType viewFilter) { VersionContainer<User> container = userLoader.getVersionContainer(); this.version = container.getVersion(); return container.getEntities(); } public void resetPreferences(User user) { PreferencesDao dao = new PreferencesDao(); Preferences prefs = dao.getForOwner(user.getName()); if (prefs != null) { dao.delete(prefs); deletedPrefsEvent.fire(prefs); } } /** * @return the selectedUser */ public SelectableWrapper<User> getSelectedUser() { return selectedUser; } /** * @param selectedUser * the selectedUser to set */ public void setSelectedUser(SelectableWrapper<User> selectedUser) { this.selectedUser = selectedUser; } /** * * @{inheritDoc */ public boolean isCurrent() { return userLoader.isCurrent(version); } /** * * @param u */ @Admin public void delete(User u) { new UserDao().delete(u); userEvent.fire(new ModifiedUserMessage(u, this)); } }