/** * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 * * 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 org.glite.security.voms.admin.view.actions.register; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.glite.security.voms.admin.configuration.VOMSConfiguration; import org.glite.security.voms.admin.configuration.VOMSConfigurationConstants; import org.glite.security.voms.admin.operations.CurrentAdmin; import org.glite.security.voms.admin.persistence.dao.generic.AUPDAO; import org.glite.security.voms.admin.persistence.dao.generic.DAOFactory; import org.glite.security.voms.admin.persistence.dao.generic.RequestDAO; import org.glite.security.voms.admin.persistence.model.AUPVersion; import org.glite.security.voms.admin.persistence.model.request.NewVOMembershipRequest; import org.glite.security.voms.admin.persistence.model.request.Request.STATUS; import org.glite.security.voms.admin.persistence.model.request.RequesterInfo; import org.glite.security.voms.admin.view.actions.BaseAction; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @Results({ @Result(name = BaseAction.INPUT, location = "register"), @Result(name = BaseAction.SUCCESS, location = "registerConfirmation") }) public abstract class RegisterActionSupport extends BaseAction implements Preparable, ModelDriven<NewVOMembershipRequest> { public static final String CONFIRMATION_NEEDED = "needToConfirm"; public static final String PLEASE_WAIT = "pleaseWait"; public static final String ALREADY_MEMBER = "alreadyAMember"; public static final String REGISTRATION_DISABLED = "registrationDisabled"; public static final String UNAUTHENTICATED_CLIENT = "unauthenticatedClient"; public static final String PLUGIN_VALIDATION_ERROR = "pluginValidationError"; public static final String REQUEST_ATTRIBUTES = "requestAttributes"; public static final String SELECT_MANAGER = "selectManager"; /** * */ private static final long serialVersionUID = 1L; Long requestId = -1L; protected NewVOMembershipRequest request; protected RequesterInfo requester; AUPVersion currentAUPVersion; protected String checkExistingPendingRequests() { RequestDAO dao = DAOFactory.instance().getRequestDAO(); NewVOMembershipRequest req = dao.findActiveVOMembershipRequest(requester); if (req != null) { request = req; if (req.getStatus().equals(STATUS.SUBMITTED)) return CONFIRMATION_NEEDED; if (req.getStatus().equals(STATUS.CONFIRMED) || req.getStatus().equals(STATUS.PENDING)) return PLEASE_WAIT; } return null; } protected RequesterInfo requesterInfoFromCurrentAdmin() { RequesterInfo i = new RequesterInfo(); CurrentAdmin admin = CurrentAdmin.instance(); i.setCertificateSubject(admin.getRealSubject()); i.setCertificateIssuer(admin.getRealIssuer()); i.setEmailAddress(admin.getRealEmailAddress()); return i; } public void prepare() throws Exception { requester = requesterInfoFromCurrentAdmin(); AUPDAO aupDAO = DAOFactory.instance().getAUPDAO(); currentAUPVersion = aupDAO.getVOAUP().getActiveVersion(); if (getModel() == null) { if (requestId != -1L) { RequestDAO dao = DAOFactory.instance().getRequestDAO(); request = (NewVOMembershipRequest) dao.findById(requestId, true); } } } public NewVOMembershipRequest getModel() { return request; } public Long getRequestId() { return requestId; } public void setRequestId(Long requestId) { this.requestId = requestId; } public RequesterInfo getRequester() { return requester; } public void setRequester(RequesterInfo requester) { this.requester = requester; } public boolean registrationEnabled() { return VOMSConfiguration.instance().getBoolean( VOMSConfigurationConstants.REGISTRATION_SERVICE_ENABLED, true); } public boolean attributeRequestsEnabled() { return VOMSConfiguration.instance() .getBoolean( VOMSConfigurationConstants.VO_MEMBERSHIP_ENABLE_ATTRIBUTES_REQUEST, false); } public boolean requireGroupManagerSelection() { return VOMSConfiguration.instance().getBoolean( VOMSConfigurationConstants.VO_MEMBERSHIP_REQUIRE_GROUP_MANAGER_SELECTION, true); } public AUPVersion getCurrentAUPVersion() { return currentAUPVersion; } public String getRegistrationType() { return VOMSConfiguration.instance().getRegistrationType(); } }