From 1980e14e88f64dd58e87af564baca6b4ff3ac6a0 Mon Sep 17 00:00:00 2001 From: Rene Kievits Date: Wed, 22 Oct 2025 02:07:56 +0200 Subject: [PATCH] add login with sessian and cleanup --- .gitea/workflows/deploy.yaml | 9 +- .gitignore | 41 ++++- client/.dockerignore | 27 +++ client/src/pages/index.vue | 14 +- client/src/pages/login.vue | 56 +++++++ client/src/router/index.ts | 16 ++ client/src/stores/auth.ts | 109 ++++++++++++ client/src/typed-router.d.ts | 5 + docker-compose.yml | 6 +- package.json | 5 - pnpm-lock.yaml | 23 --- server/.dockerignore | 27 +++ server/.env | 0 server/package.json | 8 + server/pnpm-lock.yaml | 223 +++++++++++++++++++++++++ server/src/api/v1/auth/index.ts | 117 +++++++++++++ server/src/api/v1/auth/ldap.ts | 31 ++++ server/src/api/v1/key/index.ts | 24 ++- server/src/api/v1/subject/kanji.ts | 1 - server/src/api/v1/user/index.ts | 22 +++ server/src/api/v1/wanikani/sync.ts | 16 +- server/src/db/connect.ts | 2 +- server/src/index.ts | 61 ++++++- server/src/middleware/auth.ts | 21 +++ server/src/models/apikey.model.ts | 1 + server/src/models/assignments.model.ts | 1 + server/src/models/kanji.model.ts | 1 + server/src/models/user.model.ts | 9 + server/src/models/vocabulary.model.ts | 1 + server/src/services/wanikaniService.ts | 18 +- server/src/types/wanikani.ts | 3 + 31 files changed, 830 insertions(+), 68 deletions(-) create mode 100644 client/.dockerignore create mode 100644 client/src/pages/login.vue create mode 100644 client/src/stores/auth.ts delete mode 100644 package.json delete mode 100644 pnpm-lock.yaml create mode 100644 server/.dockerignore delete mode 100644 server/.env create mode 100644 server/src/api/v1/auth/index.ts create mode 100644 server/src/api/v1/auth/ldap.ts create mode 100644 server/src/api/v1/user/index.ts create mode 100644 server/src/middleware/auth.ts create mode 100644 server/src/models/user.model.ts diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 6fe48ab..0b42f52 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -10,6 +10,10 @@ jobs: build: runs-on: ubuntu-latest + env: + ACCESS_TOKEN_SECRET: ${{ secrets.ACCESS_TOKEN_SECRET }} + REFRESH_TOKEN_SECRET: ${{ secrets.REFRESH_TOKEN_SECRET }} + steps: - name: Checkout repository uses: actions/checkout@v4 @@ -32,6 +36,9 @@ jobs: - name: Build and Push Server run: | echo "🚀 Building Server..." - docker buildx build --load -t crylia/japanese-srs-trainer-wanikani-server:latest -f server/Dockerfile server + docker buildx build \ + --build-arg ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET} \ + --build-arg REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET} \ + --load -t crylia/japanese-srs-trainer-wanikani-server:latest -f server/Dockerfile server docker tag crylia/japanese-srs-trainer-wanikani-server:latest 192.168.0.26:5008/japanese-srs-trainer-wanikani-server:latest docker push 192.168.0.26:5008/japanese-srs-trainer-wanikani-server:latest diff --git a/.gitignore b/.gitignore index 3c3629e..2774f14 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,40 @@ -node_modules +# Node modules +node_modules/ +**/node_modules/ + +# Vite / Vue build output +dist/ +build/ +.vite/ + +# Logs +npm-debug.log* +yarn-debug.log* +pnpm-debug.log* + +# Environment files +.env +.env.local +.env.*.local + +# TypeScript +*.tsbuildinfo + +# VSCode +.vscode/ + +# JetBrains +.idea/ + +# System +.DS_Store +Thumbs.db + +# Lint / Typegen +*.d.ts +*.eslintcache + + +# Ignore temporary files +*.tmp +*.temp diff --git a/client/.dockerignore b/client/.dockerignore new file mode 100644 index 0000000..a698bb1 --- /dev/null +++ b/client/.dockerignore @@ -0,0 +1,27 @@ +# Node modules +node_modules +**/node_modules + +# Git +.git +.gitignore + +# Logs +*.log + +# Local dev / editor +.vscode +.idea + +# Build output +dist +build +.vite + +# TypeScript build info +*.tsbuildinfo + +# Environment files (if you want them injected via Docker ENV) +.env +.env.local +.env.*.local diff --git a/client/src/pages/index.vue b/client/src/pages/index.vue index 1929398..dcc312e 100644 --- a/client/src/pages/index.vue +++ b/client/src/pages/index.vue @@ -1,5 +1,10 @@