private Uid doUpdate() throws IOException, JSchException { if (uid == null || StringUtil.isBlank(uid.getUidValue())) { throw new IllegalArgumentException("No Uid attribute provided in the attributes"); } LOG.info("Update user: "******"Wrong object class"); } if (objectClass.equals(ObjectClass.ACCOUNT)) { if (!EvaluateCommandsResultOutput.evaluateUserOrGroupExists( unixConnection.execute( UnixConnector.getCommandGenerator().userExists(uid.getUidValue())))) { throw new ConnectorException("User " + uid + " do not exists"); } for (Attribute attr : attrs) { if (attr.is(Name.NAME) || attr.is(Uid.NAME)) { newUserName = (String) attr.getValue().get(0); } else if (attr.is(OperationalAttributes.PASSWORD_NAME)) { password = Utilities.getPlainPassword((GuardedString) attr.getValue().get(0)); } else if (attr.is(OperationalAttributes.ENABLE_NAME)) { status = Boolean.parseBoolean(attr.getValue().get(0).toString()); } else if (attr.is(configuration.getCommentAttribute())) { comment = attr.getValue().get(0).toString(); } else if (attr.is(configuration.getShellAttribute())) { shell = (String) attr.getValue().get(0).toString(); } else if (attr.is(configuration.getHomeDirectoryAttribute())) { homeDirectory = (String) attr.getValue().get(0).toString(); } } unixConnection.execute( UnixConnector.getCommandGenerator() .updateUser( uid.getUidValue(), newUserName, password, status, comment, shell, homeDirectory)); // unixConnection.execute("mv /home/" + uid.getUidValue() + " /home/" + // newUserName); unixConnection.execute( UnixConnector.getCommandGenerator().moveHomeDirectory(uid.getUidValue(), newUserName)); if (!status) { unixConnection.execute(UnixConnector.getCommandGenerator().lockUser(uid.getUidValue())); } else { unixConnection.execute(UnixConnector.getCommandGenerator().unlockUser(uid.getUidValue())); } if (StringUtil.isNotBlank(newUserName) && StringUtil.isNotEmpty(newUserName)) { unixConnection.execute( UnixConnector.getCommandGenerator().updateGroup(uid.getUidValue(), newUserName)); } } else if (objectClass.equals(ObjectClass.GROUP)) { if (!EvaluateCommandsResultOutput.evaluateUserOrGroupExists( unixConnection.execute(UnixConnector.getCommandGenerator().groupExists(newUserName)))) { throw new ConnectorException("Group do not exists"); } unixConnection.execute( UnixConnector.getCommandGenerator().updateGroup(uid.getUidValue(), newUserName)); } return uid; }
private Uid doUpdate( ObjectClass objClass, Uid uid, Map<String, MdObjectAttribute> changedAttributes, OperationOptions arg3) { if (!isAccount(objClass)) { throw new ConnectorException( "Could not delete record from object class : " + objClass + ". Expected account object class."); } LOG.ok("Update object start"); String objId = uid.getUidValue(); LOG.ok("Updating object with uid {0}", uid.getUidValue()); try { MdObjectStore objectStore = createObjectStore(); CMetadata metadata = getOmiUtil().getFullObject(objectStore, MetadataObjects.PERSON, objId); if (metadata == null) { throw new NoSuchObjectException("Object with the identifier " + objId + " does not exist."); } String xmlSelect = getXmlSelectForName(metadata.getName()); int exist = getOmiUtil().doesObjectExist(getFoundationRepoId(), MetadataObjects.PERSON, xmlSelect); if (exist == 0) { throw new NoSuchObjectException( "Object with name " + metadata.getName() + " does not exist."); } metadata = createComplexMetadataObject( objectStore, metadata.getName(), MetadataObjects.PERSON, objId); LOG.ok("Found metadata object {0}", metadata.toString()); metadata.setAttrs(changedAttributes); metadata.updateMetadataAll(); String uidAfterChange = metadata.getId(); objectStore.dispose(); return new Uid(uidAfterChange); } catch (java.rmi.ConnectException e) { throw new ConnectorException(e); } catch (RemoteException e) { throw new ConnectorException(e); } catch (MdException e) { throw new ConnectorException(e); } }
private Uid doUpdate() throws IOException { if (!objectClass.equals(ObjectClass.ACCOUNT) && (!objectClass.equals(ObjectClass.GROUP))) { throw new IllegalStateException("Wrong object class"); } if (!userExists( uid.getUidValue(), configuration.getOpenamRealm(), adminToken.getToken(), connection)) { LOG.error("User " + uid.getUidValue() + " do not exists"); throw new ConnectorException("User " + uid.getUidValue() + " do not exists"); } try { connection.update(createUpdateQueryString(uid, attrs, adminToken).toString()); LOG.ok("User " + uid.getUidValue() + " updated"); } catch (HttpClientErrorException hcee) { throw hcee; } return uid; }
public void delete(ObjectClass objClass, Uid uid, OperationOptions arg2) { try { if (!isAccount(objClass)) { throw new ConnectorException( "Could not delete record from object class : " + objClass + ". Expected account object class."); } LOG.ok("Attempt to delete object with uid {0}", uid.getUidValue()); getOmiUtil().deleteMetadataObject(MetadataObjects.PERSON, uid.getUidValue()); } catch (RemoteException e) { // TODO Auto-generated catch block throw new ConnectorException(e); } catch (MdException e) { // TODO Auto-generated catch block throw new ConnectorException(e); } }