Example #1
0
  private void revokeMailbox(long userKey) {
    // revokeProvisioning(dataProvider, userKey, "COMMSDIR_CREATEMAILBOX");
    tcUserOperationsIntf rUserUtility = null;
    tcProvisioningOperationsIntf rProvUtility = null;
    TaskDefinitionOperationsIntf rTaskUtility = null;

    try {
      tcDataProvider dataProvider = this.getDataBase();
      rProvUtility =
          (tcProvisioningOperationsIntf)
              tcUtilityFactory.getUtility(
                  dataProvider, "Thor.API.Operations.tcProvisioningOperationsIntf");
      rUserUtility =
          (tcUserOperationsIntf)
              tcUtilityFactory.getUtility(dataProvider, "Thor.API.Operations.tcUserOperationsIntf");
      rTaskUtility =
          (TaskDefinitionOperationsIntf)
              tcUtilityFactory.getUtility(
                  dataProvider, "Thor.API.Operations.TaskDefinitionOperationsIntf");
    } catch (Exception e) {
      logger.error(
          connectorName
              + " Failed to get prov/task/user utility for revoking mailbox -- returning");
      return;
    }

    HashMap<String, Long> taskkeys = null;
    tcResultSet rResultSet = null;

    try {
      rResultSet = rUserUtility.getObjects(userKey);
    } catch (Exception e) {
      logger.warn(
          connectorName
              + " Exception getting objects for user during revocation process -- returning, but you may want to investigate the exception: "
              + e.getMessage());
    }
    try {
      long processInstanceKey = -1;
      for (int i = 0; i < rResultSet.getRowCount(); i++) {
        rResultSet.goToRow(i);
        String objectName = rResultSet.getStringValue("Objects.Name");
        String objectStatus = rResultSet.getStringValue("Objects.Object Status.Status");
        if (objectName != null
            && objectName.equals("COMMSDIR_CREATEMAILBOX")
            && objectStatus != null
            && objectStatus.equals("Provisioned")) {
          processInstanceKey = rResultSet.getLongValue("Process Instance.Key");
          break;
        }
      }
      if (processInstanceKey == -1) {
        logger.warn(
            connectorName
                + " Attempted to revoke mailbox provisioning for users key "
                + userKey
                + " but user is not provisioned -- returning");
        return;
      }

      long taskKey = getTaskKeys(rTaskUtility, processInstanceKey);

      long taskInstanceKey = rProvUtility.addProcessTaskInstance(taskKey, processInstanceKey);
      logger.info(connectorName + " revoked mailbox for users key " + userKey);
    } catch (Exception e) {
      logger.warn(
          connectorName
              + " Was unable to revoke mailbox provisioning for user with users key "
              + userKey
              + ". Returning, but you need to investigate further");
      return;
    }
  }