Browse Source

feature: forbidden disable/enable self (#55)

* feat: add k3s sample config

* feat: update frontend resource
master
vran 3 years ago
committed by GitHub
parent
commit
e1854b0b49
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      api/src/main/java/com/databasir/api/UserController.java
  2. 2
      api/src/main/resources/static/index.html
  3. 2
      api/src/main/resources/static/js/130-legacy.8b88285b.js
  4. 1
      api/src/main/resources/static/js/130-legacy.8b88285b.js.map
  5. 2
      api/src/main/resources/static/js/130.c7db75bc.js
  6. 1
      api/src/main/resources/static/js/130.c7db75bc.js.map
  7. 2
      api/src/main/resources/static/js/321-legacy.5e095d04.js
  8. 2
      api/src/main/resources/static/js/321-legacy.5e095d04.js.map
  9. 2
      api/src/main/resources/static/js/321.e07f090a.js
  10. 2
      api/src/main/resources/static/js/321.e07f090a.js.map
  11. 2
      api/src/main/resources/static/js/719-legacy.85eb5e28.js
  12. 1
      api/src/main/resources/static/js/719-legacy.85eb5e28.js.map
  13. 2
      api/src/main/resources/static/js/719.df03c200.js
  14. 1
      api/src/main/resources/static/js/719.df03c200.js.map
  15. 4
      api/src/main/resources/static/js/app-legacy.b8d396b4.js
  16. 2
      api/src/main/resources/static/js/app-legacy.b8d396b4.js.map
  17. 4
      api/src/main/resources/static/js/app.d1e6fea2.js
  18. 2
      api/src/main/resources/static/js/app.d1e6fea2.js.map
  19. 1
      core/src/main/java/com/databasir/core/domain/DomainErrors.java
  20. 112
      databasir-sample-k3s.yaml

7
api/src/main/java/com/databasir/api/UserController.java

@ -3,6 +3,7 @@ package com.databasir.api;
import com.databasir.api.validator.UserOperationValidator;
import com.databasir.common.JsonData;
import com.databasir.common.exception.Forbidden;
import com.databasir.core.domain.DomainErrors;
import com.databasir.core.domain.log.annotation.Operation;
import com.databasir.core.domain.user.data.*;
import com.databasir.core.domain.user.service.UserService;
@ -37,6 +38,9 @@ public class UserController {
@PreAuthorize("hasAnyAuthority('SYS_OWNER')")
@Operation(module = Operation.Modules.USER, name = "禁用用户", involvedUserId = "#userId")
public JsonData<Void> disableUser(@PathVariable Integer userId) {
if (userOperationValidator.isMyself(userId)) {
throw DomainErrors.CANNOT_UPDATE_SELF_ENABLED_STATUS.exception();
}
userService.switchEnableStatus(userId, false);
return JsonData.ok();
}
@ -45,6 +49,9 @@ public class UserController {
@PreAuthorize("hasAnyAuthority('SYS_OWNER')")
@Operation(module = Operation.Modules.USER, name = "启用用户", involvedUserId = "#userId")
public JsonData<Void> enableUser(@PathVariable Integer userId) {
if (userOperationValidator.isMyself(userId)) {
throw DomainErrors.CANNOT_UPDATE_SELF_ENABLED_STATUS.exception();
}
userService.switchEnableStatus(userId, true);
return JsonData.ok();
}

2
api/src/main/resources/static/index.html

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>databasir-frontend</title><script defer="defer" type="module" src="/js/chunk-vendors.45746587.js"></script><script defer="defer" type="module" src="/js/app.08e3c996.js"></script><link href="/css/chunk-vendors.8e1003a6.css" rel="stylesheet"><link href="/css/app.757c1ef3.css" rel="stylesheet"><script defer="defer" src="/js/chunk-vendors-legacy.54c3660b.js" nomodule></script><script defer="defer" src="/js/app-legacy.3d5e4b5d.js" nomodule></script></head><body><noscript><strong>We're sorry but databasir-frontend doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>databasir-frontend</title><script defer="defer" type="module" src="/js/chunk-vendors.45746587.js"></script><script defer="defer" type="module" src="/js/app.d1e6fea2.js"></script><link href="/css/chunk-vendors.8e1003a6.css" rel="stylesheet"><link href="/css/app.757c1ef3.css" rel="stylesheet"><script defer="defer" src="/js/chunk-vendors-legacy.54c3660b.js" nomodule></script><script defer="defer" src="/js/app-legacy.b8d396b4.js" nomodule></script></head><body><noscript><strong>We're sorry but databasir-frontend doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

2
api/src/main/resources/static/js/130-legacy.8b88285b.js

File diff suppressed because one or more lines are too long

1
api/src/main/resources/static/js/130-legacy.8b88285b.js.map

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/130.c7db75bc.js

File diff suppressed because one or more lines are too long

1
api/src/main/resources/static/js/130.c7db75bc.js.map

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/321-legacy.b0227d64.js → api/src/main/resources/static/js/321-legacy.5e095d04.js

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/321-legacy.b0227d64.js.map → api/src/main/resources/static/js/321-legacy.5e095d04.js.map

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/321.243dc4e3.js → api/src/main/resources/static/js/321.e07f090a.js

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/321.243dc4e3.js.map → api/src/main/resources/static/js/321.e07f090a.js.map

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/719-legacy.85eb5e28.js

File diff suppressed because one or more lines are too long

1
api/src/main/resources/static/js/719-legacy.85eb5e28.js.map

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/719.df03c200.js

File diff suppressed because one or more lines are too long

1
api/src/main/resources/static/js/719.df03c200.js.map

File diff suppressed because one or more lines are too long

4
api/src/main/resources/static/js/app-legacy.3d5e4b5d.js → api/src/main/resources/static/js/app-legacy.b8d396b4.js

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/app-legacy.3d5e4b5d.js.map → api/src/main/resources/static/js/app-legacy.b8d396b4.js.map

File diff suppressed because one or more lines are too long

4
api/src/main/resources/static/js/app.08e3c996.js → api/src/main/resources/static/js/app.d1e6fea2.js

File diff suppressed because one or more lines are too long

2
api/src/main/resources/static/js/app.08e3c996.js.map → api/src/main/resources/static/js/app.d1e6fea2.js.map

File diff suppressed because one or more lines are too long

1
core/src/main/java/com/databasir/core/domain/DomainErrors.java

@ -33,6 +33,7 @@ public enum DomainErrors implements DatabasirErrors {
DOWNLOAD_DRIVER_ERROR("A_10018", "驱动下载失败"),
INVALID_DATABASE_TYPE_URL_PATTERN("A_10019", "不合法的 url pattern"),
DOCUMENT_VERSION_IS_INVALID("A_10020", "文档版本不合法"),
CANNOT_UPDATE_SELF_ENABLED_STATUS("A_10021", "无法对自己执行启用禁用操作"),
;
private final String errCode;

112
databasir-sample-k3s.yaml

@ -0,0 +1,112 @@
apiVersion: v1
kind: Service
metadata:
name: databasir
spec:
ports:
- port: 8080
selector:
app: databasir
tier: backend
---
apiVersion: v1
kind: Service
metadata:
name: databasir-mysql
labels:
app: databasir
spec:
ports:
- port: 3306
selector:
app: databasir
tier: mysql
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: databasir-mysql
labels:
app: databasir
spec:
selector:
matchLabels:
app: databasir
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: databasir
tier: mysql
spec:
containers:
- image: mysql:5.7
name: "databasir-mysql"
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
- name: MYSQL_DATABASE
value: databasir
livenessProbe:
tcpSocket:
port: 3306
ports:
- containerPort: 3306
name: databasir-mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: databasir
labels:
app: databasir
spec:
selector:
matchLabels:
app: databasir
tier: backend
strategy:
type: Recreate
replicas: 1
template:
metadata:
labels:
app: databasir
tier: backend
template:
metadata:
labels:
app: databasir
tier: backend
spec:
containers:
- image: vrantt/databasir:latest
name: "databasir-sample"
env:
- name: DATABASIR_DB_URL
value: databasir-mysql
- name: DATABASIR_DB_USERNAME
value: root
- name: DATABASIR_DB_PASSWORD
value: "123456"
ports:
- containerPort: 8080
name: databasir
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: databasir
servicePort: 8080
Loading…
Cancel
Save