Skip to content

Commit

Permalink
visibility behavior for search by resource oid on audit log viewer
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jan 31, 2020
1 parent 6082aa0 commit ad17ffb
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 51 deletions.
Expand Up @@ -57,7 +57,7 @@
</div>
<div class="col-sm-9" wicket:id="initiatorNameField"/>
</div>
<div class="form-group">
<div wicket:id="resourceOidContainer" class="form-group">
<div class="col-sm-3 control-label">
<label><wicket:message key="PageAuditLogViewer.resourceOidLabel" /></label>
<i class="helpTextIcon" wicket:id="resourceOidFieldHelp"/>
Expand Down
Expand Up @@ -22,13 +22,16 @@

import com.evolveum.midpoint.gui.api.util.WebPrismUtil;
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.schema.PrismSchema;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.session.AuditLogStorage;
import com.evolveum.midpoint.web.session.PageStorage;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;

import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -82,11 +85,6 @@
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventStageType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventTypeType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectCollectionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;

/**
Expand Down Expand Up @@ -135,6 +133,7 @@ public abstract class AuditLogViewerPanel extends BasePanel<AuditSearchDto> {
private static final String ID_USED_INTERVAL = "usedIntervalField";
private static final String ID_USED_INTERVAL_CONTAINER = "usedIntervalContainer";
private static final String ID_REQUEST_IDENTIFIER_FIELD = "requestIdentifierField";
private static final String ID_RESOURCE_OID_CONTAINER = "resourceOidContainer";

private static final String ID_MAIN_FORM = "mainForm";
private static final String ID_SEARCH_BUTTON = "searchButton";
Expand All @@ -145,6 +144,8 @@ public abstract class AuditLogViewerPanel extends BasePanel<AuditSearchDto> {

private static final String OPERATION_RESOLVE_REFENRENCE_NAME = AuditLogViewerPanel.class.getSimpleName()
+ ".resolveReferenceName()";
private static final String OPERATION_LOAD_AUDIT_CONFIGURATION = AuditLogViewerPanel.class.getSimpleName()
+ ".isResourceOidAuditEnabled()";

private static final int DEFAULT_PAGE_SIZE = 10;

Expand Down Expand Up @@ -205,13 +206,18 @@ private void initParametersPanel(Form mainForm) {
parametersPanel.add(to);
parametersPanel.add(getHelpComponent(ID_TO_FIELD_HELP, WebPrismUtil.getHelpText(getItemDefinition(AuditEventRecordType.F_TIMESTAMP))));

WebMarkupContainer resourceOidContainer = new WebMarkupContainer(ID_RESOURCE_OID_CONTAINER);
resourceOidContainer.setOutputMarkupId(true);
resourceOidContainer.add(new VisibleBehaviour(() -> isResourceOidAuditEnabled()));
parametersPanel.add(resourceOidContainer);

TextPanel<String> resourceOidFiels = new TextPanel<>(ID_RESOURCE_OID_FIELD, new PropertyModel<>(getModel(),
AuditSearchDto.F_RESOURCE_OID));
resourceOidFiels.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior());
resourceOidFiels.getBaseFormComponent().add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
resourceOidFiels.setOutputMarkupId(true);
parametersPanel.add(resourceOidFiels);
parametersPanel.add(getHelpComponent(ID_RESOURCE_OID_FIELD_HELP, ""));
resourceOidContainer.add(resourceOidFiels);
resourceOidContainer.add(getHelpComponent(ID_RESOURCE_OID_FIELD_HELP, ""));

ItemPathPanel changedItemPanel = new ItemPathPanel(ID_CHANGED_ITEM, new PropertyModel<>(getModel(),
AuditSearchDto.F_CHANGED_ITEM));
Expand Down Expand Up @@ -807,4 +813,17 @@ private ItemDefinition getItemDefinition(ItemPath itemPath){
}
return null;
}

private boolean isResourceOidAuditEnabled(){
OperationResult result = new OperationResult(OPERATION_LOAD_AUDIT_CONFIGURATION);
try {
SystemConfigurationAuditType auditConfig = getPageBase().getModelInteractionService().getAuditConfiguration(result);
if (auditConfig != null && auditConfig.getEventRecording() != null){
return Boolean.TRUE.equals(auditConfig.getEventRecording().isRecordResourceOids());
}
} catch (Exception ex){
LOGGER.error("Cannot load audit configuration: {}", ex.getMessage());
}
return false;
}
}
Expand Up @@ -267,6 +267,8 @@ <F extends ObjectType> ModelContext<F> previewChanges(

DeploymentInformationType getDeploymentInformationConfiguration(OperationResult parentResult) throws ObjectNotFoundException, SchemaException;

SystemConfigurationAuditType getAuditConfiguration(OperationResult parentResult) throws ObjectNotFoundException, SchemaException;

List<MergeConfigurationType> getMergeConfiguration(OperationResult parentResult) throws ObjectNotFoundException, SchemaException;

AccessCertificationConfigurationType getCertificationConfiguration(OperationResult parentResult)
Expand Down
Expand Up @@ -30,6 +30,7 @@
import com.evolveum.midpoint.schema.util.*;
import com.evolveum.midpoint.security.enforcer.api.FilterGizmo;
import com.evolveum.midpoint.xml.ns._public.common.api_types_3.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.Validate;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -161,49 +162,6 @@
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractWorkItemType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ArchetypePolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ArchetypeType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentHolderType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentRelationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AuthenticationsPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AuthorizationDecisionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AuthorizationPhaseType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CredentialSourceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CredentialsPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CredentialsResetPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DeploymentInformationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LayerType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LensContextType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LocalizableMessageTemplateType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LocalizableMessageType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.MergeConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectCollectionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectTemplateType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrderConstraintsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OtherPrivilegesLimitationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PasswordType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RegistrationsPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RelationDefinitionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SecurityPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SecurityQuestionsCredentialsPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SecurityQuestionsCredentialsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowAssociationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.StringPolicyType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ValuePolicyType;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;
import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType;
Expand Down Expand Up @@ -771,6 +729,15 @@ public DeploymentInformationType getDeploymentInformationConfiguration(Operation
return systemConfiguration.asObjectable().getDeploymentInformation();
}

@Override
public SystemConfigurationAuditType getAuditConfiguration(OperationResult parentResult) throws ObjectNotFoundException, SchemaException {
PrismObject<SystemConfigurationType> systemConfiguration = systemObjectCache.getSystemConfiguration(parentResult);
if (systemConfiguration == null) {
return null;
}
return systemConfiguration.asObjectable().getAudit();
}

@Override
public List<MergeConfigurationType> getMergeConfiguration(OperationResult parentResult) throws ObjectNotFoundException, SchemaException {
PrismObject<SystemConfigurationType> systemConfiguration = systemObjectCache.getSystemConfiguration(parentResult);
Expand Down

0 comments on commit ad17ffb

Please sign in to comment.