|
@@ -1,5 +1,6 @@
|
|
|
package org.ssssssss.magicapi.controller;
|
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
@@ -7,6 +8,7 @@ import org.ssssssss.magicapi.config.MagicConfiguration;
|
|
|
import org.ssssssss.magicapi.config.Valid;
|
|
|
import org.ssssssss.magicapi.interceptor.Authorization;
|
|
|
import org.ssssssss.magicapi.model.Backup;
|
|
|
+import org.ssssssss.magicapi.model.Constants;
|
|
|
import org.ssssssss.magicapi.model.FunctionInfo;
|
|
|
import org.ssssssss.magicapi.model.JsonBean;
|
|
|
|
|
@@ -63,6 +65,7 @@ public class MagicFunctionController extends MagicController implements MagicExc
|
|
|
FunctionInfo functionInfo = getFunctionInfo(id);
|
|
|
functionInfo.setGroupId(groupId);
|
|
|
isTrue(allowVisit(request, Authorization.SAVE, functionInfo), PERMISSION_INVALID);
|
|
|
+ isTrue(!Constants.LOCK.equals(functionInfo.getLock()), RESOURCE_LOCKED);
|
|
|
return new JsonBean<>(magicAPIService.moveFunction(id, groupId));
|
|
|
}
|
|
|
|
|
@@ -72,6 +75,10 @@ public class MagicFunctionController extends MagicController implements MagicExc
|
|
|
@Valid(readonly = false)
|
|
|
public JsonBean<String> save(HttpServletRequest request, @RequestBody FunctionInfo functionInfo) {
|
|
|
isTrue(allowVisit(request, Authorization.SAVE, functionInfo), PERMISSION_INVALID);
|
|
|
+ if (StringUtils.isNotBlank(functionInfo.getId())) {
|
|
|
+ FunctionInfo oldInfo = getFunctionInfo(functionInfo.getId());
|
|
|
+ isTrue(!Constants.LOCK.equals(oldInfo.getLock()), RESOURCE_LOCKED);
|
|
|
+ }
|
|
|
return new JsonBean<>(magicAPIService.saveFunction(functionInfo));
|
|
|
}
|
|
|
|
|
@@ -79,10 +86,34 @@ public class MagicFunctionController extends MagicController implements MagicExc
|
|
|
@ResponseBody
|
|
|
@Valid(readonly = false)
|
|
|
public JsonBean<Boolean> delete(HttpServletRequest request, String id) {
|
|
|
- isTrue(allowVisit(request, Authorization.DELETE, getFunctionInfo(id)), PERMISSION_INVALID);
|
|
|
+ FunctionInfo info = getFunctionInfo(id);
|
|
|
+ isTrue(allowVisit(request, Authorization.DELETE, info), PERMISSION_INVALID);
|
|
|
+ isTrue(!Constants.LOCK.equals(info.getLock()), RESOURCE_LOCKED);
|
|
|
return new JsonBean<>(magicAPIService.deleteFunction(id));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 锁定函数
|
|
|
+ */
|
|
|
+ @RequestMapping("/function/lock")
|
|
|
+ @ResponseBody
|
|
|
+ @Valid(readonly = false)
|
|
|
+ public JsonBean<Boolean> lock(HttpServletRequest request, String id) {
|
|
|
+ isTrue(allowVisit(request, Authorization.LOCK, getFunctionInfo(id)), PERMISSION_INVALID);
|
|
|
+ return new JsonBean<>(magicAPIService.lockFunction(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解锁函数
|
|
|
+ */
|
|
|
+ @RequestMapping("/function/unlock")
|
|
|
+ @ResponseBody
|
|
|
+ @Valid(readonly = false)
|
|
|
+ public JsonBean<Boolean> unlock(HttpServletRequest request, String id) {
|
|
|
+ isTrue(allowVisit(request, Authorization.UNLOCK, getFunctionInfo(id)), PERMISSION_INVALID);
|
|
|
+ return new JsonBean<>(magicAPIService.unlockFunction(id));
|
|
|
+ }
|
|
|
+
|
|
|
public FunctionInfo getFunctionInfo(String id) {
|
|
|
FunctionInfo functionInfo = magicAPIService.getFunctionInfo(id);
|
|
|
notNull(functionInfo, FUNCTION_NOT_FOUND);
|