Search in sources :

Example 41 with User

use of org.gluu.oxtrust.model.scim2.User in project camel by apache.

the class UserProducer method doCreate.

private void doCreate(Exchange exchange) {
    final User in = messageToUser(exchange.getIn());
    final User out = osV3Client.identity().users().create(in);
    exchange.getIn().setBody(out);
}
Also used : User(org.openstack4j.model.identity.v3.User)

Example 42 with User

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

the class CopyUtils2 method copy.

/**
	 * Copy data from ScimPerson object to GluuCustomPerson object "Reda"
	 * 
	 * @param source
	 * @param destination
	 * @return
	 * @throws Exception
	 */
public GluuCustomPerson copy(User source, GluuCustomPerson destination, boolean isUpdate) throws Exception {
    if (source == null || !isValidData(source, isUpdate)) {
        return null;
    }
    if (destination == null) {
        log.trace(" creating a new GluuCustomPerson instant ");
        destination = new GluuCustomPerson();
    }
    log.trace(" setting schemas ");
    destination.setSchemas(source.getSchemas());
    if (isUpdate) {
        personService.addCustomObjectClass(destination);
        log.trace(" setting userName ");
        if (source.getUserName() != null && source.getUserName().length() > 0) {
            destination.setUid(source.getUserName());
        }
        if (source.getName() != null) {
            log.trace(" setting givenname ");
            if (source.getName().getGivenName() != null && source.getName().getGivenName().length() > 0) {
                destination.setGivenName(source.getName().getGivenName());
            }
            log.trace(" setting famillyname ");
            if (source.getName().getFamilyName() != null && source.getName().getFamilyName().length() > 0) {
                destination.setSurname(source.getName().getFamilyName());
            }
            log.trace(" setting middlename ");
            if (source.getName().getMiddleName() != null && source.getName().getMiddleName().length() > 0) {
                // destination.setAttribute("oxTrustMiddleName", source.getName().getMiddleName());
                destination.setAttribute("middleName", source.getName().getMiddleName());
            }
            log.trace(" setting honor");
            if (source.getName().getHonorificPrefix() != null && source.getName().getHonorificPrefix().length() > 0) {
                destination.setAttribute("oxTrusthonorificPrefix", source.getName().getHonorificPrefix());
            }
            if (source.getName().getHonorificSuffix() != null && source.getName().getHonorificSuffix().length() > 0) {
                destination.setAttribute("oxTrusthonorificSuffix", source.getName().getHonorificSuffix());
            }
        }
        log.trace(" setting displayname ");
        if (source.getDisplayName() != null && source.getDisplayName().length() > 0) {
            destination.setDisplayName(source.getDisplayName());
        }
        log.trace(" setting externalID ");
        if (source.getExternalId() != null && source.getExternalId().length() > 0) {
            destination.setAttribute("oxTrustExternalId", source.getExternalId());
        }
        log.trace(" setting nickname ");
        if (source.getNickName() != null && source.getNickName().length() > 0) {
            // destination.setAttribute("oxTrustNickName", source.getNickName());
            destination.setAttribute("nickname", source.getNickName());
        }
        log.trace(" setting profileURL ");
        if (source.getProfileUrl() != null && source.getProfileUrl().length() > 0) {
            destination.setAttribute("oxTrustProfileURL", source.getProfileUrl());
        }
        // getting emails
        log.trace(" setting emails ");
        if (source.getEmails() != null && source.getEmails().size() > 0) {
            /*
				List<Email> emails = source.getEmails();

				// StringWriter listOfEmails = new StringWriter();
				// mapper.writeValue(listOfEmails, emails);

				List<String> emailList = new ArrayList<String>();
				for (Email email : emails) {
					emailList.add(mapper.writeValueAsString(email));
				}

				// destination.setAttribute("oxTrustEmail", listOfEmails.toString());
				destination.setAttribute("oxTrustEmail", emailList.toArray(new String[]{}));
				*/
            setAttributeListValue(destination, source.getEmails(), "oxTrustEmail");
        }
        // getting addresses
        log.trace(" setting addresses ");
        if (source.getAddresses() != null && source.getAddresses().size() > 0) {
            setAttributeListValue(destination, source.getAddresses(), "oxTrustAddresses");
        }
        // getting phone numbers;
        log.trace(" setting phoneNumbers ");
        if (source.getPhoneNumbers() != null && source.getPhoneNumbers().size() > 0) {
            setAttributeListValue(destination, source.getPhoneNumbers(), "oxTrustPhoneValue");
        }
        // getting ims
        log.trace(" setting ims ");
        if (source.getIms() != null && source.getIms().size() > 0) {
            setAttributeListValue(destination, source.getIms(), "oxTrustImsValue");
        }
        // getting Photos
        log.trace(" setting photos ");
        if (source.getPhotos() != null && source.getPhotos().size() > 0) {
            setAttributeListValue(destination, source.getPhotos(), "oxTrustPhotos");
        }
        if (source.getUserType() != null && source.getUserType().length() > 0) {
            destination.setAttribute("oxTrustUserType", source.getUserType());
        }
        if (source.getTitle() != null && source.getTitle().length() > 0) {
            destination.setAttribute("oxTrustTitle", source.getTitle());
        }
        if (source.getPreferredLanguage() != null && source.getPreferredLanguage().length() > 0) {
            destination.setPreferredLanguage(source.getPreferredLanguage());
        }
        if (source.getLocale() != null && source.getLocale().length() > 0) {
            // destination.setAttribute("oxTrustLocale", source.getLocale());
            destination.setAttribute("locale", source.getLocale());
        }
        if (source.getTimezone() != null && source.getTimezone().length() > 0) {
            destination.setTimezone(source.getTimezone());
        }
        if (source.isActive() != null) {
            destination.setAttribute("oxTrustActive", source.isActive().toString());
        }
        if (source.getPassword() != null && source.getPassword().length() > 0) {
            destination.setUserPassword(source.getPassword());
        }
        // getting user groups
        log.trace(" setting groups ");
        if (source.getGroups() != null && source.getGroups().size() > 0) {
            List<GroupRef> listGroups = source.getGroups();
            List<String> members = new ArrayList<String>();
            for (GroupRef group : listGroups) {
                members.add(groupService.getDnForGroup(group.getValue()));
            }
            destination.setMemberOf(members);
        }
        // getting roles
        log.trace(" setting roles ");
        if (source.getRoles() != null && source.getRoles().size() > 0) {
            setAttributeListValue(destination, source.getRoles(), "oxTrustRole");
        }
        // getting entitlements
        log.trace(" setting entitlements ");
        if (source.getEntitlements() != null && source.getEntitlements().size() > 0) {
            setAttributeListValue(destination, source.getEntitlements(), "oxTrustEntitlements");
        }
        // getting x509Certificates
        log.trace(" setting certs ");
        if (source.getX509Certificates() != null && source.getX509Certificates().size() > 0) {
            setAttributeListValue(destination, source.getX509Certificates(), "oxTrustx509Certificate");
        }
        log.trace(" setting extensions ");
        if (source.getExtensions() != null && (source.getExtensions().size() > 0)) {
            destination.setExtensions(source.getExtensions());
        }
    /*
			// getting customAttributes
			log.trace("getting custom attributes");

			if (source.getCustomAttributes() != null) {
				log.trace("source.getCustomAttributes() != null");
				log.trace("getting a list of ScimCustomAttributes");

				List<CustomAttributes> customAttr = source.getCustomAttributes();
				log.trace("checling every attribute in the request");

				for (CustomAttributes oneAttr : customAttr) {
					if (oneAttr == null) {
						continue;
					}

					int countValues = oneAttr.getValues().size();
					if (countValues == 0) {
						log.trace("setting a empty attribute");
						destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), oneAttr.getValues().toArray(new String[0]));
					} else if (countValues == 1) {
						log.trace("setting a single attribute");
						destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), oneAttr.getValues().get(0));
					} else if (countValues > 1) {
						log.trace("setting a multivalued attribute");

						List<String> listOfAttr = oneAttr.getValues();
						String[] AttrArray = new String[listOfAttr.size()];
						int i = 0;
						for (String oneValue : listOfAttr) {
							if (oneValue != null && oneValue.length() > 0) {
								log.trace("setting a value");
								AttrArray[i] = oneValue;
								i++;
							}

						}
						log.trace("setting the list of multivalued attributes");
						destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), AttrArray);
					}
				}
			}
            */
    // log.trace("getting meta attributes");
    /*
			if (source.getMeta()!=null && source.getMeta().getAttributes() != null) {
				log.trace("source.getCustomAttributes() != null");
				log.trace("getting a list of ScimCustomAttributes");

				Set<String> customAttr = source.getMeta().getAttributes();
				log.trace("checling every attribute in the request");

				for (String oneAttr : customAttr) {
					if (oneAttr == null) {
						continue;
					}
					destination.setAttribute(oneAttr.replaceAll(" ", ""), "");
					*/
    /* NOTE : WRITE CODE FOR THIS
					int countValues = oneAttr.getValues().size();
					if (countValues == 0) {
						log.trace("setting a empty attribute");
						destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), oneAttr.getValues().toArray(new String[0]));
					} else if (countValues == 1) {
						log.trace("setting a single attribute");
						destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), oneAttr.getValues().get(0));
					} else if (countValues > 1) {
						log.trace("setting a multivalued attribute");

						List<String> listOfAttr = oneAttr.getValues();
						String[] AttrArray = new String[listOfAttr.size()];
						int i = 0;
						for (String oneValue : listOfAttr) {
							if (oneValue != null && oneValue.length() > 0) {
								log.trace("setting a value");
								AttrArray[i] = oneValue;
								i++;
							}

						}
						log.trace("setting the list of multivalued attributes");
						destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), AttrArray);
					}
					*/
    /*
				}
			}
			*/
    } else {
        try {
            if (personService.getPersonByUid(source.getUserName()) != null) {
                throw new DuplicateEntryException("Duplicate UID value: " + source.getUserName());
            }
            personService.addCustomObjectClass(destination);
            log.trace(" setting userName ");
            if (source.getUserName() != null && source.getUserName().length() > 0) {
                destination.setUid(source.getUserName());
            }
            if (source.getName() != null) {
                log.trace(" setting givenname ");
                if (source.getName().getGivenName() != null && source.getName().getGivenName().length() > 0) {
                    destination.setGivenName(source.getName().getGivenName());
                }
                log.trace(" setting famillyname ");
                if (source.getName().getFamilyName() != null && source.getName().getFamilyName().length() > 0) {
                    destination.setSurname(source.getName().getFamilyName());
                }
                log.trace(" setting middlename ");
                if (source.getName().getMiddleName() != null && source.getName().getMiddleName().length() > 0) {
                    destination.setAttribute("middleName", source.getName().getMiddleName());
                }
                log.trace(" setting honor");
                if (source.getName().getHonorificPrefix() != null && source.getName().getHonorificPrefix().length() > 0) {
                    destination.setAttribute("oxTrusthonorificPrefix", source.getName().getHonorificPrefix());
                }
                if (source.getName().getHonorificSuffix() != null && source.getName().getHonorificSuffix().length() > 0) {
                    destination.setAttribute("oxTrusthonorificSuffix", source.getName().getHonorificSuffix());
                }
            }
            log.trace(" setting displayname ");
            if (source.getDisplayName() != null && source.getDisplayName().length() > 0) {
                destination.setDisplayName(source.getDisplayName());
            }
            log.trace(" setting externalID ");
            if (source.getExternalId() != null && source.getExternalId().length() > 0) {
                destination.setAttribute("oxTrustExternalId", source.getExternalId());
            }
            log.trace(" setting nickname ");
            if (source.getNickName() != null && source.getNickName().length() > 0) {
                destination.setAttribute("nickname", source.getNickName());
            }
            log.trace(" setting profileURL ");
            if (source.getProfileUrl() != null && source.getProfileUrl().length() > 0) {
                destination.setAttribute("oxTrustProfileURL", source.getProfileUrl());
            }
            // getting emails
            log.trace(" setting emails ");
            if (source.getEmails() != null && source.getEmails().size() > 0) {
                /*
					List<Email> emails = source.getEmails();

					// StringWriter listOfEmails = new StringWriter();
					// mapper.writeValue(listOfEmails, emails);

					List<String> emailList = new ArrayList<String>();
					for (Email email : emails) {
						emailList.add(mapper.writeValueAsString(email));
					}

					// destination.setAttribute("oxTrustEmail", listOfEmails.toString());
					destination.setAttribute("oxTrustEmail", emailList.toArray(new String[]{}));
					*/
                setAttributeListValue(destination, source.getEmails(), "oxTrustEmail");
            }
            // getting addresses
            log.trace(" setting addresses ");
            if (source.getAddresses() != null && source.getAddresses().size() > 0) {
                setAttributeListValue(destination, source.getAddresses(), "oxTrustAddresses");
            }
            // getting phone numbers;
            log.trace(" setting phoneNumbers ");
            if (source.getPhoneNumbers() != null && source.getPhoneNumbers().size() > 0) {
                setAttributeListValue(destination, source.getPhoneNumbers(), "oxTrustPhoneValue");
            }
            // getting ims
            log.trace(" setting ims ");
            if (source.getIms() != null && source.getIms().size() > 0) {
                setAttributeListValue(destination, source.getIms(), "oxTrustImsValue");
            }
            // getting Photos
            log.trace(" setting photos ");
            if (source.getPhotos() != null && source.getPhotos().size() > 0) {
                setAttributeListValue(destination, source.getPhotos(), "oxTrustPhotos");
            }
            if (source.getUserType() != null && source.getUserType().length() > 0) {
                destination.setAttribute("oxTrustUserType", source.getUserType());
            }
            if (source.getTitle() != null && source.getTitle().length() > 0) {
                destination.setAttribute("oxTrustTitle", source.getTitle());
            }
            if (source.getPreferredLanguage() != null && source.getPreferredLanguage().length() > 0) {
                destination.setPreferredLanguage(source.getPreferredLanguage());
            }
            if (source.getLocale() != null && source.getLocale().length() > 0) {
                // destination.setAttribute("oxTrustLocale", source.getLocale());
                destination.setAttribute("locale", source.getLocale());
            }
            if (source.getTimezone() != null && source.getTimezone().length() > 0) {
                destination.setTimezone(source.getTimezone());
            }
            if (source.isActive() != null) {
                destination.setAttribute("oxTrustActive", source.isActive().toString());
            }
            if (source.getPassword() != null && source.getPassword().length() > 0) {
                destination.setUserPassword(source.getPassword());
            }
            // getting user groups
            log.trace(" setting groups ");
            if (source.getGroups() != null && source.getGroups().size() > 0) {
                List<GroupRef> listGroups = source.getGroups();
                List<String> members = new ArrayList<String>();
                for (GroupRef group : listGroups) {
                    members.add(groupService.getDnForGroup(group.getValue()));
                }
                destination.setMemberOf(members);
            }
            // getting roles
            log.trace(" setting roles ");
            if (source.getRoles() != null && source.getRoles().size() > 0) {
                setAttributeListValue(destination, source.getRoles(), "oxTrustRole");
            }
            // getting entitlements
            log.trace(" setting entitlements ");
            if (source.getEntitlements() != null && source.getEntitlements().size() > 0) {
                setAttributeListValue(destination, source.getEntitlements(), "oxTrustEntitlements");
            }
            // getting x509Certificates
            log.trace(" setting certs ");
            if (source.getX509Certificates() != null && source.getX509Certificates().size() > 0) {
                setAttributeListValue(destination, source.getX509Certificates(), "oxTrustx509Certificate");
            }
            log.trace(" setting extensions ");
            if (source.getExtensions() != null && (source.getExtensions().size() > 0)) {
                destination.setExtensions(source.getExtensions());
            }
        /*
				// getting customAttributes
				log.trace("getting custom attributes");

				if (source.getCustomAttributes() != null && source.getCustomAttributes().size() > 0) {
					log.trace("source.getCustomAttributes() != null");
					log.trace("getting a list of CustomAttributes");

					List<CustomAttributes> customAttr = source.getCustomAttributes();
					log.trace("checling every attribute in the request");

					for (CustomAttributes oneAttr : customAttr) {
						if (oneAttr != null && oneAttr.getValues().size() == 1) {
							log.trace("setting a single attribute");
							destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), oneAttr.getValues().get(0));
						} else if (oneAttr != null && oneAttr.getValues().size() > 1) {
							log.trace("setting a multivalued attribute");

							List<String> listOfAttr = oneAttr.getValues();
							String[] AttrArray = new String[listOfAttr.size()];
							int i = 0;
							for (String oneValue : listOfAttr) {
								if (oneValue != null && oneValue.length() > 0) {
									log.trace("setting a value");
									AttrArray[i] = oneValue;
									i++;
								}

							}
							log.trace("setting the list of multivalued attributes");
							destination.setAttribute(oneAttr.getName().replaceAll(" ", ""), AttrArray);
						}
					}
				}
				*/
        } catch (DuplicateEntryException e) {
            throw e;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
    setGluuStatus(source, destination);
    return destination;
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ArrayList(java.util.ArrayList) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException) GroupRef(org.gluu.oxtrust.model.scim2.GroupRef) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) PersonRequiredFieldsException(org.gluu.oxtrust.exception.PersonRequiredFieldsException) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) IOException(java.io.IOException) DuplicateEntryException(org.gluu.site.ldap.exception.DuplicateEntryException)

