use of org.gluu.oxtrust.model.GluuCustomPerson in project oxTrust by GluuFederation.
the class Scim2UserService method deleteUser.
public void deleteUser(String id) throws Exception {
GluuCustomPerson gluuPerson = personService.getPersonByInum(id);
if (gluuPerson == null) {
throw new EntryPersistenceException("Scim2UserService.deleteUser(): " + "Resource " + id + " not found");
} else {
// For custom script: delete user
if (externalScimService.isEnabled()) {
externalScimService.executeScimDeleteUserMethods(gluuPerson);
}
log.info("person.getMemberOf().size() : " + gluuPerson.getMemberOf().size());
if (gluuPerson.getMemberOf() != null) {
if (gluuPerson.getMemberOf().size() > 0) {
String dn = personService.getDnForPerson(id);
log.info("DN : " + dn);
serviceUtil.deleteUserFromGroup(gluuPerson, dn);
}
}
memberService.removePerson(gluuPerson);
}
}
use of org.gluu.oxtrust.model.GluuCustomPerson in project oxTrust by GluuFederation.
the class Scim2UserService method replaceUserPatch.
private void replaceUserPatch(Operation operation, String id) throws Exception {
User user = operation.getValue();
GluuCustomPerson updatedGluuPerson = patchUtil.replacePatch(user, validUsernameByInum(user, id));
log.info(" Setting meta: replaceUserPatch update user ");
setMeta(updatedGluuPerson);
}
use of org.gluu.oxtrust.model.GluuCustomPerson in project oxTrust by GluuFederation.
the class Scim2UserService method patchUser.
public User patchUser(String id, ScimPatchUser patchUser) throws Exception {
for (Operation operation : patchUser.getOperatons()) {
String val = operation.getOperationName();
if (val.equalsIgnoreCase("replace")) {
replaceUserPatch(operation, id);
}
if (val.equalsIgnoreCase("remove")) {
removeUserPatch(operation, id);
}
if (val.equalsIgnoreCase("add")) {
addUserPatch(operation, id);
}
}
GluuCustomPerson gluuPerson = personService.getPersonByInum(id);
User updatedUser = copyUtils2.copy(gluuPerson, null);
return updatedUser;
}
use of org.gluu.oxtrust.model.GluuCustomPerson in project oxTrust by GluuFederation.
the class Scim2UserService method updateUser.
public User updateUser(String id, User user) throws Exception {
GluuCustomPerson gluuPerson = personService.getPersonByInum(id);
if (gluuPerson == null) {
throw new EntryPersistenceException("Scim2UserService.updateUser(): " + "Resource " + id + " not found");
} else {
// Validate if attempting to update userName of a different id
if (user.getUserName() != null) {
GluuCustomPerson personToFind = new GluuCustomPerson();
personToFind.setUid(user.getUserName());
List<GluuCustomPerson> foundPersons = personService.findPersons(personToFind, 2);
if (foundPersons != null && foundPersons.size() > 0) {
for (GluuCustomPerson foundPerson : foundPersons) {
if (foundPerson != null && !foundPerson.getInum().equalsIgnoreCase(gluuPerson.getInum())) {
throw new DuplicateEntryException("Cannot update userName of a different id: " + user.getUserName());
}
}
}
}
}
GluuCustomPerson updatedGluuPerson = copyUtils2.copy(user, gluuPerson, true);
if (user.getGroups().size() > 0) {
serviceUtil.groupMembersAdder(updatedGluuPerson, personService.getDnForPerson(id));
}
log.info(" Setting meta: update user ");
// Date should be in UTC format
DateTimeFormatter dateTimeFormatter = ISODateTimeFormat.dateTime().withZoneUTC();
Date dateLastModified = DateTime.now().toDate();
updatedGluuPerson.setAttribute("oxTrustMetaLastModified", dateTimeFormatter.print(dateLastModified.getTime()));
if (updatedGluuPerson.getAttribute("oxTrustMetaLocation") == null || (updatedGluuPerson.getAttribute("oxTrustMetaLocation") != null && updatedGluuPerson.getAttribute("oxTrustMetaLocation").isEmpty())) {
String relativeLocation = "/scim/v2/Users/" + id;
updatedGluuPerson.setAttribute("oxTrustMetaLocation", relativeLocation);
}
// Sync email, forward ("oxTrustEmail" -> "mail")
updatedGluuPerson = serviceUtil.syncEmailForward(updatedGluuPerson, true);
// For custom script: update user
if (externalScimService.isEnabled()) {
externalScimService.executeScimUpdateUserMethods(updatedGluuPerson);
}
personService.updatePerson(updatedGluuPerson);
log.debug(" person updated ");
User updatedUser = copyUtils2.copy(updatedGluuPerson, null);
return updatedUser;
}
use of org.gluu.oxtrust.model.GluuCustomPerson in project oxTrust by GluuFederation.
the class ServiceUtil method personMembersAdder.
/**
* Adds a group to a person's memberOf
*
* @return void
* @throws Exception
*/
public void personMembersAdder(GluuGroup gluuGroup, String dn) throws Exception {
List<String> members = gluuGroup.getMembers();
for (String member : members) {
GluuCustomPerson gluuPerson = personService.getPersonByDn(member);
List<String> groups = gluuPerson.getMemberOf();
if (!isMemberOfExist(groups, dn)) {
List<String> cleanGroups = new ArrayList<String>();
cleanGroups.add(dn);
for (String aGroup : groups) {
cleanGroups.add(aGroup);
}
gluuPerson.setMemberOf(cleanGroups);
personService.updatePerson(gluuPerson);
}
}
}
Aggregations