Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 9, 2018
2 parents 73fbf5b + 67bcda4 commit 6e52e3c
Show file tree
Hide file tree
Showing 30 changed files with 306 additions and 33 deletions.
Expand Up @@ -577,7 +577,7 @@ public static Locale getLocale(UserType user) {
}
}
}
return null;
return MidPointApplication.getDefaultLocale();
}

public static TimeZone getTimezone() {
Expand Down
@@ -1,5 +1,5 @@

# Copyright (c) 2010-2017 Evolveum
# Copyright (c) 2010-2018 Evolveum
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -3175,7 +3175,7 @@ PageAdmin.menu.assignments=Assignments
PageAdmin.menu.credentials=Credentials
PageAdmin.menu.request=Request a role
PageTemplate.version=Version:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Toggle navigation
PageTemplate.user=user
PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Přiřazení
PageAdmin.menu.credentials=Změna hesla
PageAdmin.menu.request=Požádat o roli
PageTemplate.version=Verze:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; a partneři.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; a partneři.&nbsp;</strong>
PageTemplate.toggleNavigation=Přepnout navigaci
PageTemplate.user=uživatel
PageTemplate.couldntNavigateBreadcrumb=Nelze procházet navigaci, důvod: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Zuweisungen
PageAdmin.menu.credentials=Zugangsdaten
PageAdmin.menu.request=Rolle beantragen
PageTemplate.version=Version:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Navi ein/abschalten
PageTemplate.user=Benutzer
PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Assignments
PageAdmin.menu.credentials=Credentials
PageAdmin.menu.request=Request a role
PageTemplate.version=Version:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Toggle navigation
PageTemplate.user=user
PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Asignaciones
PageAdmin.menu.credentials=Credenciales
PageAdmin.menu.request=Request a role
PageTemplate.version=Version:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Toggle navigation
PageTemplate.user=user
PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Omistused
PageAdmin.menu.credentials=Identimisteave
PageAdmin.menu.request=Taotle roll
PageTemplate.version=Versioon:
PageTemplate.copy=<strong>Autoriõigus &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; ja partnerid.&nbsp;</strong>
PageTemplate.copy=<strong>Autoriõigus &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; ja partnerid.&nbsp;</strong>
PageTemplate.toggleNavigation=Navigeerimise ümberlülitus
PageTemplate.user=kasutaja
PageTemplate.couldntNavigateBreadcrumb=Lingireal navigerimine ei õnnestunud, põhjus: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Toimeksiannot
PageAdmin.menu.credentials=Tunnukset
PageAdmin.menu.request=Pyydä rooli
PageTemplate.version=Versio:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Vaihda navigointia
PageTemplate.user=käyttäjä
PageTemplate.couldntNavigateBreadcrumb=Breadcrumbien navigointi ei onnistunut, syy: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Assignments
PageAdmin.menu.credentials=Credentials
PageAdmin.menu.request=Request a role
PageTemplate.version=Version:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Toggle navigation
PageTemplate.user=user
PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Przypisania
PageAdmin.menu.credentials=Zmiana hasła
PageAdmin.menu.request=Wnioskuj o rolę
PageTemplate.version=Wersja:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Odwróć nawigację
PageTemplate.user=użytkownik
PageTemplate.couldntNavigateBreadcrumb=Nie można użyć nawigacji breadcrumb, powód: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Atribuições
PageAdmin.menu.credentials=Credenciais
PageAdmin.menu.request=Solicitar um perfil
PageTemplate.version=Versão:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Alternar navegação
PageTemplate.user=usuário
PageTemplate.couldntNavigateBreadcrumb=Não foi possível navegar o 'breadcrumb', motivo: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Назначения
PageAdmin.menu.credentials=Учетные данные
PageAdmin.menu.request=Запросить роль
PageTemplate.version=Версия\n
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Переключить навигацию
PageTemplate.user=пользователь
PageTemplate.couldntNavigateBreadcrumb=Невозможно отобразить навигацию, причина: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Priradenia
PageAdmin.menu.credentials=Heslá
PageAdmin.menu.request=Žiadať o rolu
PageTemplate.version=Verzia:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; a partneri.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; a partneri.&nbsp;</strong>
PageTemplate.toggleNavigation=Toggle navigation
PageTemplate.user=používateľ
PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=Atamalar
PageAdmin.menu.credentials=Şifre
PageAdmin.menu.request=Rol talep et
PageTemplate.version=Sürüm:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=Navigasyon aç-kapa
PageTemplate.user=kullanıcı
PageTemplate.couldntNavigateBreadcrumb=Kırpıntı navigasyonda gezinilemedi, neden: {0}
Expand Down
Expand Up @@ -3164,7 +3164,7 @@ PageAdmin.menu.assignments=分配
PageAdmin.menu.credentials=我的凭证
PageAdmin.menu.request=申请角色
PageTemplate.version=版本:
PageTemplate.copy=<strong>Copyright &copy; 2010-2017 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.copy=<strong>Copyright &copy; 2010-2018 <a href="https://www.evolveum.com/" target="_blank">Evolveum</a>&reg; and partners.&nbsp;</strong>
PageTemplate.toggleNavigation=切换导航
PageTemplate.user=用户
PageTemplate.couldntNavigateBreadcrumb=无法使用路径导航,原因:{0}
Expand Down
Expand Up @@ -930,4 +930,22 @@ public void testReplaceModelOperationContext() throws Exception {

assertNull(prismObject.findContainer(TaskType.F_MODEL_OPERATION_CONTEXT));
}

@Test(enabled = false)
public void testDiffSameValues() throws Exception {
PrismObject<ResourceType> before = PrismTestUtil.parseObject(new File(TEST_DIR, "resource-white-before.xml"));
PrismObject<ResourceType> after = PrismTestUtil.parseObject(new File(TEST_DIR, "resource-white-after.xml"));

Collection<? extends ItemDelta> differences = before.diffModifications(after, true, true);

assertEquals(1, differences.size());
System.out.println(differences.iterator().next().debugDump());

PrismObject<ResourceType> differencesApplied = before.clone();
ItemDelta.applyTo(differences, differencesApplied);

System.out.println(differencesApplied.debugDump());
assertEquals("'after' is different from the object with differences applied", after, differencesApplied);
}

}
34 changes: 34 additions & 0 deletions infra/schema/src/test/resources/diff/resource-white-after.xml
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2010-2018 Evolveum
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->

