/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * 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. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.application.servicefacade; import javax.servlet.http.HttpServletRequest; import org.mifos.dto.domain.CenterDto; import org.mifos.dto.domain.CustomerDetailDto; import org.mifos.dto.domain.CustomerDetailsDto; import org.mifos.dto.domain.CustomerHistoricalDataUpdateRequest; import org.mifos.dto.domain.GroupCreation; import org.mifos.dto.domain.GroupCreationDetail; import org.mifos.dto.domain.GroupFormCreationDto; import org.mifos.dto.domain.GroupUpdate; import org.mifos.dto.domain.MeetingDto; import org.mifos.dto.screen.CenterHierarchySearchDto; import org.mifos.dto.screen.CustomerHistoricalDataDto; import org.mifos.dto.screen.GroupInformationDto; import org.springframework.security.access.prepost.PreAuthorize; public interface GroupServiceFacade { @PreAuthorize("isFullyAuthenticated()") CenterHierarchySearchDto isCenterHierarchyConfigured(); @PreAuthorize("isFullyAuthenticated() and hasAnyRole('ROLE_CREATE_GROUP_IN_SAVE_FOR_LATER_STATE', 'ROLE_CREATE_GROUP_IN_SUBMIT_FOR_APPROVAL_STATE')") GroupFormCreationDto retrieveGroupFormCreationData(GroupCreation groupCreation); @PreAuthorize("isFullyAuthenticated() and hasAnyRole('ROLE_CREATE_GROUP_IN_SAVE_FOR_LATER_STATE', 'ROLE_CREATE_GROUP_IN_SUBMIT_FOR_APPROVAL_STATE')") CustomerDetailsDto createNewGroup(GroupCreationDetail groupCenterDetail, MeetingDto meetingDto); @PreAuthorize("isFullyAuthenticated()") GroupInformationDto getGroupInformationDto(String globalCustNum); @PreAuthorize("isFullyAuthenticated() and hasRole('ROLE_CAN_EDIT_GROUP')") CenterDto retrieveGroupDetailsForUpdate(String globalCustNum); @PreAuthorize("isFullyAuthenticated() and hasRole('ROLE_CAN_EDIT_GROUP')") void updateGroup(GroupUpdate groupUpdate); @PreAuthorize("isFullyAuthenticated() and hasRole('ROLE_CAN_CHANGE_CENTER_MEMBERSHIP_OF_GROUP')") CustomerDetailDto transferGroupToCenter(String globalCustNum, String centerSystemId, Integer previousGroupVersionNo); @PreAuthorize("isFullyAuthenticated() and hasRole('ROLE_CAN_CHANGE_CENTER_MEMBERSHIP_OF_GROUP')") CustomerDetailDto transferGroupToBranch(String globalCustNum, Short officeIdValue, Integer previousGroupVersionNo); @PreAuthorize("isFullyAuthenticated()") CustomerHistoricalDataDto retrieveCustomerHistoricalData(String globalCustNum); @PreAuthorize("isFullyAuthenticated()") void updateCustomerHistoricalData(String globalCustNum, CustomerHistoricalDataUpdateRequest historicalData); void putGroupBusinessKeyInSession(String globalCustNum, HttpServletRequest request); }