FINERACT-787 add selfServiceRoles template resource

This commit is contained in:
Sidney Wasibani
2019-11-24 22:54:37 -08:00
committed by Michael Vorburger ⛑️
parent a9858b1145
commit c601856ca4
6 changed files with 45 additions and 11 deletions
+14
View File
@@ -37339,6 +37339,20 @@ GET https://DomainName/api/v1/users/template
"id": 1,
"name": "Super user",
"description": "This role provides all application permissions."
},
{
"id": 2,
"name": "Self Service User",
"description": "self service user role",
"disabled": false
}
],
"selfServiceRoles": [
{
"id": 2,
"name": "Self Service User",
"description": "self service user role",
"disabled": false
}
]
}
@@ -94,6 +94,7 @@ final class UsersApiResourceSwagger {
}
public Collection<OfficeData> allowedOffices;
public Collection<RoleData> availableRoles;
public Collection<RoleData> selfServiceRoles;
}
@ApiModel(value = "PostUsersRequest")
@@ -49,6 +49,7 @@ public class AppUserData {
@SuppressWarnings("unused")
private final Collection<OfficeData> allowedOffices;
private final Collection<RoleData> availableRoles;
private final Collection<RoleData> selfServiceRoles;
private final Collection<RoleData> selectedRoles;
private final StaffData staff;
private final Boolean isSelfServiceUser;
@@ -79,6 +80,7 @@ public class AppUserData {
this.rowIndex = rowIndex;
this.allowedOffices = null;
this.availableRoles = null;
this.selfServiceRoles = null;
this.selectedRoles = null;
this.staff = null;
this.isSelfServiceUser = null;
@@ -91,27 +93,30 @@ public class AppUserData {
public static AppUserData template(final AppUserData user, final Collection<OfficeData> officesForDropdown) {
return new AppUserData(user.id, user.username, user.email, user.officeId, user.officeName, user.firstname, user.lastname,
user.availableRoles, user.selectedRoles, officesForDropdown, user.staff, user.passwordNeverExpires, user.isSelfServiceUser);
user.availableRoles, user.selfServiceRoles, user.selectedRoles, officesForDropdown, user.staff, user.passwordNeverExpires,
user.isSelfServiceUser);
}
public static AppUserData template(final Collection<OfficeData> offices, final Collection<RoleData> availableRoles) {
return new AppUserData(null, null, null, null, null, null, null, availableRoles, null, offices, null, null, null);
public static AppUserData template(final Collection<OfficeData> offices, final Collection<RoleData> availableRoles, final Collection<RoleData> selfServiceRoles) {
return new AppUserData(null, null, null, null, null, null, null, availableRoles, selfServiceRoles, null, offices, null, null, null);
}
public static AppUserData dropdown(final Long id, final String username) {
return new AppUserData(id, username, null, null, null, null, null, null, null, null, null, null, null);
return new AppUserData(id, username, null, null, null, null, null, null, null, null, null, null, null, null);
}
public static AppUserData instance(final Long id, final String username, final String email, final Long officeId,
final String officeName, final String firstname, final String lastname, final Collection<RoleData> availableRoles,
final Collection<RoleData> selectedRoles, final StaffData staff, final Boolean passwordNeverExpire, final Boolean isSelfServiceUser) {
return new AppUserData(id, username, email, officeId, officeName, firstname, lastname, availableRoles, selectedRoles, null, staff,
passwordNeverExpire, isSelfServiceUser);
final Collection<RoleData> selfServiceRoles, final Collection<RoleData> selectedRoles, final StaffData staff,
final Boolean passwordNeverExpire, final Boolean isSelfServiceUser) {
return new AppUserData(id, username, email, officeId, officeName, firstname, lastname, availableRoles, selfServiceRoles, selectedRoles, null,
staff, passwordNeverExpire, isSelfServiceUser);
}
private AppUserData(final Long id, final String username, final String email, final Long officeId, final String officeName,
final String firstname, final String lastname, final Collection<RoleData> availableRoles,
final Collection<RoleData> selectedRoles, final Collection<OfficeData> allowedOffices, final StaffData staff,
final Collection<RoleData> selfServiceRoles, final Collection<RoleData> selectedRoles,
final Collection<OfficeData> allowedOffices, final StaffData staff,
final Boolean passwordNeverExpire, final Boolean isSelfServiceUser) {
this.id = id;
this.username = username;
@@ -122,6 +127,7 @@ public class AppUserData {
this.email = email;
this.allowedOffices = allowedOffices;
this.availableRoles = availableRoles;
this.selfServiceRoles = selfServiceRoles;
this.selectedRoles = selectedRoles;
this.staff = staff;
this.passwordNeverExpires = passwordNeverExpire;
@@ -107,8 +107,9 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic
final Collection<OfficeData> offices = this.officeReadPlatformService.retrieveAllOfficesForDropdown();
final Collection<RoleData> availableRoles = this.roleReadPlatformService.retrieveAllActiveRoles();
final Collection<RoleData> selfServiceRoles = this.roleReadPlatformService.retrieveAllSelfServiceRoles();
return AppUserData.template(offices, availableRoles);
return AppUserData.template(offices, availableRoles, selfServiceRoles);
}
@Override
@@ -138,7 +139,7 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic
}
AppUserData retUser = AppUserData.instance(user.getId(), user.getUsername(), user.getEmail(), user.getOffice().getId(),
user.getOffice().getName(), user.getFirstname(), user.getLastname(), availableRoles, selectedUserRoles, linkedStaff,
user.getOffice().getName(), user.getFirstname(), user.getLastname(), availableRoles, null, selectedUserRoles, linkedStaff,
user.getPasswordNeverExpires(), user.isSelfServiceUser());
if(retUser.isSelfServiceUser()){
@@ -185,7 +186,7 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic
} else {
linkedStaff = null;
}
return AppUserData.instance(id, username, email, officeId, officeName, firstname, lastname, null, selectedRoles, linkedStaff,
return AppUserData.instance(id, username, email, officeId, officeName, firstname, lastname, null, null, selectedRoles, linkedStaff,
passwordNeverExpire, isSelfServiceUser);
}
@@ -28,6 +28,8 @@ public interface RoleReadPlatformService {
Collection<RoleData> retrieveAllActiveRoles();
Collection<RoleData> retrieveAllSelfServiceRoles();
RoleData retrieveOne(Long roleId);
Collection<RoleData> retrieveAppUserRoles(Long appUserId);
@@ -24,6 +24,7 @@ import java.util.Collection;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
import org.apache.fineract.portfolio.self.registration.SelfServiceApiConstants;
import org.apache.fineract.useradministration.data.RoleData;
import org.apache.fineract.useradministration.exception.RoleNotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +59,15 @@ public class RoleReadPlatformServiceImpl implements RoleReadPlatformService {
return this.jdbcTemplate.query(sql, this.roleRowMapper);
}
@Override
public Collection<RoleData> retrieveAllSelfServiceRoles() {
final String role = SelfServiceApiConstants.SELF_SERVICE_USER_ROLE;
final String sql = "select " + this.roleRowMapper.schema() + " where r.name = ? order by r.id";
return this.jdbcTemplate.query(sql, new Object[] {role}, this.roleRowMapper);
}
@Override
public RoleData retrieveOne(final Long id) {