Example 43 with User

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

the class SchemaTypeGroupSerializer method serialize.

@Override
public void serialize(Group group, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
    log.info(" serialize() ");
    try {
        ObjectMapper mapper = new ObjectMapper();
        mapper.disable(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS);
        JsonNode rootNode = mapper.convertValue(group, JsonNode.class);
        Iterator<Map.Entry<String, JsonNode>> iterator = rootNode.getFields();
        while (iterator.hasNext()) {
            Map.Entry<String, JsonNode> rootNodeEntry = iterator.next();
            if (rootNodeEntry.getValue() instanceof ObjectNode) {
            // Definitely maybe in the near future
            } else if (rootNodeEntry.getValue() instanceof ArrayNode) {
                AttributeHolder arrayNodeAttributeHolder = new AttributeHolder();
                arrayNodeAttributeHolder.setName(rootNodeEntry.getKey());
                if (rootNodeEntry.getKey().equalsIgnoreCase("members")) {
                    arrayNodeAttributeHolder.setDescription(rootNodeEntry.getKey() + " list; using sub-attributes in a query filter is not supported (cross-querying)");
                    arrayNodeAttributeHolder.setCaseExact(Boolean.TRUE);
                    List<String> referenceTypes = new ArrayList<String>();
                    referenceTypes.add("User");
                    arrayNodeAttributeHolder.setReferenceTypes(referenceTypes);
                } else {
                    arrayNodeAttributeHolder.setDescription(rootNodeEntry.getKey() + " list");
                    arrayNodeAttributeHolder.setCaseExact(Boolean.FALSE);
                }
                arrayNodeAttributeHolder.setRequired(Boolean.FALSE);
                arrayNodeAttributeHolder.setMultiValued(Boolean.TRUE);
                if (rootNodeEntry.getKey().equalsIgnoreCase("schemas")) {
                    arrayNodeAttributeHolder.setUniqueness("server");
                    arrayNodeAttributeHolder.setType("string");
                    arrayNodeAttributeHolder.setCaseExact(Boolean.TRUE);
                    arrayNodeAttributeHolder.setMutability("readOnly");
                    arrayNodeAttributeHolder.setReturned("always");
                } else {
                    arrayNodeAttributeHolder.setType("complex");
                }
                List<AttributeHolder> arrayNodeMapAttributeHolders = new ArrayList<AttributeHolder>();
                Iterator<JsonNode> arrayNodeIterator = rootNodeEntry.getValue().getElements();
                while (arrayNodeIterator.hasNext()) {
                    JsonNode jsonNode = arrayNodeIterator.next();
                    Iterator<Map.Entry<String, JsonNode>> arrayNodeMapIterator = jsonNode.getFields();
                    while (arrayNodeMapIterator.hasNext()) {
                        Map.Entry<String, JsonNode> arrayNodeMapRootNodeEntry = arrayNodeMapIterator.next();
                        AttributeHolder arrayNodeMapAttributeHolder = new AttributeHolder();
                        if (rootNodeEntry.getKey().equalsIgnoreCase("members") && arrayNodeMapRootNodeEntry.getKey().equalsIgnoreCase("reference")) {
                            arrayNodeMapAttributeHolder.setName("$ref");
                        } else {
                            arrayNodeMapAttributeHolder.setName(arrayNodeMapRootNodeEntry.getKey());
                        }
                        arrayNodeMapAttributeHolder.setType("string");
                        arrayNodeMapAttributeHolder.setDescription(arrayNodeMapRootNodeEntry.getKey());
                        if (arrayNodeMapRootNodeEntry.getKey().equalsIgnoreCase("value") || arrayNodeMapRootNodeEntry.getKey().equalsIgnoreCase("type")) {
                            arrayNodeMapAttributeHolder.setRequired(Boolean.TRUE);
                        } else {
                            arrayNodeMapAttributeHolder.setRequired(Boolean.FALSE);
                        }
                        arrayNodeMapAttributeHolders.add(arrayNodeMapAttributeHolder);
                    }
                    arrayNodeAttributeHolder.setSubAttributes(arrayNodeMapAttributeHolders);
                    attributeHolders.add(arrayNodeAttributeHolder);
                }
            } else {
                if (!rootNodeEntry.getKey().equalsIgnoreCase("externalId")) {
                    AttributeHolder attributeHolder = new AttributeHolder();
                    attributeHolder.setName(rootNodeEntry.getKey());
                    if (rootNodeEntry.getValue().isBoolean()) {
                        attributeHolder.setType("boolean");
                    } else {
                        attributeHolder.setType("string");
                    }
                    attributeHolder.setDescription(rootNodeEntry.getKey());
                    attributeHolder.setRequired(Boolean.FALSE);
                    if (rootNodeEntry.getKey().equalsIgnoreCase("id")) {
                        attributeHolder.setUniqueness("server");
                        attributeHolder.setCaseExact(Boolean.TRUE);
                        attributeHolder.setMutability("readOnly");
                        attributeHolder.setReturned("always");
                    }
                    if (rootNodeEntry.getKey().equalsIgnoreCase("displayName")) {
                        attributeHolder.setReturned("always");
                    }
                    attributeHolders.add(attributeHolder);
                }
            }
        }
        GroupCoreSchema groupCoreSchema = (GroupCoreSchema) schemaType;
        groupCoreSchema.setAttributeHolders(attributeHolders);
        schemaType = groupCoreSchema;
    } catch (Exception e) {
        e.printStackTrace();
        throw new IOException("Unexpected processing error; please check the Group class structure.");
    }
}
Also used : AttributeHolder(org.gluu.oxtrust.model.scim2.schema.AttributeHolder) ObjectNode(org.codehaus.jackson.node.ObjectNode) JsonNode(org.codehaus.jackson.JsonNode) IOException(java.io.IOException) GroupCoreSchema(org.gluu.oxtrust.model.scim2.schema.core.GroupCoreSchema) IOException(java.io.IOException) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) ArrayNode(org.codehaus.jackson.node.ArrayNode) Map(java.util.Map) ObjectMapper(org.codehaus.jackson.map.ObjectMapper)

