Search in sources :

Example 51 with FacesMessage

use of javax.faces.application.FacesMessage in project muikku by otavanopisto.

the class PostRedirectMessagesSupport method beforePhase.

@Override
public void beforePhase(PhaseEvent event) {
    if (PhaseId.RENDER_RESPONSE.equals(event.getPhaseId())) {
        FacesContext facesContext = event.getFacesContext();
        if (!facesContext.getResponseComplete()) {
            Map<String, Object> sessionMap = facesContext.getExternalContext().getSessionMap();
            @SuppressWarnings("unchecked") List<FacesMessage> messages = (List<FacesMessage>) sessionMap.get(FacesUtils.POST_REDIRECT_SESSION_KEY);
            if (messages != null) {
                for (FacesMessage message : messages) {
                    facesContext.addMessage(null, message);
                }
                sessionMap.remove(FacesUtils.POST_REDIRECT_SESSION_KEY);
            }
        }
    }
}
Also used : FacesContext(javax.faces.context.FacesContext) List(java.util.List) FacesMessage(javax.faces.application.FacesMessage)

Example 52 with FacesMessage

use of javax.faces.application.FacesMessage in project survey by markoniemi.

the class FacesUtil method showMessage.

public static String showMessage(String id, String messageKey) {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ResourceBundle resourceBundle = facesContext.getApplication().getResourceBundle(facesContext, "messages");
    String message = resourceBundle.getString(messageKey);
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(message));
    return null;
}
Also used : FacesContext(javax.faces.context.FacesContext) ResourceBundle(java.util.ResourceBundle) FacesMessage(javax.faces.application.FacesMessage)

Example 53 with FacesMessage

use of javax.faces.application.FacesMessage in project dataverse by IQSS.

the class DataverseUserPage method validateUserEmail.

public void validateUserEmail(FacesContext context, UIComponent toValidate, Object value) {
    String userEmail = (String) value;
    boolean emailValid = EMailValidator.isEmailValid(userEmail, null);
    if (!emailValid) {
        ((UIInput) toValidate).setValid(false);
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("oauth2.newAccount.emailInvalid"), null);
        context.addMessage(toValidate.getClientId(context), message);
        logger.info("Email is not valid: " + userEmail);
        return;
    }
    boolean userEmailFound = false;
    AuthenticatedUser aUser = authenticationService.getAuthenticatedUserByEmail(userEmail);
    if (editMode == EditMode.CREATE) {
        if (aUser != null) {
            userEmailFound = true;
        }
    } else {
        // user doing the editing by checking ids
        if (aUser != null && !aUser.getId().equals(currentUser.getId())) {
            userEmailFound = true;
        }
    }
    if (userEmailFound) {
        ((UIInput) toValidate).setValid(false);
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("user.email.taken"), null);
        context.addMessage(toValidate.getClientId(context), message);
    }
}
Also used : UIInput(javax.faces.component.UIInput) FacesMessage(javax.faces.application.FacesMessage) AuthenticatedUser(edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser)

Example 54 with FacesMessage

use of javax.faces.application.FacesMessage in project dataverse by IQSS.

the class DataverseUserPage method save.