<resource oid="deadbeef-c001-f00d-1111-222233330001"
xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3">
<name>white</name>
<connectorConfiguration/>
<schemaHandling>
<objectType>
<kind>account</kind>
<intent>default</intent>
<objectClass xmlns:qn="http://midpoint.evolveum.com/xml/ns/public/resource/instance/10000000-0000-0000-0000-000000000004">qn:AccountObjectClass</objectClass>
</objectType>
<objectType>
<kind>account</kind>
<intent>test</intent>
<objectClass xmlns:qn="http://midpoint.evolveum.com/xml/ns/public/resource/instance/10000000-0000-0000-0000-000000000004">qn:AccountObjectClass</objectClass>
</objectType>
</schemaHandling>
</resource>
34 changes: 34 additions & 0 deletions infra/schema/src/test/resources/diff/resource-white-before.xml
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2010-2018 Evolveum
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->

<resource oid="deadbeef-c001-f00d-1111-222233330001"
xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3">
<name>white</name>
<connectorConfiguration/>
<schemaHandling>
<objectType>
<kind>account</kind>
<intent>default</intent>
<objectClass xmlns:qn738="http://midpoint.evolveum.com/xml/ns/public/resource/instance/10000000-0000-0000-0000-000000000004">qn738:AccountObjectClass</objectClass>
</objectType>
<objectType>
<kind>account</kind>
<intent>test</intent>
<objectClass xmlns:qn738="http://midpoint.evolveum.com/xml/ns/public/resource/instance/10000000-0000-0000-0000-000000000004">qn738:AccountObjectClass</objectClass>
</objectType>
</schemaHandling>
</resource>
Expand Up @@ -1115,5 +1115,18 @@ Object executeAdHocProvisioningScript(String resourceOid, String language, Strin
throws SchemaException, ObjectNotFoundException,
ExpressionEvaluationException, CommunicationException, ConfigurationException,
SecurityViolationException, ObjectAlreadyExistsException;

/**
* Returns indication whether a script code is evaluating a new value.
* If this method returns true value then the script code is evaluating "new" value.
* That means a value that is going to be set to target, e.g.
* value from "add" or "replace" parts of the delta.
* If this method returns false value then the script code is evaluating "old" value.
* That means a value that is used for the purposes of removing values from target,
* e.g. value from "delete" part of the delta or values from an existing object.
* If this method returns null then the old/new status cannot be determined or this
* method is invoked in a situation when such a distinction is not applicable.
*/
Boolean isEvaluateNew();

}
Expand Up @@ -1638,4 +1638,13 @@ public Object executeAdHocProvisioningScript(String resourceOid, String language

return provisioningService.executeScript(resourceOid, script, getCurrentTask(), getCurrentResult());
}

