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 String name;
|
||||
private final String description;
|
||||
private final String[] permissions;
|
||||
|
||||
private final Set<String> modifiedParameters;
|
||||
|
||||
@@ -19,7 +18,6 @@ public class RoleCommand {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.permissions = permissionIds;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
@@ -34,10 +32,6 @@ public class RoleCommand {
|
||||
return description;
|
||||
}
|
||||
|
||||
public String[] getPermissions() {
|
||||
return permissions;
|
||||
}
|
||||
|
||||
public boolean isNameChanged() {
|
||||
return this.modifiedParameters.contains("name");
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.mifosng.platform.user.domain;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.persistence.Column;
|
||||
@@ -39,10 +38,9 @@ public class Role extends AbstractAuditableCustom<AppUser, Long> {
|
||||
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.description = description.trim();
|
||||
this.permissions = new HashSet<Permission>(rolePermissions);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
public void update(final RoleCommand command, final List<Permission> selectedPermissions) {
|
||||
public void update(final RoleCommand command) {
|
||||
if (command.isNameChanged()) {
|
||||
this.name = command.getName();
|
||||
}
|
||||
@@ -80,10 +78,6 @@ public class Role extends AbstractAuditableCustom<AppUser, Long> {
|
||||
this.description = command.getDescription();
|
||||
}
|
||||
|
||||
if (command.isPermissionsChanged()) {
|
||||
this.permissions.clear();
|
||||
this.permissions = new HashSet<Permission>(selectedPermissions);
|
||||
}
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
||||
+1
-3
@@ -23,7 +23,6 @@ public class RoleCommandValidator {
|
||||
|
||||
baseDataValidator.reset().parameter("name").value(command.getName()).notBlank();
|
||||
baseDataValidator.reset().parameter("description").value(command.getDescription()).notBlank().notExceedingLengthOf(500);
|
||||
baseDataValidator.reset().parameter("permissions").value(command.getPermissions()).arrayNotEmpty();
|
||||
|
||||
if (!dataValidationErrors.isEmpty()) {
|
||||
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("name").value(command.getName()).ignoreIfNull().notBlank();
|
||||
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()) {
|
||||
throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist", "Validation errors exist.", dataValidationErrors);
|
||||
|
||||
+2
-33
@@ -1,8 +1,6 @@
|
||||
package org.mifosng.platform.user.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
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.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
@Service
|
||||
public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
||||
@@ -47,11 +44,7 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
||||
RoleCommandValidator validator = new RoleCommandValidator(command);
|
||||
validator.validateForCreate();
|
||||
|
||||
List<Permission> selectedPermissions = assembleListOfSelectedPermissions(command
|
||||
.getPermissions());
|
||||
|
||||
Role entity = new Role(command.getName(), command.getDescription(),
|
||||
selectedPermissions);
|
||||
Role entity = new Role(command.getName(), command.getDescription());
|
||||
|
||||
this.roleRepository.save(entity);
|
||||
|
||||
@@ -67,14 +60,11 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
||||
RoleCommandValidator validator = new RoleCommandValidator(command);
|
||||
validator.validateForUpdate();
|
||||
|
||||
List<Permission> selectedPermissions = assembleListOfSelectedPermissions(command
|
||||
.getPermissions());
|
||||
|
||||
Role role = this.roleRepository.findOne(command.getId());
|
||||
if (role == null) {
|
||||
throw new RoleNotFoundException(command.getId());
|
||||
}
|
||||
role.update(command, selectedPermissions);
|
||||
role.update(command);
|
||||
|
||||
this.roleRepository.save(role);
|
||||
|
||||
@@ -131,25 +121,4 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements
|
||||
|
||||
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