public String save() {
    boolean passwordChanged = false;
    if (editMode == EditMode.CHANGE_PASSWORD) {
        final AuthenticationProvider prv = getUserAuthProvider();
        if (prv.isPasswordUpdateAllowed()) {
            if (!prv.verifyPassword(currentUser.getAuthenticatedUserLookup().getPersistentUserId(), currentPassword)) {
                FacesContext.getCurrentInstance().addMessage("currentPassword", new FacesMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("user.error.wrongPassword"), null));
                return null;
            }
            prv.updatePassword(currentUser.getAuthenticatedUserLookup().getPersistentUserId(), inputPassword);
            passwordChanged = true;
        } else {
            // erroneous state - we can't change the password for this user, so should not have gotten here. Log and bail out.
            logger.log(Level.WARNING, "Attempt to change a password on {0}, whose provider ({1}) does not support password change", new Object[] { currentUser.getIdentifier(), prv });
            JH.addMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("user.error.cannotChangePassword"));
            return null;
        }
    }
    if (editMode == EditMode.CREATE) {
        // Create a new built-in user.
        BuiltinUser builtinUser = new BuiltinUser();
        builtinUser.setUserName(getUsername());
        builtinUser.applyDisplayInfo(userDisplayInfo);
        builtinUser.updateEncryptedPassword(PasswordEncryption.get().encrypt(inputPassword), PasswordEncryption.getLatestVersionNumber());
        AuthenticatedUser au = authenticationService.createAuthenticatedUser(new UserRecordIdentifier(BuiltinAuthenticationProvider.PROVIDER_ID, builtinUser.getUserName()), builtinUser.getUserName(), builtinUser.getDisplayInfo(), false);
        if (au == null) {
            // Username already exists, show an error message
            getUsernameField().setValid(false);
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("user.username.taken"), null);
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(getUsernameField().getClientId(context), message);
            return null;
        }
        // The Authenticated User was just created via the UI, add an initial login timestamp
        au = userService.updateLastLogin(au);
        // Authenticated user registered. Save the new bulitin, and log in.
        builtinUserService.save(builtinUser);
        session.setUser(au);
        /**
         * @todo Move this to
         * AuthenticationServiceBean.createAuthenticatedUser
         */
        userNotificationService.sendNotification(au, new Timestamp(new Date().getTime()), UserNotification.Type.CREATEACC, null);
        // go back to where user came from
        if ("dataverse.xhtml".equals(redirectPage)) {
            redirectPage = redirectPage + "?alias=" + dataverseService.findRootDataverse().getAlias();
        }
        try {
            redirectPage = URLDecoder.decode(redirectPage, "UTF-8");
        } catch (UnsupportedEncodingException ex) {
            logger.log(Level.SEVERE, "Server does not support 'UTF-8' encoding.", ex);
            redirectPage = "dataverse.xhtml?alias=" + dataverseService.findRootDataverse().getAlias();
        }
        logger.log(Level.FINE, "Sending user to = {0}", redirectPage);
        return redirectPage + (!redirectPage.contains("?") ? "?" : "&") + "faces-redirect=true";
    // Happens if user is logged out while editing
    } else if (!session.getUser().isAuthenticated()) {
        logger.info("Redirecting");
        return permissionsWrapper.notAuthorized() + "faces-redirect=true";
    } else {
        String emailBeforeUpdate = currentUser.getEmail();
        AuthenticatedUser savedUser = authenticationService.updateAuthenticatedUser(currentUser, userDisplayInfo);
        String emailAfterUpdate = savedUser.getEmail();
        editMode = null;
        StringBuilder msg = new StringBuilder(passwordChanged ? "Your account password has been successfully changed." : "Your account information has been successfully updated.");
        if (!emailBeforeUpdate.equals(emailAfterUpdate)) {
            String expTime = ConfirmEmailUtil.friendlyExpirationTime(systemConfig.getMinutesUntilConfirmEmailTokenExpires());
            msg.append(" Your email address has changed and must be re-verified. Please check your inbox at ").append(currentUser.getEmail()).append(" and follow the link we've sent. \n\nAlso, please note that the link will only work for the next ").append(expTime).append(" before it has expired.");
            // delete unexpired token, if it exists (clean slate)
            confirmEmailService.deleteTokenForUser(currentUser);
            try {
                confirmEmailService.beginConfirm(currentUser);
            } catch (ConfirmEmailException ex) {
                logger.log(Level.INFO, "Unable to send email confirmation link to user id {0}", savedUser.getId());
            }
            session.setUser(currentUser);
            JsfHelper.addSuccessMessage(msg.toString());
        } else {
            JsfHelper.addFlashMessage(msg.toString());
        }
        return null;
    }
}
Also used : FacesContext(javax.faces.context.FacesContext) UserRecordIdentifier(edu.harvard.iq.dataverse.authorization.UserRecordIdentifier) AuthenticationProvider(edu.harvard.iq.dataverse.authorization.AuthenticationProvider) ShibAuthenticationProvider(edu.harvard.iq.dataverse.authorization.providers.shib.ShibAuthenticationProvider) UnsupportedEncodingException(java.io.UnsupportedEncodingException) AuthenticatedUser(edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser) Timestamp(java.sql.Timestamp) Date(java.util.Date) ConfirmEmailException(edu.harvard.iq.dataverse.confirmemail.ConfirmEmailException) FacesMessage(javax.faces.application.FacesMessage)

Example 55 with FacesMessage

use of javax.faces.application.FacesMessage in project dataverse by IQSS.

the class DataverseUserPage method validateUserName.

public void validateUserName(FacesContext context, UIComponent toValidate, Object value) {
    String userName = (String) value;
    boolean userNameFound = authenticationService.identifierExists(userName);
    // SF fix for issue 3752
    // checks if username has any invalid characters
    boolean userNameValid = userName != null && UserNameValidator.isUserNameValid(userName, null);
    if (editMode == EditMode.CREATE && userNameFound) {
        ((UIInput) toValidate).setValid(false);
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("user.username.taken"), null);
        context.addMessage(toValidate.getClientId(context), message);
    }
    if (editMode == EditMode.CREATE && !userNameValid) {
        ((UIInput) toValidate).setValid(false);
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, BundleUtil.getStringFromBundle("user.username.invalid"), null);
        context.addMessage(toValidate.getClientId(context), message);
    }
}
Also used : UIInput(javax.faces.component.UIInput) FacesMessage(javax.faces.application.FacesMessage)

Aggregations

FacesMessage (javax.faces.application.FacesMessage)370 ConceptHelper (mom.trd.opentheso.bdd.helper.ConceptHelper)43 SQLException (java.sql.SQLException)40 Connection (java.sql.Connection)34 FacesContext (javax.faces.context.FacesContext)25 ArrayList (java.util.ArrayList)24 UIInput (javax.faces.component.UIInput)24 ValidatorException (javax.faces.validator.ValidatorException)24 GroupHelper (mom.trd.opentheso.bdd.helper.GroupHelper)22 NodeAutoCompletion (mom.trd.opentheso.bdd.helper.nodes.NodeAutoCompletion)22 CandidateHelper (mom.trd.opentheso.bdd.helper.CandidateHelper)19 UserHelper2 (mom.trd.opentheso.bdd.helper.UserHelper2)19 IOException (java.io.IOException)16 NoteHelper (mom.trd.opentheso.bdd.helper.NoteHelper)15 Test (org.junit.Test)13 TermHelper (mom.trd.opentheso.bdd.helper.TermHelper)12 Term (mom.trd.opentheso.bdd.datas.Term)11 UploadedFile (org.primefaces.model.UploadedFile)11 HikariDataSource (com.zaxxer.hikari.HikariDataSource)10 Date (java.util.Date)10