private DummyPrivilege convertToPriv(Set<Attribute> createAttributes) throws ConnectException, FileNotFoundException, ConflictException { String icfName = Utils.getMandatoryStringAttribute(createAttributes,Name.NAME); if (configuration.getUpCaseName()) { icfName = StringUtils.upperCase(icfName); } final DummyPrivilege newPriv = new DummyPrivilege(icfName); for (Attribute attr : createAttributes) { if (attr.is(Uid.NAME)) { throw new IllegalArgumentException("UID explicitly specified in the group attributes"); } else if (attr.is(Name.NAME)) { // Skip, already processed } else if (attr.is(OperationalAttributeInfos.PASSWORD.getName())) { throw new InvalidAttributeValueException("Password specified for a privilege"); } else if (attr.is(OperationalAttributeInfos.ENABLE.getName())) { throw new InvalidAttributeValueException("Unsupported ENABLE attribute in privilege"); } else { String name = attr.getName(); try { newPriv.replaceAttributeValues(name,attr.getValue()); } catch (SchemaViolationException e) { throw new InvalidAttributeValueException(e.getMessage(),e); } catch (InterruptedException e) { throw new OperationTimeoutException(e.getMessage(),e); } } } return newPriv; }
@Override public void initSystem(Task initTask, OperationResult initResult) throws Exception { super.initSystem(initTask, initResult); initDummyResource(RESOURCE_DUMMY_PURPLE_NAME, RESOURCE_DUMMY_PURPLE_FILE, RESOURCE_DUMMY_PURPLE_OID, controller -> { controller.extendSchemaPirate(); controller.addAttrDef(controller.getDummyResource().getAccountObjectClass(), DUMMY_ACCOUNT_ATTRIBUTE_MATE_NAME, String.class, false, true); }, initTask, initResult); importObjectFromFile(ACCOUNT_JDOE_FILE); importObjectFromFile(ACCOUNT_CREW_FILE); importObjectFromFile(USER_JDOE_FILE); importObjectFromFile(ROLE_TEST_MATE_FILE); DummyAccount jdoe = new DummyAccount("jdoe"); jdoe.addAttributeValue("privileges", "test-mate"); getDummyResource(RESOURCE_DUMMY_PURPLE_NAME).addAccount(jdoe); DummyPrivilege crew = new DummyPrivilege("test-mate"); getDummyResource(RESOURCE_DUMMY_PURPLE_NAME).addPrivilege(crew); }