remove permission maintenance from add/edit role
This commit is contained in:
@@ -10,7 +10,6 @@ public class RoleCommand {
|
|||||||
private final Long id;
|
private final Long id;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String description;
|
private final String description;
|
||||||
private final String[] permissions;
|
|
||||||
|
|
||||||
private final Set<String> modifiedParameters;
|
private final Set<String> modifiedParameters;
|
||||||
|
|
||||||
@@ -19,7 +18,6 @@ public class RoleCommand {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.permissions = permissionIds;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
@@ -34,10 +32,6 @@ public class RoleCommand {
|
|||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String[] getPermissions() {
|
|
||||||
return permissions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isNameChanged() {
|
public boolean isNameChanged() {
|
||||||
return this.modifiedParameters.contains("name");
|
return this.modifiedParameters.contains("name");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package org.mifosng.platform.user.domain;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
@@ -39,10 +38,9 @@ public class Role extends AbstractAuditableCustom<AppUser, Long> {
|
|||||||
this.permissions = new HashSet<Permission>();
|
this.permissions = new HashSet<Permission>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Role(final String name, final String description, final List<Permission> rolePermissions) {
|
public Role(final String name, final String description) {
|
||||||
this.name = name.trim();
|
this.name = name.trim();
|
||||||
this.description = description.trim();
|
this.description = description.trim();
|
||||||
this.permissions = new HashSet<Permission>(rolePermissions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<Permission> getPermissions() {
|
public Collection<Permission> getPermissions() {
|
||||||
@@ -71,7 +69,7 @@ public class Role extends AbstractAuditableCustom<AppUser, Long> {
|
|||||||
return new RoleData(this.getId(), this.name, this.description, rolePermissions);
|
return new RoleData(this.getId(), this.name, this.description, rolePermissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(final RoleCommand command, final List<Permission> selectedPermissions) {
|
public void update(final RoleCommand command) {
|
||||||
if (command.isNameChanged()) {
|
if (command.isNameChanged()) {
|
||||||
this.name = command.getName();
|
this.name = command.getName();
|
||||||
}
|
}
|
||||||
@@ -80,10 +78,6 @@ public class Role extends AbstractAuditableCustom<AppUser, Long> {
|
|||||||
this.description = command.getDescription();
|
this.description = command.getDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command.isPermissionsChanged()) {
|
|
||||||
this.permissions.clear();
|
|
||||||
this.permissions = new HashSet<Permission>(selectedPermissions);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
|||||||
+1
-3
@@ -23,7 +23,6 @@ public class RoleCommandValidator {
|
|||||||
|
|
||||||
baseDataValidator.reset().parameter("name").value(command.getName()).notBlank();
|
baseDataValidator.reset().parameter("name").value(command.getName()).notBlank();
|
||||||
baseDataValidator.reset().parameter("description").value(command.getDescription()).notBlank().notExceedingLengthOf(500);
|
baseDataValidator.reset().parameter("description").value(command.getDescription()).notBlank().notExceedingLengthOf(500);
|
||||||
baseDataValidator.reset().parameter("permissions").value(command.getPermissions()).arrayNotEmpty();
|
|
||||||
|
|
||||||
if (!dataValidationErrors.isEmpty()) {
|
if (!dataValidationErrors.isEmpty()) {
|
||||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
||||||
@@ -38,9 +37,8 @@ public class RoleCommandValidator {
|
|||||||
baseDataValidator.reset().parameter("id").value(command.getId()).notNull();
|
baseDataValidator.reset().parameter("id").value(command.getId()).notNull();
|
||||||
baseDataValidator.reset().parameter("name").value(command.getName()).ignoreIfNull().notBlank();
|
baseDataValidator.reset().parameter("name").value(command.getName()).ignoreIfNull().notBlank();
|
||||||
baseDataValidator.reset().parameter("description").value(command.getDescription()).ignoreIfNull().notBlank().notExceedingLengthOf(500);
|
baseDataValidator.reset().parameter("description").value(command.getDescription()).ignoreIfNull().notBlank().notExceedingLengthOf(500);
|
||||||
baseDataValidator.reset().parameter("permissions").value(command.getPermissions()).ignoreIfNull().arrayNotEmpty();
|
|
||||||
|
|
||||||
baseDataValidator.reset().anyOfNotNull(command.getName(), command.getDescription(), command.getPermissions());
|
baseDataValidator.reset().anyOfNotNull(command.getName(), command.getDescription());
|
||||||
|
|
||||||
if (!dataValidationErrors.isEmpty()) {
|
if (!dataValidationErrors.isEmpty()) {
|
||||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
||||||
|
|||||||
+2
-33
@@ -1,8 +1,6 @@
|
|||||||
package org.mifosng.platform.user.service;
|
package org.mifosng.platform.user.service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
import org.mifosng.platform.accounting.api.commands.RolePermissionCommand;
|
||||||
@@ -17,7 +15,6 @@ import org.mifosng.platform.user.domain.RoleRepository;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.ObjectUtils;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
||||||
@@ -47,11 +44,7 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
|||||||
RoleCommandValidator validator = new RoleCommandValidator(command);
|
RoleCommandValidator validator = new RoleCommandValidator(command);
|
||||||
validator.validateForCreate();
|
validator.validateForCreate();
|
||||||
|
|
||||||
List<Permission> selectedPermissions = assembleListOfSelectedPermissions(command
|
Role entity = new Role(command.getName(), command.getDescription());
|
||||||
.getPermissions());
|
|
||||||
|
|
||||||
Role entity = new Role(command.getName(), command.getDescription(),
|
|
||||||
selectedPermissions);
|
|
||||||
|
|
||||||
this.roleRepository.save(entity);
|
this.roleRepository.save(entity);
|
||||||
|
|
||||||
@@ -67,14 +60,11 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
|||||||
RoleCommandValidator validator = new RoleCommandValidator(command);
|
RoleCommandValidator validator = new RoleCommandValidator(command);
|
||||||
validator.validateForUpdate();
|
validator.validateForUpdate();
|
||||||
|
|
||||||
List<Permission> selectedPermissions = assembleListOfSelectedPermissions(command
|
|
||||||
.getPermissions());
|
|
||||||
|
|
||||||
Role role = this.roleRepository.findOne(command.getId());
|
Role role = this.roleRepository.findOne(command.getId());
|
||||||
if (role == null) {
|
if (role == null) {
|
||||||
throw new RoleNotFoundException(command.getId());
|
throw new RoleNotFoundException(command.getId());
|
||||||
}
|
}
|
||||||
role.update(command, selectedPermissions);
|
role.update(command);
|
||||||
|
|
||||||
this.roleRepository.save(role);
|
this.roleRepository.save(role);
|
||||||
|
|
||||||
@@ -131,25 +121,4 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
|||||||
|
|
||||||
throw new PermissionNotFoundException(permissionCode);
|
throw new PermissionNotFoundException(permissionCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Permission> assembleListOfSelectedPermissions(
|
|
||||||
final String[] selectedPermissionsArray) {
|
|
||||||
List<Long> selectedPermissionIds = new ArrayList<Long>();
|
|
||||||
List<Permission> selectedPermissions = new ArrayList<Permission>();
|
|
||||||
|
|
||||||
if (!ObjectUtils.isEmpty(selectedPermissionsArray)) {
|
|
||||||
for (String selectedId : selectedPermissionsArray) {
|
|
||||||
selectedPermissionIds.add(Long.valueOf(selectedId));
|
|
||||||
}
|
|
||||||
|
|
||||||
Collection<Permission> allPermissions = this.permissionRepository
|
|
||||||
.findAll();
|
|
||||||
for (Permission permission : allPermissions) {
|
|
||||||
if (selectedPermissionIds.contains(permission.getId())) {
|
|
||||||
selectedPermissions.add(permission);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return selectedPermissions;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user