Example 44 with User

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

the class UserCoreLoadingStrategy method createDummyUser.

private User createDummyUser() {
    User user = new User();
    org.gluu.oxtrust.model.scim2.Name name = new org.gluu.oxtrust.model.scim2.Name();
    name.setGivenName("");
    name.setMiddleName("");
    name.setFamilyName("");
    name.setHonorificPrefix("");
    name.setHonorificSuffix("");
    user.setName(name);
    user.setActive(false);
    user.setId("");
    user.setExternalId("");
    user.setUserName("");
    user.setPassword("");
    user.setDisplayName("");
    user.setNickName("");
    user.setProfileUrl("");
    user.setLocale("");
    user.setPreferredLanguage("");
    user.setTimezone("");
    user.setTitle("");
    List<GroupRef> groups = new ArrayList<GroupRef>();
    GroupRef groupRef = new GroupRef();
    groupRef.setOperation("");
    groupRef.setPrimary(false);
    groupRef.setValue("test");
    groupRef.setDisplay("");
    groupRef.setType(GroupRef.Type.DIRECT);
    groupRef.setReference("");
    groups.add(groupRef);
    user.setGroups(groups);
    List<Email> emails = new ArrayList<Email>();
    Email email = new Email();
    email.setOperation("");
    email.setPrimary(false);
    email.setValue("a@b.com");
    email.setDisplay("");
    email.setType(Email.Type.WORK);
    email.setReference("");
    emails.add(email);
    user.setEmails(emails);
    List<PhoneNumber> phoneNumbers = new ArrayList<PhoneNumber>();
    PhoneNumber phoneNumber = new PhoneNumber();
    phoneNumber.setOperation("");
    phoneNumber.setPrimary(false);
    phoneNumber.setValue("123-456-7890");
    phoneNumber.setDisplay("");
    phoneNumber.setType(PhoneNumber.Type.WORK);
    phoneNumber.setReference("");
    phoneNumbers.add(phoneNumber);
    user.setPhoneNumbers(phoneNumbers);
    List<Im> ims = new ArrayList<Im>();
    Im im = new Im();
    im.setOperation("");
    im.setPrimary(false);
    im.setValue("test");
    im.setDisplay("");
    im.setType(Im.Type.SKYPE);
    im.setReference("");
    ims.add(im);
    user.setIms(ims);
    List<Photo> photos = new ArrayList<Photo>();
    Photo photo = new Photo();
    photo.setOperation("");
    photo.setPrimary(false);
    photo.setValue("data:image/jpg;charset=utf-8;base64,dGVzdA==");
    photo.setDisplay("");
    photo.setType(Photo.Type.PHOTO);
    photo.setReference("");
    photos.add(photo);
    user.setPhotos(photos);
    List<Address> addresses = new ArrayList<Address>();
    Address address = new Address();
    address.setOperation("");
    address.setPrimary(false);
    address.setValue("test");
    address.setDisplay("");
    address.setType(Address.Type.WORK);
    address.setReference("");
    address.setStreetAddress("");
    address.setLocality("");
    address.setPostalCode("");
    address.setRegion("");
    address.setCountry("");
    address.setFormatted("");
    addresses.add(address);
    user.setAddresses(addresses);
    List<Entitlement> entitlements = new ArrayList<Entitlement>();
    Entitlement entitlement = new Entitlement();
    entitlement.setOperation("");
    entitlement.setPrimary(false);
    entitlement.setValue("test");
    entitlement.setDisplay("");
    entitlement.setType(new Entitlement.Type("test"));
    entitlement.setReference("");
    entitlements.add(entitlement);
    user.setEntitlements(entitlements);
    List<Role> roles = new ArrayList<Role>();
    Role role = new Role();
    role.setOperation("");
    role.setPrimary(false);
    role.setValue("test");
    role.setDisplay("");
    role.setType(new Role.Type("test"));
    role.setReference("");
    roles.add(role);
    user.setRoles(roles);
    List<X509Certificate> x509Certificates = new ArrayList<X509Certificate>();
    X509Certificate x509Certificate = new X509Certificate();
    x509Certificate.setOperation("");
    x509Certificate.setPrimary(false);
    x509Certificate.setValue("test");
    x509Certificate.setDisplay("");
    x509Certificate.setType(new X509Certificate.Type("test"));
    x509Certificate.setReference("");
    x509Certificates.add(x509Certificate);
    user.setX509Certificates(x509Certificates);
    return user;
}
Also used : User(org.gluu.oxtrust.model.scim2.User) Email(org.gluu.oxtrust.model.scim2.Email) Im(org.gluu.oxtrust.model.scim2.Im) Address(org.gluu.oxtrust.model.scim2.Address) ArrayList(java.util.ArrayList) Photo(org.gluu.oxtrust.model.scim2.Photo) X509Certificate(org.gluu.oxtrust.model.scim2.X509Certificate) Role(org.gluu.oxtrust.model.scim2.Role) PhoneNumber(org.gluu.oxtrust.model.scim2.PhoneNumber) GroupRef(org.gluu.oxtrust.model.scim2.GroupRef) Entitlement(org.gluu.oxtrust.model.scim2.Entitlement)

