feature: forbidden disable/enable self (#55)

* feat: add k3s sample config

* feat: update frontend resource
This commit is contained in:
vran 2022-03-20 13:22:39 +08:00 committed by GitHub
parent c0cc333376
commit e1854b0b49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 137 additions and 17 deletions

View File

@ -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();
}

View File

@ -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>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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 Normal file
View File

@ -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