@Override
public Boolean isEvaluateNew() {
ScriptExpressionEvaluationContext scriptContext = ScriptExpressionEvaluationContext.getThreadLocal();
if (scriptContext == null) {
return null;
}
return scriptContext.isEvaluateNew();
}
}
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.model.api.context.EvaluatedPolicyRule;
import com.evolveum.midpoint.model.api.context.EvaluatedPolicyRuleTrigger;
import com.evolveum.midpoint.model.common.mapping.PrismValueDeltaSetTripleProducer;
import com.evolveum.midpoint.model.impl.util.Utils;
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.prism.polystring.PrismDefaultPolyStringNormalizer;
Expand Down Expand Up @@ -186,13 +187,18 @@ public static <V extends PrismValue, D extends ItemDefinition> V cloneAndApplyMe
return cloneAndApplyMetadata(value, isAssignment, () -> getAutoCreationIdentifier(origins));
}

public static <V extends PrismValue> Collection<V> cloneAndApplyMetadata(Collection<V> values, boolean isAssignment,
MappingType mapping) throws SchemaException {
List<V> rv = new ArrayList<>();
for (V value : values) {
rv.add(cloneAndApplyMetadata(value, isAssignment, mapping::getName));
}
return rv;
// public static <V extends PrismValue> Collection<V> cloneAndApplyMetadata(Collection<V> values, boolean isAssignment,
// MappingType mapping) throws SchemaException {
// List<V> rv = new ArrayList<>();
// for (V value : values) {
// rv.add(cloneAndApplyMetadata(value, isAssignment, mapping::getName));
// }
// return rv;
// }

public static <V extends PrismValue> V cloneAndApplyMetadata(V value, boolean isAssignment,
PrismValueDeltaSetTripleProducer<?, ?> mapping) throws SchemaException {
return cloneAndApplyMetadata(value, isAssignment, mapping::getIdentifier);
}

public static <V extends PrismValue> V cloneAndApplyMetadata(V value, boolean isAssignment,
Expand All @@ -206,6 +212,7 @@ private static <V extends PrismValue> V cloneAndApplyMetadata(V value, boolean i
V cloned = (V) value.clone();
if (isAssignment && cloned instanceof PrismContainerValue) {
String originMappingName = originMappingNameSupplier.get();
LOGGER.trace("cloneAndApplyMetadata: originMappingName = {}", originMappingName);
if (originMappingName != null) {
//noinspection unchecked
PrismContainer<MetadataType> metadataContainer = ((PrismContainerValue) cloned).findOrCreateContainer(AssignmentType.F_METADATA);
Expand All @@ -225,8 +232,6 @@ private static <V extends PrismValue, D extends ItemDefinition> String getAutoCr
return null;
}



public static PropertyDelta<XMLGregorianCalendar> createActivationTimestampDelta(ActivationStatusType status, XMLGregorianCalendar now,
PrismContainerDefinition<ActivationType> activationDefinition, OriginType origin) {
QName timestampPropertyName;
Expand Down

0 comments on commit 6e52e3c

Please sign in to comment.