Search in sources :

Example 46 with User

use of org.gluu.oxtrust.model.scim2.User in project oxTrust by GluuFederation.

the class Scim2UserService method createUser.

public User createUser(User user) throws Exception {
    log.debug(" copying gluuperson ");
    GluuCustomPerson gluuPerson = copyUtils2.copy(user, null, false);
    if (gluuPerson == null) {
        throw new Exception("Scim2UserService.createUser(): Failed to create user; GluuCustomPerson is null");
    }
    log.debug(" generating inum ");
    // inumService.generateInums(Configuration.INUM_TYPE_PEOPLE_SLUG);
    String inum = personService.generateInumForNewPerson();
    // //personService.generateInumForNewPerson();
    log.debug(" getting DN ");
    String dn = personService.getDnForPerson(inum);
    log.debug(" getting iname ");
    String iname = personService.generateInameForNewPerson(user.getUserName());
    log.debug(" setting dn ");
    gluuPerson.setDn(dn);
    log.debug(" setting inum ");
    gluuPerson.setInum(inum);
    log.debug(" setting iname ");
    gluuPerson.setIname(iname);
    log.debug(" setting commonName ");
    gluuPerson.setCommonName(gluuPerson.getGivenName() + " " + gluuPerson.getSurname());
    log.info("gluuPerson.getMemberOf().size() : " + gluuPerson.getMemberOf().size());
    if (user.getGroups().size() > 0) {
        log.info(" jumping to groupMembersAdder ");
        log.info("gluuPerson.getDn() : " + gluuPerson.getDn());
        serviceUtil.groupMembersAdder(gluuPerson, gluuPerson.getDn());
    }
    // As per spec, the SP must be the one to assign the meta attributes
    log.info(" Setting meta: create user ");
    // Date should be in UTC format
    DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime().withZoneUTC();
    Date dateCreated = DateTime.now().toDate();
    String relativeLocation = "/scim/v2/Users/" + inum;
    gluuPerson.setAttribute("oxTrustMetaCreated", dateTimeFormatter.print(dateCreated.getTime()));
    gluuPerson.setAttribute("oxTrustMetaLastModified", dateTimeFormatter.print(dateCreated.getTime()));
    gluuPerson.setAttribute("oxTrustMetaLocation", relativeLocation);
    // Sync email, forward ("oxTrustEmail" -> "mail")
    gluuPerson = serviceUtil.syncEmailForward(gluuPerson, true);
    // For custom script: create user
    if (externalScimService.isEnabled()) {
        externalScimService.executeScimCreateUserMethods(gluuPerson);
    }
    log.debug("adding new GluuPerson");
    personService.addPerson(gluuPerson);
    User createdUser = copyUtils2.copy(gluuPerson, null);
    return createdUser;
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) User(org.gluu.oxtrust.model.scim2.User) ScimPatchUser(org.gluu.oxtrust.model.scim2.ScimPatchUser) DateTimeFormatter(org.joda.time.format.DateTimeFormatter) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) EntryPersistenceException(org.gluu.site.ldap.persistence.exception.EntryPersistenceException) Date(java.util.Date)

Example 47 with User

use of org.gluu.oxtrust.model.scim2.User in project oxTrust by GluuFederation.

the class UserSerializer method serialize.

@Override
public void serialize(User user, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
    log.info(" serialize() ");
    try {
        jsonGenerator.writeStartObject();
        ObjectMapper mapper = new ObjectMapper();
        mapper.disable(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS);
        JsonNode rootNode = mapper.convertValue(user, JsonNode.class);
        Iterator<Map.Entry<String, JsonNode>> iterator = rootNode.getFields();
        while (iterator.hasNext()) {
            Map.Entry<String, JsonNode> rootNodeEntry = iterator.next();
            jsonGenerator.writeFieldName(rootNodeEntry.getKey());
            if (SchemaTypeMapping.getSchemaTypeInstance(rootNodeEntry.getKey()) instanceof UserExtensionSchema) {
                serializeUserExtension(rootNodeEntry, mapper, user, jsonGenerator);
            } else {
                jsonGenerator.writeObject(rootNodeEntry.getValue());
            }
        }
        jsonGenerator.writeEndObject();
    } catch (Exception e) {
        e.printStackTrace();
        throw new IOException(INTERNAL_SERVER_ERROR_MESSAGE);
    }
}
Also used : UserExtensionSchema(org.gluu.oxtrust.model.scim2.schema.extension.UserExtensionSchema) JsonNode(org.codehaus.jackson.JsonNode) IOException(java.io.IOException) HashMap(java.util.HashMap) Map(java.util.Map) ObjectMapper(org.codehaus.jackson.map.ObjectMapper) IOException(java.io.IOException)

Example 48 with User

use of org.gluu.oxtrust.model.scim2.User in project oxTrust by GluuFederation.

the class Scim2UserService method addUserPatch.

private void addUserPatch(Operation operation, String id) throws Exception {
    User user = operation.getValue();
    GluuCustomPerson updatedGluuPerson = patchUtil.addPatch(user, validUsernameByInum(user, id));
    log.info(" Setting meta: addUserPatch update user ");
    setMeta(updatedGluuPerson);
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) User(org.gluu.oxtrust.model.scim2.User) ScimPatchUser(org.gluu.oxtrust.model.scim2.ScimPatchUser)

Aggregations

User (org.gluu.oxtrust.model.scim2.User)18 GluuCustomPerson (org.gluu.oxtrust.model.GluuCustomPerson)15 ArrayList (java.util.ArrayList)12 DuplicateEntryException (org.gluu.site.ldap.exception.DuplicateEntryException)12 ScimPatchUser (org.gluu.oxtrust.model.scim2.ScimPatchUser)11 PersonRequiredFieldsException (org.gluu.oxtrust.exception.PersonRequiredFieldsException)10 EntryPersistenceException (org.gluu.site.ldap.persistence.exception.EntryPersistenceException)10 User (org.openstack4j.model.identity.v3.User)10 DefaultValue (javax.ws.rs.DefaultValue)9 HeaderParam (javax.ws.rs.HeaderParam)9 Produces (javax.ws.rs.Produces)9 URI (java.net.URI)8 Response (javax.ws.rs.core.Response)8 ObjectMapper (org.codehaus.jackson.map.ObjectMapper)8 ApiOperation (com.wordnik.swagger.annotations.ApiOperation)7 IOException (java.io.IOException)7 Date (java.util.Date)7 Map (java.util.Map)7 ListResponse (org.gluu.oxtrust.model.scim2.ListResponse)7 VirtualListViewResponse (org.xdi.ldap.model.VirtualListViewResponse)7