Example 45 with User

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

the class PatchUtil method replacePatch.

public GluuCustomPerson replacePatch(User source, GluuCustomPerson destination) throws Exception {
    if (source == null) {
        return null;
    }
    if (destination == null) {
        log.trace(" creating a new GluuCustomPerson instant ");
        destination = new GluuCustomPerson();
    }
    log.trace(" setting schemas ");
    destination.setSchemas(source.getSchemas());
    personService.addCustomObjectClass(destination);
    log.trace(" setting userName ");
    if (source.getUserName() != null && source.getUserName().length() > 0) {
        destination.setUid(source.getUserName());
    }
    if (source.getName() != null) {
        log.trace(" setting givenname ");
        if (source.getName().getGivenName() != null && source.getName().getGivenName().length() > 0) {
            destination.setGivenName(source.getName().getGivenName());
        }
        log.trace(" setting famillyname ");
        if (source.getName().getFamilyName() != null && source.getName().getFamilyName().length() > 0) {
            destination.setSurname(source.getName().getFamilyName());
        }
        log.trace(" setting middlename ");
        if (source.getName().getMiddleName() != null && source.getName().getMiddleName().length() > 0) {
            // destination.setAttribute("oxTrustMiddleName",
            // source.getName().getMiddleName());
            destination.setAttribute("middleName", source.getName().getMiddleName());
        }
        log.trace(" setting honor");
        if (source.getName().getHonorificPrefix() != null && source.getName().getHonorificPrefix().length() > 0) {
            destination.setAttribute("oxTrusthonorificPrefix", source.getName().getHonorificPrefix());
        }
        if (source.getName().getHonorificSuffix() != null && source.getName().getHonorificSuffix().length() > 0) {
            destination.setAttribute("oxTrusthonorificSuffix", source.getName().getHonorificSuffix());
        }
    }
    log.trace(" setting displayname ");
    if (source.getDisplayName() != null && source.getDisplayName().length() > 0) {
        destination.setDisplayName(source.getDisplayName());
    }
    log.trace(" setting externalID ");
    if (source.getExternalId() != null && source.getExternalId().length() > 0) {
        destination.setAttribute("oxTrustExternalId", source.getExternalId());
    }
    log.trace(" setting nickname ");
    if (source.getNickName() != null && source.getNickName().length() > 0) {
        // destination.setAttribute("oxTrustNickName",
        // source.getNickName());
        destination.setAttribute("nickname", source.getNickName());
    }
    log.trace(" setting profileURL ");
    if (source.getProfileUrl() != null && source.getProfileUrl().length() > 0) {
        destination.setAttribute("oxTrustProfileURL", source.getProfileUrl());
    }
    // getting emails
    log.trace(" setting emails ");
    if (source.getEmails() != null && source.getEmails().size() > 0) {
        List<Email> emails = copyUtils2.getAttributeListValue(destination, Email.class, "oxTrustEmail");
        if (emails != null) {
            List<Email> newemails = source.getEmails();
            for (Email email : emails) {
                if (email != null && email.getType() != null) {
                    for (Email newEmail : newemails) {
                        if ((newEmail.getType() != null) && newEmail.getType().getValue().equals(email.getType().getValue())) {
                            emails.remove(email);
                            emails.add(newEmail);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, emails, "oxTrustEmail");
        }
    }
    // getting addresses
    log.trace(" setting addresses ");
    if (source.getAddresses() != null && source.getAddresses().size() > 0) {
        List<Address> addresses = copyUtils2.getAttributeListValue(destination, Address.class, "oxTrustAddresses");
        if (addresses != null) {
            List<Address> newaddresses = source.getAddresses();
            for (Address address : addresses) {
                if (address != null && address.getType() != null) {
                    for (Address newAddress : newaddresses) {
                        if ((newAddress.getType() != null) && newAddress.getType().getValue().equals(address.getType().getValue())) {
                            addresses.remove(address);
                            addresses.add(newAddress);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, addresses, "oxTrustAddresses");
        }
    }
    // getting phone numbers;
    log.trace(" setting phoneNumbers ");
    if (source.getPhoneNumbers() != null && source.getPhoneNumbers().size() > 0) {
        List<PhoneNumber> phoneNumbers = copyUtils2.getAttributeListValue(destination, PhoneNumber.class, "oxTrustPhoneValue");
        if (phoneNumbers != null) {
            List<PhoneNumber> newPhoneNumbers = source.getPhoneNumbers();
            for (PhoneNumber phoneNumber : phoneNumbers) {
                if (phoneNumber != null && phoneNumber.getType() != null) {
                    for (PhoneNumber newPhoneNumber : newPhoneNumbers) {
                        if ((newPhoneNumber.getType() != null) && (phoneNumber.getType().getValue() != null) && newPhoneNumber.getType().getValue().equals(phoneNumber.getType().getValue())) {
                            phoneNumbers.remove(phoneNumber);
                            phoneNumbers.add(newPhoneNumber);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, phoneNumbers, "oxTrustPhoneValue");
        }
    }
    // getting ims
    log.trace(" setting ims ");
    if (source.getIms() != null && source.getIms().size() > 0) {
        List<Im> ims = copyUtils2.getAttributeListValue(destination, Im.class, "oxTrustImsValue");
        if (ims != null && ims.size() > 0) {
            List<Im> newims = source.getIms();
            for (Im im : ims) {
                if (im != null && im.getType() != null) {
                    for (Im newIm : newims) {
                        if (newIm.getType() != null && newIm.getType().getValue().equals(im.getType().getValue())) {
                            ims.remove(im);
                            ims.add(newIm);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, ims, "oxTrustImsValue");
        }
    }
    // getting Photos
    log.trace(" setting photos ");
    if (source.getPhotos() != null && source.getPhotos().size() > 0) {
        List<Photo> photos = copyUtils2.getAttributeListValue(destination, Photo.class, "oxTrustPhotos");
        if (photos != null && photos.size() > 0) {
            List<Photo> newPhotos = source.getPhotos();
            for (Photo photo : photos) {
                if (photo != null && photo.getType() != null) {
                    for (Photo newPhoto : newPhotos) {
                        if (newPhoto.getType() != null && newPhoto.getType().getValue().equals(photo.getType().getValue())) {
                            photos.remove(photo);
                            photos.add(newPhoto);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, photos, "oxTrustPhotos");
        }
    }
    if (source.getUserType() != null && source.getUserType().length() > 0) {
        destination.setAttribute("oxTrustUserType", source.getUserType());
    }
    if (source.getTitle() != null && source.getTitle().length() > 0) {
        destination.setAttribute("oxTrustTitle", source.getTitle());
    }
    if (source.getPreferredLanguage() != null && source.getPreferredLanguage().length() > 0) {
        destination.setPreferredLanguage(source.getPreferredLanguage());
    }
    if (source.getLocale() != null && source.getLocale().length() > 0) {
        // destination.setAttribute("oxTrustLocale", source.getLocale());
        destination.setAttribute("locale", source.getLocale());
    }
    if (source.getTimezone() != null && source.getTimezone().length() > 0) {
        destination.setTimezone(source.getTimezone());
    }
    if (source.isActive() != null) {
        destination.setAttribute("oxTrustActive", source.isActive().toString());
    }
    if (source.getPassword() != null && source.getPassword().length() > 0) {
        destination.setUserPassword(source.getPassword());
    }
    // getting user groups
    log.trace(" setting groups ");
    if (source.getGroups() != null && source.getGroups().size() > 0) {
        List<GroupRef> listGroups = source.getGroups();
        List<String> members = new ArrayList<String>();
        for (GroupRef group : listGroups) {
            members.add(groupService.getDnForGroup(group.getValue()));
        }
        destination.setMemberOf(members);
    }
    // getting roles
    log.trace(" setting roles ");
    if (source.getRoles() != null && source.getRoles().size() > 0) {
        List<Role> roles = copyUtils2.getAttributeListValue(destination, Role.class, "oxTrustRole");
        if (roles != null && roles.size() > 0) {
            List<Role> newRoles = source.getRoles();
            for (Role role : roles) {
                if (role != null && role.getType() != null) {
                    for (Role newRole : newRoles) {
                        if ((newRole.getType() != null) && newRole.getType().getValue().equals(role.getType().getValue())) {
                            roles.remove(role);
                            roles.add(newRole);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, roles, "oxTrustRole");
        }
    }
    // getting entitlements
    log.trace(" setting entitlements ");
    if (source.getEntitlements() != null && source.getEntitlements().size() > 0) {
        List<Entitlement> entitlements = copyUtils2.getAttributeListValue(destination, Entitlement.class, "oxTrustEntitlements");
        if (entitlements != null && entitlements.size() > 0) {
            List<Entitlement> newEentitlements = source.getEntitlements();
            for (Entitlement entitlement : entitlements) {
                if (entitlement != null && entitlement.getType() != null) {
                    for (Entitlement newEntitlement : newEentitlements) {
                        if ((newEntitlement.getType() != null) && newEntitlement.getType().getValue().equals(entitlement.getType().getValue())) {
                            entitlements.remove(entitlement);
                            entitlements.add(newEntitlement);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, entitlements, "oxTrustEntitlements");
        }
    }
    // getting x509Certificates
    log.trace(" setting certs ");
    if (source.getX509Certificates() != null && source.getX509Certificates().size() > 0) {
        List<X509Certificate> X509Certificates = copyUtils2.getAttributeListValue(destination, X509Certificate.class, "oxTrustx509Certificate");
        if (X509Certificates != null) {
            List<X509Certificate> newX509Certificates = source.getX509Certificates();
            for (X509Certificate X509Certificate : X509Certificates) {
                if (X509Certificate != null && X509Certificate.getType() != null) {
                    for (X509Certificate newX509Certificate : newX509Certificates) {
                        if ((newX509Certificate.getType() != null) && newX509Certificate.getType().getValue().equals(X509Certificate.getType().getValue())) {
                            X509Certificates.remove(X509Certificate);
                            X509Certificates.add(newX509Certificate);
                        }
                    }
                }
            }
            copyUtils2.setAttributeListValue(destination, X509Certificates, "oxTrustx509Certificate");
        }
    }
    log.trace(" setting extensions ");
    if (source.getExtensions() != null && (source.getExtensions().size() > 0)) {
        destination.setExtensions(source.getExtensions());
    }
    if (source.isActive() != null) {
        copyUtils2.setGluuStatus(source, destination);
    }
    return destination;
}
Also used : Email(org.gluu.oxtrust.model.scim2.Email) Address(org.gluu.oxtrust.model.scim2.Address) Im(org.gluu.oxtrust.model.scim2.Im) ArrayList(java.util.ArrayList) Photo(org.gluu.oxtrust.model.scim2.Photo) X509Certificate(org.gluu.oxtrust.model.scim2.X509Certificate) Role(org.gluu.oxtrust.model.scim2.Role) GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) PhoneNumber(org.gluu.oxtrust.model.scim2.PhoneNumber) GroupRef(org.gluu.oxtrust.model.scim2.GroupRef) Entitlement(org.gluu.oxtrust.model.scim2.Entitlement)

Aggregations

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