Newer
Older
/*
* _____________________________________________________________________________
*
* INAF - OATS National Institute for Astrophysics - Astronomical Observatory of
* Trieste INAF - IA2 Italian Center for Astronomical Archives
* _____________________________________________________________________________
*
* Copyright (C) 2016 Istituto Nazionale di Astrofisica
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License Version 3 as published by the
* Free Software Foundation.
*
* 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., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
Sonia Zorba
committed
package it.inaf.ia2.tsm.webapp;
import it.inaf.ia2.tsm.webapp.xmlconfig.SeparatedCredentials;
import it.inaf.ia2.tsm.datalayer.Credentials;
import it.inaf.ia2.tsm.datalayer.DBWrapper;
import it.inaf.ia2.tsm.model.TapSchemaModels;
import it.inaf.ia2.tsm.webapp.env.UIModal;
import it.inaf.ia2.tsm.webapp.xmlconfig.JoinedCredentials;
import it.inaf.ia2.tsm.webapp.xmlconfig.TapCredentials;
import java.io.Serializable;
import java.sql.SQLException;
import javax.annotation.PostConstruct;
Sonia Zorba
committed
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
Sonia Zorba
committed
import org.apache.deltaspike.core.api.scope.WindowScoped;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
*/
@Named("credentialsInsertion")
Sonia Zorba
committed
@WindowScoped
Sonia Zorba
committed
public class CredentialsEditing implements Serializable {
Sonia Zorba
committed
private static final long serialVersionUID = -2688980249773483198L;
Sonia Zorba
committed
private static final Logger LOG = LoggerFactory.getLogger(CredentialsEditing.class);
Sonia Zorba
committed
private User user;
@Inject
private ConfigurationManager config;
Sonia Zorba
committed
private SchemaSelectionBean schemaSelectionBean;
private Integer credentialsInEditing;
private Integer credentialsToRemove;
private UIModal.StatusObserver credentialsDialogStatusObserver;
Sonia Zorba
committed
private boolean credentialsDialogOpened;
private List<String> tapSchemaVersions;
private boolean separateCredentials;
private Credentials sourceCredentials;
private Credentials tapSchemaCredentials;
private String tapSchemaName;
private String tapSchemaVersion;
private boolean hasObscore;
@PostConstruct
public void init() {
this.credentialsDialogStatusObserver = new UIModal.StatusObserver() {
@Override
public void statusChanged(boolean isOpen) {
credentialsDialogOpened = isOpen;
}
};
this.tapSchemaVersions = TapSchemaModels.getAvailableVersions();
public List<TapCredentials> getSavedCredentials() {
Sonia Zorba
committed
return user.getUserConfiguration().getCredentialsInfo();
public void editCredentials(int index) {
credentialsInEditing = index;
TapCredentials credentials = getSavedCredentials().get(index);
if (credentials instanceof JoinedCredentials) {
JoinedCredentials joinedCredentials = (JoinedCredentials) credentials;
separateCredentials = false;
sourceCredentials = new Credentials(joinedCredentials.getCredentials());
// in case the user wants to split credentials
tapSchemaCredentials = new Credentials();
} else if (credentials instanceof SeparatedCredentials) {
SeparatedCredentials separatedCredentials = (SeparatedCredentials) credentials;
separateCredentials = true;
sourceCredentials = new Credentials(separatedCredentials.getSourceCredentials());
tapSchemaCredentials = new Credentials(separatedCredentials.getTapSchemaCredentials());
}
tapSchemaName = credentials.getTapSchemaName();
tapSchemaVersion = credentials.getTapSchemaVersion();
hasObscore = credentials.isHasObscore();
}
public void addNewCredentials() {
separateCredentials = false;
sourceCredentials = new Credentials();
tapSchemaCredentials = new Credentials();
tapSchemaName = "";
tapSchemaVersion = "";
hasObscore = false;
// public void editCredentials(Credentials credentials, int index) {
// this.sourceCredentials = credentials;
// separateCredentials = false;
// currentEditingRow = index;
// }
//
// public void editSeparateCredentials(SeparatedCredentials sc, int index) {
// this.sourceCredentials = sc.getSourceCredentials();
// this.tapSchemaCredentials = sc.getTapSchemaCredentials();
// currentEditingRow = index;
// separateCredentials = true;
// }
public String loginWithJoinedCredentials(JoinedCredentials credentials) {
return loginWithDBWrapper(new DBWrapper(credentials.getCredentials()));
public String loginWithSeparatedCredentials(Credentials sourceCredentials, Credentials tapSchemaCredentials) {
return loginWithDBWrapper(new DBWrapper(sourceCredentials, tapSchemaCredentials));
}
private String loginWithDBWrapper(DBWrapper dbWrapper) {
dbWrapper.testConnections();
schemaSelectionBean.setDbWrapper(dbWrapper);
return "schemaSelection.xhtml?faces-redirect=true";
} catch (SQLException e) {
Sonia Zorba
committed
LOG.error("Exception caught", e);
Sonia Zorba
committed
FacesContext.getCurrentInstance().addMessage("main", new FacesMessage("Connection error: " + e.getMessage()));
public void removeCredentials(int index) throws IOException {
// getSavedCredentials().remove(index);
// config.updateUsersConfigurationFile();
}
public void saveCredentialsEdited() throws IOException {
//
// // If is editing existing, remove old for creating a new one
// if (currentEditingRow < getSavedCredentials().size()) {
// getSavedCredentials().remove(currentEditingRow);
// }
//
// if (separateCredentials) {
// SeparatedCredentials sc = new SeparatedCredentials(sourceCredentials, tapSchemaCredentials);
// getSavedCredentials().add(currentEditingRow, sc);
// } else {
// getSavedCredentials().add(currentEditingRow, sourceCredentials);
// }
//
// config.updateUsersConfigurationFile();
public UIModal.StatusObserver getCredentialsDialogStatus() {
return credentialsDialogStatusObserver;
}
public List<String> getTapSchemaVersions() {
return tapSchemaVersions;
}
public void setTapSchemaVersions(List<String> tapSchemaVersions) {
this.tapSchemaVersions = tapSchemaVersions;
}
public boolean isSeparateCredentials() {
return separateCredentials;
public void setSeparateCredentials(boolean separateCredentials) {
this.separateCredentials = separateCredentials;
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
// public void separateCredentialsChanged() {
// if (separateCredentials) {
// Credentials credentials = getJoinedCredentialsInEditing().getCredentials();
// SeparatedCredentials separatedCredentials = new SeparatedCredentials();
// separatedCredentials.setSourceCredentials(credentials);
// credentialsInEditing = separatedCredentials;
// } else {
// Credentials credentials = getSeparatedCredentialsInEditing().getSourceCredentials();
// JoinedCredentials joinedCredentials = new JoinedCredentials();
// joinedCredentials.setCredentials(credentials);
// credentialsInEditing = joinedCredentials;
// }
// }
//
// public JoinedCredentials getJoinedCredentialsInEditing() {
// if (credentialsInEditing instanceof JoinedCredentials) {
// return (JoinedCredentials) credentialsInEditing;
// }
// return null;
// }
//
// public SeparatedCredentials getSeparatedCredentialsInEditing() {
// if (credentialsInEditing instanceof SeparatedCredentials) {
// return (SeparatedCredentials) credentialsInEditing;
// }
// return null;
// }
public boolean isCredentialsDialogOpened() {
return credentialsDialogOpened;
}
public void setCredentialsDialogOpened(boolean credentialsDialogOpened) {
this.credentialsDialogOpened = credentialsDialogOpened;
}
public Credentials getSourceCredentials() {
return sourceCredentials;
public void setSourceCredentials(Credentials sourceCredentials) {
this.sourceCredentials = sourceCredentials;
public Credentials getTapSchemaCredentials() {
return tapSchemaCredentials;
public void setTapSchemaCredentials(Credentials tapSchemaCredentials) {
this.tapSchemaCredentials = tapSchemaCredentials;
public String getTapSchemaName() {
return tapSchemaName;
public void setTapSchemaName(String tapSchemaName) {
this.tapSchemaName = tapSchemaName;
}
public String getTapSchemaVersion() {
return tapSchemaVersion;
}
public void setTapSchemaVersion(String tapSchemaVersion) {
this.tapSchemaVersion = tapSchemaVersion;
}
public boolean isHasObscore() {
return hasObscore;
}
public void setHasObscore(boolean hasObscore) {
this.hasObscore = hasObscore;