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 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 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 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 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 scopeKeys = form.getScopeKeys(); accessConfigService.addOpeAndScopes4Role(roleKey, operationKey, scopeKeys); return new Result(); } }