com.evolveum.midpoint.web.page.admin.users.PageUsersView.java Source code

Java tutorial

Introduction

Here is the source code for com.evolveum.midpoint.web.page.admin.users.PageUsersView.java

Source

/*
 * Copyright (c) 2010-2017 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.
 */
package com.evolveum.midpoint.web.page.admin.users;

import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
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.web.application.AuthorizationAction;
import com.evolveum.midpoint.web.application.PageDescriptor;
import com.evolveum.midpoint.web.application.Url;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectCollectionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

/**
 * @author honchar
 */
@PageDescriptor(urls = { @Url(mountUrl = "/admin/usersView", matchUrlForSecurity = "/admin/usersView") }, action = {
        @AuthorizationAction(actionUri = PageAdminUsers.AUTH_USERS_ALL, label = PageAdminUsers.AUTH_USERS_ALL_LABEL, description = PageAdminUsers.AUTH_USERS_ALL_DESCRIPTION),
        @AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_USERS_VIEW_URL, label = "PageUsers.auth.users.label", description = "PageUsers.auth.users.description") })
public class PageUsersView extends PageUsers {
    private static final long serialVersionUID = 1L;

    public static final String PARAMETER_OBJECT_COLLECTION_TYPE_OID = "collectionOid";

    private static final Trace LOGGER = TraceManager.getTrace(PageUsersView.class);

    private static final String DOT_CLASS = PageUsersView.class.getName() + ".";
    private static final String OPERATION_LOAD_USERS_VIEW_COLLECTION_REF = DOT_CLASS + "loadUsersViewCollectionRef";

    public PageUsersView() {
        super();
    }

    @Override
    protected ObjectFilter getUsersViewFilter() {
        PageParameters parameters = getPageParameters();
        StringValue collectionOidValue = parameters.get(PARAMETER_OBJECT_COLLECTION_TYPE_OID);
        if (collectionOidValue == null || collectionOidValue.isEmpty()) {
            return null;
        }
        OperationResult result = new OperationResult(OPERATION_LOAD_USERS_VIEW_COLLECTION_REF);
        Task task = createSimpleTask(OPERATION_LOAD_USERS_VIEW_COLLECTION_REF);
        PrismObject<ObjectCollectionType> collectionObject = WebModelServiceUtils
                .loadObject(ObjectCollectionType.class, collectionOidValue.toString(), this, task, result);
        if (collectionObject == null) {
            return null;
        }
        ObjectCollectionType collectionValue = collectionObject.getValue().asObjectable();
        if (!QNameUtil.match(collectionValue.getType(), UserType.COMPLEX_TYPE)) {
            return null;
        }
        ObjectFilter filter = null;
        try {
            filter = getQueryConverter().parseFilter(collectionValue.getFilter(), UserType.class);
        } catch (SchemaException ex) {
            result.recomputeStatus();
            result.recordFatalError("Couldn't parse filter. Filter: " + collectionValue.getFilter(), ex);
            LoggingUtils.logUnexpectedException(LOGGER,
                    "Couldn't parse filter. Filter: " + collectionValue.getFilter(), ex);
        }
        return filter;
    }
}