コード例 #1
0
 public JiraJdbcDirectoryConfiguration toJiraJdbcConfiguration(Directory directory) {
   JiraJdbcDirectoryConfiguration configuration = new JiraJdbcDirectoryConfiguration();
   configuration.setDirectoryId(directory.getId() != null ? directory.getId() : 0);
   configuration.setActive(directory.isActive());
   configuration.setName(directory.getName());
   configuration.setDatasourceJndiName(
       directory.getAttributes().get(JiraJdbcDirectoryConfiguration.JNDI_NAME_ATTRIBUTE_KEY));
   return configuration;
 }
コード例 #2
0
  private Map<String, String> getDirectories() {
    Map<String, String> directories = new LinkedHashMap<String, String>();

    // switch keys and values because the Crowd map is back-to-front
    for (Directory directory : crowdDirectoryService.findAllDirectories()) {
      if (directory.getType() == DirectoryType.INTERNAL
          || directory.getType() == DirectoryType.DELEGATING) {
        directories.put(directory.getId().toString(), directory.getName());
      }
    }
    return directories;
  }
コード例 #3
0
  public InternalDirectoryConfiguration toInternalConfiguration(Directory directory) {
    InternalDirectoryConfiguration configuration = new InternalDirectoryConfiguration();
    configuration.setDirectoryId(directory.getId() != null ? directory.getId() : 0);
    configuration.setActive(directory.isActive());
    configuration.setName(directory.getName());

    Map<String, String> attributes = directory.getAttributes();
    String useNestedGroups = attributes.get(DirectoryImpl.ATTRIBUTE_KEY_USE_NESTED_GROUPS);
    if (useNestedGroups != null) {
      configuration.setNestedGroupsEnabled(Boolean.valueOf(useNestedGroups));
    } else {
      configuration.setNestedGroupsEnabled(false);
    }

    return configuration;
  }
コード例 #4
0
  public LdapDirectoryConfiguration toLdapConfiguration(Directory directory) {
    LdapDirectoryConfiguration configuration = new LdapDirectoryConfiguration();
    configuration.setLdapPermissionOption(
        PermissionOption.fromAllowedOperations(directory.getAllowedOperations()));
    configuration.setActive(directory.isActive());
    configuration.setLdapUserEncryption(directory.getEncryptionType());
    configuration.setDirectoryId(directory.getId() != null ? directory.getId() : 0);
    configuration.setType(directory.getImplementationClass());
    configuration.setName(directory.getName());

    LdapDirectoryAttributes attributes =
        LdapDirectoryAttributes.fromAttributesMap(directory.getAttributes());
    BeanUtils.copyProperties(attributes, configuration);
    configuration.setCrowdSyncIncrementalEnabled(attributes.isIncrementalSyncEnabled());

    return configuration;
  }
コード例 #5
0
  public CrowdDirectoryConfiguration toCrowdConfiguration(Directory directory) {
    CrowdDirectoryConfiguration configuration = new CrowdDirectoryConfiguration();
    configuration.setCrowdPermissionOption(
        CrowdPermissionOption.fromAllowedOperations(directory.getAllowedOperations()));
    configuration.setDirectoryId(directory.getId() != null ? directory.getId() : 0);
    configuration.setActive(directory.isActive());
    configuration.setName(directory.getName());

    CrowdDirectoryAttributes attributes =
        CrowdDirectoryAttributes.fromAttributesMap(directory.getAttributes());
    BeanUtils.copyProperties(attributes, configuration);
    // Convert polling interval to minutes to display to user
    configuration.setCrowdServerSynchroniseIntervalInMin(
        NumberUtils.toLong(attributes.getCrowdServerSynchroniseIntervalInSeconds()) / 60);

    return configuration;
  }
コード例 #6
0
  @Override
  public void doUpgrade(boolean setupMode) throws Exception {
    // Retrieve all the directories and synchronize them if they are synchronizable.
    for (Directory directory : crowdDirectoryService.findAllDirectories()) {
      if (crowdDirectoryService.isDirectorySynchronisable(directory.getId())) {
        LOG.debug("Reindex all data if indexing is turned on.");
        try {
          crowdDirectoryService.synchroniseDirectory(directory.getId(), false);
        } catch (OperationFailedException e) {
          LOG.warn(
              "Directory - '"
                  + directory.getName()
                  + "' was not successfully synchronised."
                  + "  You might need to shutdown and restart JIRA after the upgrade completes.");
        }
      }
    }

    // Reindex
    super.doUpgrade(setupMode);
  }
コード例 #7
0
  public DelegatingLdapDirectoryConfiguration toDelegatingLdapConfiguration(
      final Directory directory) {
    DelegatingLdapDirectoryConfiguration configuration = new DelegatingLdapDirectoryConfiguration();
    configuration.setDirectoryId(directory.getId() != null ? directory.getId() : 0);
    configuration.setActive(directory.isActive());
    configuration.setName(directory.getName());

    LdapDelegatingDirectoryAttributes attributes =
        LdapDelegatingDirectoryAttributes.fromAttributesMap(directory.getAttributes());
    BeanUtils.copyProperties(attributes, configuration);
    configuration.setType(attributes.getDelegatedToClass());
    final String ldapAutoAddGroups = attributes.getLdapAutoAddGroups();
    if (ldapAutoAddGroups != null) {
      configuration.setLdapAutoAddGroups(
          pipeSeparatedGroupsToCommaSeparatedGroups(ldapAutoAddGroups));
    } else {
      configuration.setLdapAutoAddGroups("");
    }

    return configuration;
  }