You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

138 lines
4.9 KiB

package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.result.AccessConfigOpeDefaultScopesResultDTO;
import com.epmet.dto.result.AccessConfigOpesResultDTO;
import com.epmet.dto.result.AccessConfigOptionsResultDTO;
import com.epmet.dto.result.RoleOperationDefaultResultDTO;
import com.epmet.service.AccessConfigService;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.Set;
@RestController
@RequestMapping("config")
public class AccessConfigController {
@Autowired
private AccessConfigService accessConfigService;
/**
* 根据roleKey查询角色默认操作列表(包括assigned字段,标识该角色是否已经具有该操作权限)
* @param roleKey
* @return
*/
@PostMapping("roledefaultops/{roleKey}")
public Result listRoleDefaultOps(@PathVariable("roleKey") String roleKey) {
List<RoleOperationDefaultResultDTO> defaultOps = accessConfigService.listRoleDefaultOpsByRoleKey(roleKey);
return new Result().ok(defaultOps);
}
/**
* 根据角色ID列出角色的操作列表(及该操作的scope范围)
* @param roleId
* @return
*/
@PostMapping("roleopes/{roleId}")
public Result listRoleOperations(@PathVariable("roleId") String roleId) {
List<AccessConfigOpesResultDTO> opes = accessConfigService.listOpesByRole(roleId);
return new Result().ok(opes);
}
/**
* 保存角色的操作权限列表
* @return
*/
@PostMapping("saveroleopes")
public Result saveRoleOpes(@RequestBody AccessConfigOpesFormDTO formDTO) {
accessConfigService.saveRoleOpes(formDTO.getRoleId(), formDTO.getOpes());
return new Result();
}
/**
* 查询可配置项列表
* @return
*/
@PostMapping("configoptions")
public Result listConfigOptions(@RequestBody AccessConfigOptionsFormDTO accessConfigFormDTO) {
ValidatorUtils.validateEntity(accessConfigFormDTO);
AccessConfigOptionsResultDTO options = accessConfigService.listScopeOptionsForAccessConfig(accessConfigFormDTO.getRoleId(), accessConfigFormDTO.getOperationKey());
return new Result().ok(options);
}
/**
* 保存设置
* @param config
* @return
*/
@PostMapping("saveconfig")
public Result saveSettings(@RequestBody AccessConfigSaveConfigDTO config) {
ValidatorUtils.validateEntity(config);
String roleId = config.getRoleId();
String operationKey = config.getOperationKey();
Set<String> scopeKeys = config.getScopeKeys();
accessConfigService.saveConfig(roleId, operationKey, scopeKeys);
return new Result();
}
/**
* 保存角色默认操作权限列表
* @param form
* @return
*/
@PostMapping("roledefaultopes/save")
public Result saveRoleDefaultOperations(@RequestBody AccessConfigRoleDefaultOpesFormDTO form) {
ValidatorUtils.validateEntity(form);
accessConfigService.saveRoleDefaultOperations(form.getRoleKey(), form.getOperationKeys());
return new Result();
}
/**
* 查询操作的默认范围列表
* @param form
* @return
*/
@PostMapping("opedefaultscopes/list")
public Result listOpeDefaultScopes(@RequestBody AccessConfigOpeDefaultScopesFormDTO form) {
ValidatorUtils.validateEntity(form, AccessConfigOpeDefaultScopesFormDTO.ListOpeDefaultScopesGroup.class);
List<AccessConfigOpeDefaultScopesResultDTO> scopes = accessConfigService.listOpeDefaultScopes4Role(form.getRoleKey(), form.getOperationKey());
return new Result().ok(scopes);
}
/**
* 保存操作的默认范围配置
* @param form
* @return
*/
@PostMapping("opedefaultscopes/save")
public Result saveOpeDefaultScopes(@RequestBody AccessConfigOpeDefaultScopesFormDTO form) {
ValidatorUtils.validateEntity(form, AccessConfigOpeDefaultScopesFormDTO.SaveOpeDefaultScopesGroup.class);
accessConfigService.saveOpeDefaultScopes(form.getRoleKey(), form.getOperationKey(), form.getScopeKeys());
return new Result();
}
/**
* @Description 给角色添加操作权限和操作范围
* @return
* @author wxz
* @date 2020.11.17 17:41
*/
@PostMapping("add-ope-and-scopes-4role")
public Result addOpeAndScopes4Role(@RequestBody AccessConfigAdd4RoletFormDTO form) {
ValidatorUtils.validateEntity(form);
String roleKey = form.getRoleKey();
String operationKey = form.getOperationKey();
List<String> scopeKeys = form.getScopeKeys();
accessConfigService.addOpeAndScopes4Role(roleKey, operationKey, scopeKeys);
return new Result();
}
}