Use Login user hierarchy for view accounting rules
This commit is contained in:
+9
-4
@@ -45,6 +45,7 @@ import org.mifosplatform.infrastructure.core.serialization.DefaultToApiJsonSeria
|
||||
import org.mifosplatform.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.mifosplatform.organisation.office.data.OfficeData;
|
||||
import org.mifosplatform.organisation.office.service.OfficeReadPlatformService;
|
||||
import org.mifosplatform.useradministration.domain.AppUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -106,17 +107,21 @@ public class AccountingRuleApiResource {
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public String retrieveAllAccountingRules(@Context final UriInfo uriInfo) {
|
||||
|
||||
this.context.authenticatedUser().validateHasReadPermission(this.resourceNameForPermission);
|
||||
|
||||
final AppUser currentUser = context.authenticatedUser();
|
||||
currentUser.validateHasReadPermission(this.resourceNameForPermission);
|
||||
|
||||
final String hierarchy = currentUser.getOffice().getHierarchy();
|
||||
final String hierarchySearchString = hierarchy + "%";
|
||||
|
||||
final Set<String> associationParameters = ApiParameterHelper.extractAssociationsForResponseIfProvided(uriInfo.getQueryParameters());
|
||||
final Long officeId = this.context.authenticatedUser().getOffice().getId();
|
||||
boolean isAssociationParametersExists = false;
|
||||
if (!associationParameters.isEmpty()) {
|
||||
if (associationParameters.contains("all")) {
|
||||
isAssociationParametersExists = true; // If true, retrieve additional fields for journal entry form.
|
||||
}
|
||||
}
|
||||
final List<AccountingRuleData> accountingRuleDatas = this.accountingRuleReadPlatformService.retrieveAllAccountingRules(officeId,
|
||||
final List<AccountingRuleData> accountingRuleDatas = this.accountingRuleReadPlatformService.retrieveAllAccountingRules(hierarchySearchString,
|
||||
isAssociationParametersExists);
|
||||
|
||||
final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters());
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import org.mifosplatform.accounting.rule.data.AccountingRuleData;
|
||||
|
||||
public interface AccountingRuleReadPlatformService {
|
||||
|
||||
List<AccountingRuleData> retrieveAllAccountingRules(Long OfficeId, boolean isAssociationParametersExists);
|
||||
List<AccountingRuleData> retrieveAllAccountingRules(String hierarchySearchString, boolean isAssociationParametersExists);
|
||||
|
||||
AccountingRuleData retrieveAccountingRuleById(Long accountingRuleId);
|
||||
|
||||
|
||||
+4
-4
@@ -133,14 +133,14 @@ public class AccountingRuleReadPlatformServiceImpl implements AccountingRuleRead
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AccountingRuleData> retrieveAllAccountingRules(final Long officeId, final boolean isAssociationParametersExists) {
|
||||
public List<AccountingRuleData> retrieveAllAccountingRules(final String hierarchySearchString, final boolean isAssociationParametersExists) {
|
||||
final AccountingRuleDataExtractor resultSetExtractor = new AccountingRuleDataExtractor(this.jdbcTemplate,
|
||||
this.glAccountReadPlatformService, isAssociationParametersExists);
|
||||
Object[] arguments = new Object[] {};
|
||||
String sql = "select " + resultSetExtractor.schema() + " and system_defined=0 ";
|
||||
if (officeId != null) {
|
||||
sql = sql + " and office.id = ?";
|
||||
arguments = new Object[] { officeId };
|
||||
if (hierarchySearchString != null) {
|
||||
sql = sql + " and office.hierarchy like ?";
|
||||
arguments = new Object[] { hierarchySearchString };
|
||||
}
|
||||
sql = sql + " order by rule.id asc";
|
||||
final Map<Long, AccountingRuleData> extractedData = this.jdbcTemplate.query(sql, resultSetExtractor, arguments);
|
||||
|
||||
Reference in New Issue
Block a user