Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Feb 3, 2016
2 parents 3dc92dc + 15f3352 commit a22241c
Show file tree
Hide file tree
Showing 21 changed files with 285 additions and 93 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
@@ -0,0 +1,2 @@
language: java
script: "mvn verify"
2 changes: 1 addition & 1 deletion build-system/pom.xml
Expand Up @@ -74,7 +74,7 @@
<activiti-spring.version>5.17.0</activiti-spring.version>
<commons-email.version>1.3</commons-email.version>
<xmlsec.version>2.0.1</xmlsec.version>
<connid.version>1.4.2.0</connid.version>
<connid.version>1.4.3.0-SNAPSHOT</connid.version>
<jasper.version>6.1.1</jasper.version>
<derby.version>10.11.1.1</derby.version>
<wro4j.version>1.7.1</wro4j.version>
Expand Down
36 changes: 34 additions & 2 deletions gui/admin-gui/src/main/resources/localization/Midpoint.properties
Expand Up @@ -25,6 +25,12 @@ AccessCertificationCampaignStateType.IN_REVIEW_STAGE_FULL=In review stage {0} ({
AccessCertificationCampaignStateType.IN_REVIEW_STAGE=In review stage
AccessCertificationCampaignStateType.REVIEW_STAGE_DONE_FULL=Done review stage {0} ({1})
AccessCertificationCampaignStateType.REVIEW_STAGE_DONE=Review stage done
AccessCertificationResponseType.ACCEPT=Accept
AccessCertificationResponseType.REVOKE=Revoke
AccessCertificationResponseType.REDUCE=Reduce
AccessCertificationResponseType.NOT_DECIDED=Not decided
AccessCertificationResponseType.DELEGATE=Delegate
AccessCertificationResponseType.NO_RESPONSE=No response
ActivationStatusType.ARCHIVED=Archived
ActivationStatusType.DISABLED=Disabled
ActivationStatusType.ENABLED=Enabled
Expand Down Expand Up @@ -158,7 +164,6 @@ CapabilitiesType.activationLockoutStatus=Activation Lockout
CapabilitiesType.activationValidity=Activation Validity
CapabilitiesType.credentials=Credentials
CapabilitiesType.password=Password
CapabilitiesType.password=Password
CapabilitiesType.liveSync=Live sync
CapabilitiesType.testConnection=Test Connection
CapabilitiesType.schema=Schema
Expand Down Expand Up @@ -686,6 +691,31 @@ ObjectTypeGuiDescriptor.systemConfiguration=System configuration
ObjectTypeGuiDescriptor.task=Task
ObjectTypeGuiDescriptor.user=User
ObjectTypeGuiDescriptor.valuePolicy=Value policy
ObjectType.AbstractRoleType=Abstract role
ObjectType.AccessCertificationCampaignType=Access certification campaign
ObjectType.AccessCertificationDefinitionType=Access certification definition
ObjectType.AccountType=Account
ObjectType.ConnectorType=Connector
ObjectType.ConnectorHostType=Connector host
ObjectType.FocusType=Focus
ObjectType.GenericObjectType=Generic object
ObjectType.LookupTableType=Lookup table
ObjectType.NodeType=Node
ObjectType.ObjectType=Object
ObjectType.ObjectTemplateType=Object template
ObjectType.OrgManagerType=Org. manager
ObjectType.OrgType=Organization
ObjectType.ReportOutputType=Report output
ObjectType.ReportType=Report
ObjectType.ResourceType=Resource
ObjectType.RoleType=Role
ObjectType.SecurityPolicyType=Security policy
ObjectType.SequenceType=Sequence
ObjectType.ShadowType=Shadow
ObjectType.SystemConfigurationType=System configuration
ObjectType.TaskType=Task
ObjectType.UserType=User
ObjectType.ValuePolicyType=Value policy
ObjectType.name=Name
ObjectType.parentOrgRef=Parent org. units
operation.com.evolveum.midpoint.common.crypto.CryptoUtil.securitySelfTest=Security self test
Expand Down Expand Up @@ -1146,7 +1176,6 @@ pageAdminObjectDetails.title.newObject=Create
pageAdminFocus.message.cantEditFocus=Unknown error occurred, can't edit focus object.
pageAdminFocus.message.cantNewFocus=Unknown error occurred, can't create new focus object.
pageAdminFocus.message.illegalAccountState=Illegal shadow state '{0}'.
pageAdminFocus.message.illegalAccountState=Illegal shadow state '{0}'.
pageAdminFocus.message.noAssignmentsAvailable=There are currently no assignments to preview.
pageAdminFocus.message.noOrgSelected=No organization was selected.
pageAdminFocus.menu.assignShadow=Assign resource
Expand Down Expand Up @@ -2380,6 +2409,9 @@ runReportPopupContent.param.name=Parameter name
runReportPopupContent.param.name.targetName = Target Name
runReportPopupContent.param.name.to = Date To
runReportPopupContent.param.value=Parameter value
runReportPopupContent.param.name.alsoClosedCampaigns=Also closed campaigns? (default is false)
runReportPopupContent.param.name.campaignName=Campaign name
runReportPopupContent.param.name.stageNumber=Stage number (default is to take all stages)
RunReportPopupPanel.title=Report configuration before run
runUntilNodeDown.error1=Compatible data for 'Thread stop action' are\: Close, Suspend
runUntilNodeDown.error2=Compatible data for 'Thread stop action' are\: Restart, Reschedule
Expand Down
Expand Up @@ -177,4 +177,13 @@ public String toString() {
return sb.toString();
}

public void addFilter(ObjectFilter objectFilter) {
if (objectFilter == null || objectFilter instanceof AllFilter) {
// nothing to do
} else if (filter == null || filter instanceof AllFilter) {
setFilter(objectFilter);
} else {
setFilter(AndFilter.createAnd(objectFilter, filter));
}
}
}
Expand Up @@ -259,11 +259,21 @@ public S_FilterExit asc(QName... names) throws SchemaException {
return finish().asc(names);
}

@Override
public S_FilterExit asc(ItemPath path) throws SchemaException {
return finish().asc(path);
}

@Override
public S_FilterExit desc(QName... names) throws SchemaException {
return finish().desc(names);
}

@Override
public S_FilterExit desc(ItemPath path) throws SchemaException {
return finish().desc(path);
}

@Override
public S_AtomicFilterExit endBlock() throws SchemaException {
return finish().endBlock();
Expand Down
Expand Up @@ -343,6 +343,14 @@ public S_FilterExit asc(QName... names) throws SchemaException {
return addOrdering(ObjectOrdering.createOrdering(new ItemPath(names), OrderDirection.ASCENDING));
}

@Override
public S_FilterExit asc(ItemPath path) throws SchemaException {
if (ItemPath.isNullOrEmpty(path)) {
throw new SchemaException("There must be non-empty path for asc(...) ordering");
}
return addOrdering(ObjectOrdering.createOrdering(path, OrderDirection.ASCENDING));
}

@Override
public S_FilterExit desc(QName... names) throws SchemaException {
if (names.length == 0) {
Expand All @@ -351,6 +359,14 @@ public S_FilterExit desc(QName... names) throws SchemaException {
return addOrdering(ObjectOrdering.createOrdering(new ItemPath(names), OrderDirection.DESCENDING));
}

@Override
public S_FilterExit desc(ItemPath path) throws SchemaException {
if (ItemPath.isNullOrEmpty(path)) {
throw new SchemaException("There must be non-empty path for desc(...) ordering");
}
return addOrdering(ObjectOrdering.createOrdering(path, OrderDirection.DESCENDING));
}

@Override
public ObjectQuery build() throws SchemaException {
if (typeRestriction != null || existsRestriction != null) {
Expand Down
Expand Up @@ -16,6 +16,7 @@

package com.evolveum.midpoint.prism.query.builder;

import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.util.exception.SchemaException;

Expand All @@ -29,5 +30,7 @@ public interface S_FilterExit extends S_QueryExit {

S_AtomicFilterExit endBlock() throws SchemaException;
S_FilterExit asc(QName... names) throws SchemaException;
S_FilterExit asc(ItemPath path) throws SchemaException;
S_FilterExit desc(QName... names) throws SchemaException;
S_FilterExit desc(ItemPath path) throws SchemaException;
}
Expand Up @@ -182,7 +182,7 @@ public class ModelController implements ModelService, TaskService, WorkflowServi
@Autowired(required = false) // not required in all circumstances
private WorkflowManager workflowManager;

@Autowired
@Autowired(required = false) // not required in all circumstances
private CertificationManager certificationManager;

@Autowired
Expand Down Expand Up @@ -218,11 +218,25 @@ public class ModelController implements ModelService, TaskService, WorkflowServi
@Autowired
private SchemaTransformer schemaTransformer;


public ModelObjectResolver getObjectResolver() {
return objectResolver;
}

private WorkflowManager getWorkflowManagerChecked() {
if (workflowManager == null) {
throw new SystemException("Workflow manager not present");
}
return workflowManager;
}

private CertificationManager getCertificationManagerChecked() {
if (certificationManager == null) {
throw new SystemException("Certification manager not present");
}
return certificationManager;
}


@Override
public <T extends ObjectType> PrismObject<T> getObject(Class<T> clazz, String oid,
Collection<SelectorOptions<GetOperationOptions>> options, Task task, OperationResult parentResult) throws ObjectNotFoundException,
Expand Down Expand Up @@ -1698,72 +1712,72 @@ private void authorizeNodeCollectionOperation(ModelAuthorizationAction action, C
//region Workflow-related operations
@Override
public int countWorkItemsRelatedToUser(String userOid, boolean assigned, OperationResult parentResult) throws SchemaException, ObjectNotFoundException {
return workflowManager.countWorkItemsRelatedToUser(userOid, assigned, parentResult);
return getWorkflowManagerChecked().countWorkItemsRelatedToUser(userOid, assigned, parentResult);
}

@Override
public List<WorkItemType> listWorkItemsRelatedToUser(String userOid, boolean assigned, int first, int count, OperationResult parentResult) throws SchemaException, ObjectNotFoundException {
return workflowManager.listWorkItemsRelatedToUser(userOid, assigned, first, count, parentResult);
return getWorkflowManagerChecked().listWorkItemsRelatedToUser(userOid, assigned, first, count, parentResult);
}

@Override
public WorkItemType getWorkItemDetailsById(String workItemId, OperationResult parentResult) throws ObjectNotFoundException {
return workflowManager.getWorkItemDetailsById(workItemId, parentResult);
return getWorkflowManagerChecked().getWorkItemDetailsById(workItemId, parentResult);
}

@Override
public int countProcessInstancesRelatedToUser(String userOid, boolean requestedBy, boolean requestedFor, boolean finished, OperationResult parentResult) {
return workflowManager.countProcessInstancesRelatedToUser(userOid, requestedBy, requestedFor, finished, parentResult);
return getWorkflowManagerChecked().countProcessInstancesRelatedToUser(userOid, requestedBy, requestedFor, finished, parentResult);
}

@Override
public List<WfProcessInstanceType> listProcessInstancesRelatedToUser(String userOid, boolean requestedBy, boolean requestedFor, boolean finished, int first, int count, OperationResult parentResult) {
return workflowManager.listProcessInstancesRelatedToUser(userOid, requestedBy, requestedFor, finished, first, count, parentResult);
return getWorkflowManagerChecked().listProcessInstancesRelatedToUser(userOid, requestedBy, requestedFor, finished, first, count, parentResult);
}

@Override
public WfProcessInstanceType getProcessInstanceByWorkItemId(String workItemId, OperationResult parentResult) throws ObjectNotFoundException {
return workflowManager.getProcessInstanceByWorkItemId(workItemId, parentResult);
return getWorkflowManagerChecked().getProcessInstanceByWorkItemId(workItemId, parentResult);
}

@Override
public WfProcessInstanceType getProcessInstanceById(String instanceId, boolean historic, boolean getWorkItems, OperationResult parentResult) throws ObjectNotFoundException {
return workflowManager.getProcessInstanceById(instanceId, historic, getWorkItems, parentResult);
return getWorkflowManagerChecked().getProcessInstanceById(instanceId, historic, getWorkItems, parentResult);
}

@Override
public void approveOrRejectWorkItem(String workItemId, boolean decision, OperationResult parentResult) {
workflowManager.approveOrRejectWorkItem(workItemId, decision, parentResult);
getWorkflowManagerChecked().approveOrRejectWorkItem(workItemId, decision, parentResult);
}

@Override
public void approveOrRejectWorkItemWithDetails(String workItemId, PrismObject specific, boolean decision, OperationResult result) {
workflowManager.approveOrRejectWorkItemWithDetails(workItemId, specific, decision, result);
getWorkflowManagerChecked().approveOrRejectWorkItemWithDetails(workItemId, specific, decision, result);
}

@Override
public void completeWorkItemWithDetails(String workItemId, PrismObject specific, String decision, OperationResult parentResult) {
workflowManager.completeWorkItemWithDetails(workItemId, specific, decision, parentResult);
getWorkflowManagerChecked().completeWorkItemWithDetails(workItemId, specific, decision, parentResult);
}

@Override
public void stopProcessInstance(String instanceId, String username, OperationResult parentResult) {
workflowManager.stopProcessInstance(instanceId, username, parentResult);
getWorkflowManagerChecked().stopProcessInstance(instanceId, username, parentResult);
}

@Override
public void deleteProcessInstance(String instanceId, OperationResult parentResult) {
workflowManager.deleteProcessInstance(instanceId, parentResult);
getWorkflowManagerChecked().deleteProcessInstance(instanceId, parentResult);
}

@Override
public void claimWorkItem(String workItemId, OperationResult parentResult) {
workflowManager.claimWorkItem(workItemId, parentResult);
getWorkflowManagerChecked().claimWorkItem(workItemId, parentResult);
}

@Override
public void releaseWorkItem(String workItemId, OperationResult parentResult) {
workflowManager.releaseWorkItem(workItemId, parentResult);
getWorkflowManagerChecked().releaseWorkItem(workItemId, parentResult);
}
//endregion

Expand Down Expand Up @@ -1796,43 +1810,42 @@ private void checkScriptingAuthorization(OperationResult parentResult) throws Sc

@Override
public AccessCertificationCasesStatisticsType getCampaignStatistics(String campaignOid, boolean currentStageOnly, Task task, OperationResult parentResult) throws ObjectNotFoundException, SchemaException, SecurityViolationException, ObjectAlreadyExistsException {
return certificationManager.getCampaignStatistics(campaignOid, currentStageOnly, task, parentResult);
return getCertificationManagerChecked().getCampaignStatistics(campaignOid, currentStageOnly, task, parentResult);
}

@Override
public void recordDecision(String campaignOid, long caseId, AccessCertificationDecisionType decision, Task task, OperationResult parentResult) throws ObjectNotFoundException, SchemaException, SecurityViolationException, ObjectAlreadyExistsException {
certificationManager.recordDecision(campaignOid, caseId, decision, task, parentResult);
getCertificationManagerChecked().recordDecision(campaignOid, caseId, decision, task, parentResult);
}

@Override
public List<AccessCertificationCaseType> searchDecisionsToReview(ObjectQuery caseQuery, boolean notDecidedOnly, Collection<SelectorOptions<GetOperationOptions>> options, Task task, OperationResult parentResult) throws ObjectNotFoundException, SchemaException, SecurityViolationException {
return certificationManager.searchDecisionsToReview(caseQuery, notDecidedOnly, options, task, parentResult);
return getCertificationManagerChecked().searchDecisionsToReview(caseQuery, notDecidedOnly, options, task, parentResult);
}

@Override
public void closeCampaign(String campaignOid, Task task, OperationResult result) throws ObjectNotFoundException, SchemaException, SecurityViolationException, ObjectAlreadyExistsException {
certificationManager.closeCampaign(campaignOid, task, result);
getCertificationManagerChecked().closeCampaign(campaignOid, task, result);
}

@Override
public void startRemediation(String campaignOid, Task task, OperationResult result) throws ObjectNotFoundException, SchemaException, SecurityViolationException, ObjectAlreadyExistsException {
certificationManager.startRemediation(campaignOid, task, result);
getCertificationManagerChecked().startRemediation(campaignOid, task, result);
}

@Override
public void closeCurrentStage(String campaignOid, int stageNumber, Task task, OperationResult parentResult) throws SchemaException, SecurityViolationException, ObjectNotFoundException, ObjectAlreadyExistsException {
certificationManager.closeCurrentStage(campaignOid, stageNumber, task, parentResult);
getCertificationManagerChecked().closeCurrentStage(campaignOid, stageNumber, task, parentResult);
}

@Override
public void openNextStage(String campaignOid, int stageNumber, Task task, OperationResult parentResult) throws SchemaException, SecurityViolationException, ObjectNotFoundException, ObjectAlreadyExistsException {
certificationManager.openNextStage(campaignOid, stageNumber, task, parentResult);
getCertificationManagerChecked().openNextStage(campaignOid, stageNumber, task, parentResult);
}

@Override
public AccessCertificationCampaignType createCampaign(String definitionOid, Task task, OperationResult parentResult) throws SchemaException, SecurityViolationException, ObjectNotFoundException, ObjectAlreadyExistsException {
return certificationManager.createCampaign(definitionOid, task, parentResult);
return getCertificationManagerChecked().createCampaign(definitionOid, task, parentResult);
}

//endregion
}

0 comments on commit a22241c

Please sign in to comment.