Search in sources :

Example 1 with Validatable

use of org.apache.wicket.validation.Validatable in project openmeetings by apache.

the class UserWebService method add.

/**
 * Adds a new User like through the Frontend, but also does activates the
 * Account To do SSO see the methods to create a hash and use those ones!
 *
 * @param sid
 *            The SID from getSession
 * @param user
 *            user object
 * @param confirm
 *            whatever or not to send email, leave empty for auto-send
 *
 * @return - id of the user added or error code
 */
@WebMethod
@POST
@Path("/")
public UserDTO add(@WebParam(name = "sid") @QueryParam("sid") String sid, @WebParam(name = "user") @FormParam("user") UserDTO user, @WebParam(name = "confirm") @FormParam("confirm") Boolean confirm) {
    return performCall(sid, User.Right.Soap, sd -> {
        User testUser = userDao.getExternalUser(user.getExternalId(), user.getExternalType());
        if (testUser != null) {
            throw new ServiceException("User does already exist!");
        }
        String tz = user.getTimeZoneId();
        if (Strings.isEmpty(tz)) {
            tz = getDefaultTimezone();
        }
        if (user.getAddress() == null) {
            user.setAddress(new Address());
            user.getAddress().setCountry(Locale.getDefault().getCountry());
        }
        if (user.getLanguageId() == null) {
            user.setLanguageId(1L);
        }
        IValidator<String> passValidator = new StrongPasswordValidator(true, getMinPasswdLength(cfgDao), user.get(userDao));
        Validatable<String> passVal = new Validatable<>(user.getPassword());
        passValidator.validate(passVal);
        if (!passVal.isValid()) {
            StringBuilder sb = new StringBuilder();
            for (IValidationError err : passVal.getErrors()) {
                sb.append(((ValidationError) err).getMessage()).append(System.lineSeparator());
            }
            log.debug("addNewUser::weak password '{}', msg: {}", user.getPassword(), sb);
            throw new ServiceException(sb.toString());
        }
        Object _user = userManager.registerUser(user.getLogin(), user.getPassword(), user.getLastname(), user.getFirstname(), user.getAddress().getEmail(), new Date(), user.getAddress().getStreet(), user.getAddress().getAdditionalname(), user.getAddress().getFax(), user.getAddress().getZip(), user.getAddress().getCountry(), user.getAddress().getTown(), user.getLanguageId(), // generate SIP Data if the config is enabled
        "", // generate SIP Data if the config is enabled
        false, // generate SIP Data if the config is enabled
        true, tz, confirm);
        if (_user == null) {
            throw new ServiceException(UNKNOWN.getMessage());
        } else if (_user instanceof String) {
            throw new ServiceException((String) _user);
        }
        User u = (User) _user;
        u.getRights().add(Right.Room);
        if (Strings.isEmpty(user.getExternalId()) && Strings.isEmpty(user.getExternalType())) {
            // activate the User
            u.getRights().add(Right.Login);
            u.getRights().add(Right.Dashboard);
        } else {
            u.setType(User.Type.external);
            u.setExternalId(user.getExternalId());
            u.setExternalType(user.getExternalType());
        }
        u = userDao.update(u, sd.getUserId());
        return new UserDTO(u);
    });
}
Also used : User(org.apache.openmeetings.db.entity.user.User) Address(org.apache.openmeetings.db.entity.user.Address) UserDTO(org.apache.openmeetings.db.dto.user.UserDTO) ExternalUserDTO(org.apache.openmeetings.db.dto.user.ExternalUserDTO) IValidationError(org.apache.wicket.validation.IValidationError) StrongPasswordValidator(org.apache.openmeetings.core.util.StrongPasswordValidator) Validatable(org.apache.wicket.validation.Validatable) Date(java.util.Date) ServiceException(org.apache.openmeetings.webservice.error.ServiceException) RemoteSessionObject(org.apache.openmeetings.db.entity.server.RemoteSessionObject) ValidationError(org.apache.wicket.validation.ValidationError) IValidationError(org.apache.wicket.validation.IValidationError) WebMethod(javax.jws.WebMethod) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST)

Example 2 with Validatable

use of org.apache.wicket.validation.Validatable in project openmeetings by apache.

the class UserChoiceProvider method getUser.

public User getUser(String value) {
    User u = null;
    if (!Strings.isEmpty(value)) {
        String email = null;
        String fName = null;
        String lName = null;
        int idx = value.indexOf('<');
        if (idx > -1) {
            int idx1 = value.indexOf('>', idx);
            if (idx1 > -1) {
                email = value.substring(idx + 1, idx1);
                String name = value.substring(0, idx).replace("\"", "");
                int idx2 = name.indexOf(' ');
                if (idx2 > -1) {
                    fName = name.substring(0, idx2);
                    lName = name.substring(idx2 + 1);
                } else {
                    fName = "";
                    lName = name;
                }
            }
        } else {
            email = value;
        }
        if (!Strings.isEmpty(email)) {
            Validatable<String> valEmail = new Validatable<>(email);
            RfcCompliantEmailAddressValidator.getInstance().validate(valEmail);
            if (valEmail.isValid()) {
                u = userDao.getContact(email, fName, lName, getUserId());
            }
        }
    }
    return u;
}
Also used : User(org.apache.openmeetings.db.entity.user.User) Validatable(org.apache.wicket.validation.Validatable)

Example 3 with Validatable

use of org.apache.wicket.validation.Validatable in project wicket by apache.

the class RangeValidatorTest method exact.

/**
 * WICKET-4717
 */
@Test
public void exact() {
    IValidator<Integer> validator = new RangeValidator<Integer>(1, 1);
    Validatable<Integer> validatable = new Validatable<Integer>(2);
    validator.validate(validatable);
    assertEquals(1, validatable.getErrors().size());
    ValidationError error = (ValidationError) validatable.getErrors().get(0);
    assertEquals(1, error.getVariables().get("exact"));
}
Also used : ValidationError(org.apache.wicket.validation.ValidationError) Validatable(org.apache.wicket.validation.Validatable) Test(org.junit.Test)

Aggregations

Validatable (org.apache.wicket.validation.Validatable)3 User (org.apache.openmeetings.db.entity.user.User)2 ValidationError (org.apache.wicket.validation.ValidationError)2 Date (java.util.Date)1 WebMethod (javax.jws.WebMethod)1 POST (javax.ws.rs.POST)1 Path (javax.ws.rs.Path)1 StrongPasswordValidator (org.apache.openmeetings.core.util.StrongPasswordValidator)1 ExternalUserDTO (org.apache.openmeetings.db.dto.user.ExternalUserDTO)1 UserDTO (org.apache.openmeetings.db.dto.user.UserDTO)1 RemoteSessionObject (org.apache.openmeetings.db.entity.server.RemoteSessionObject)1 Address (org.apache.openmeetings.db.entity.user.Address)1 ServiceException (org.apache.openmeetings.webservice.error.ServiceException)1 IValidationError (org.apache.wicket.validation.IValidationError)1 Test (org.junit.Test)1