4261 Commits

Author SHA1 Message Date
5883818b91
refactor(backend): default badges, always return a badge (#8430)
* default badges, always return a badge

- default badges for trophy and verification
- always return a badge instead of null
- isDefault field on Badge

lint fixes

* default_verification svg

* add default-trophy

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
2025-04-23 17:12:24 +00:00
873cd6cd34
refactor(backend): allow to set selected badge-slot to null (#8421)
* allow to set selected badgeslot to null

Free a specific badge slot by setting it to null

* Update backend/src/schema/resolvers/users.ts

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
Co-authored-by: Max <maxharz@gmail.com>
2025-04-23 18:21:06 +02:00
7592fe29be
move graphql types into graphql folder (#8420) 2025-04-22 13:28:01 +00:00
74b79e0b14
fix faker image seed (#8422)
Images now display properly and there is diffent images now

allow to provide url, urls msut be valid in seed

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-22 11:06:27 +00:00
dependabot[bot]
cd044bbd0c
build(deps): bump sanitize-html from 2.15.0 to 2.16.0 in /backend (#8418)
Bumps [sanitize-html](https://github.com/apostrophecms/sanitize-html) from 2.15.0 to 2.16.0.
- [Changelog](https://github.com/apostrophecms/sanitize-html/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apostrophecms/sanitize-html/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: sanitize-html
  dependency-version: 2.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 19:35:09 +00:00
6f4d347f69
refactor(backend): separate queries (#8358)
* separate all queries into one file each

* fix merge error

* fix lint

---------

Co-authored-by: mahula <lenzmath@posteo.de>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-21 11:47:12 +00:00
5131752710
refactor(backend): lint @typescript-eslint/strict (#8408)
* lint @typescript-eslint/recommended

* lint @typescript-eslint/recommended-requiring-type-checking

fix type not detected locally due to wierd uuid typings

missing save

error not reported locally

* lint @typescript-eslint/strict

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-21 11:09:47 +00:00
b464a380ca
refactor(backend): lint @typescript-eslint/recommended-requiring-type-checking (#8407)
* lint @typescript-eslint/recommended

* lint @typescript-eslint/recommended-requiring-type-checking

fix type not detected locally due to wierd uuid typings

missing save

error not reported locally

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-21 10:32:44 +00:00
53f3a4e2e6
lint @typescript-eslint/recommended (#8406)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-21 12:01:53 +02:00
dependabot[bot]
f9368112de
build(deps): bump nodemailer from 6.10.0 to 6.10.1 in /backend (#8417)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.10.0 to 6.10.1.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.10.0...v6.10.1)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 6.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-19 19:29:39 +00:00
dependabot[bot]
26ac957eb5
build(deps-dev): bump @eslint-community/eslint-plugin-eslint-comments (#8415)
Bumps [@eslint-community/eslint-plugin-eslint-comments](https://github.com/eslint-community/eslint-plugin-eslint-comments) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-eslint-comments/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-eslint-comments/compare/v4.4.1...v4.5.0)

---
updated-dependencies:
- dependency-name: "@eslint-community/eslint-plugin-eslint-comments"
  dependency-version: 4.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-19 21:00:24 +02:00
8cf405c549
feat(backend): badges (#8391)
* delete all old badges

* reward/unrewardBadge

* verification Badges

* name all badged accordingly

* more tests, lint

* seed badges

* profileBadge mechanic

* badgesUnusedCount

* seed profileBadges set

* configure profile badge count

* insert badges db:data:badges:default

* seed commands to seed default badges and allow to seed branding data

* copy data migrations when building docker

* typo

* correct data:branding command & document it

* test new functionality

* Update backend/src/db/seed/badges.ts

Co-authored-by: Max <maxharz@gmail.com>

* Update backend/src/db/seed/badges.ts

Co-authored-by: Max <maxharz@gmail.com>

* Update backend/src/db/seed/badges.ts

Co-authored-by: Max <maxharz@gmail.com>

* naming coventions

* final naming fix

lint

fix build

fix badge type in test

renamed badge_ to trophy_

lint fixes

small renameing

fixes

fix users spec

fix webapp queries

fix display

* expose badge description

---------

Co-authored-by: Max <maxharz@gmail.com>
2025-04-17 23:08:54 +00:00
Moriz Wahl
89b0fa7a51
feat(backend): do not notify blocked or muted users (#8403)
* no more notifications of blocked or muted users in groups

* do not receive notifications on mentions or observed posts from muted users
2025-04-17 18:22:20 +00:00
Moriz Wahl
de4325cb50
feat(backend): only one email is sent although more notifications are triggered (#8400)
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-17 19:55:53 +02:00
Moriz Wahl
aee46552d6
fix(backend): flaky notifications on mention in group unit test (#8404) 2025-04-17 16:43:53 +00:00
Moriz Wahl
727713ac1d
mentiioned users in posts and comments of groups (#8392) 2025-04-16 16:04:31 +00:00
Moriz Wahl
9440ad5cc3
feat(backend): no notification mails to users online (#8397) 2025-04-16 15:34:29 +00:00
5d154bcb85
fix migrations (#8390)
async migrations should not call next()

Co-authored-by: mahula <lenzmath@posteo.de>
2025-04-16 11:08:30 +02:00
4bd42009fd
refactor(backend): fix is muted by me query (#8365)
* use EXISTS for isMutedByMe

* corrected query in gql

---------

Co-authored-by: mahula <lenzmath@posteo.de>
2025-04-15 18:17:13 +02:00
2d8fe8a941
fix(backend): block/mute chat (#8364)
* no notification when blocked

* no notifications for muted users

* move tests from emssage to notification middleware

* fix test

* also dont update unreadRoomCount when user is muted

---------

Co-authored-by: mahula <lenzmath@posteo.de>
2025-04-15 10:38:48 +02:00
dependabot[bot]
b31a439c8b
build(deps): bump graphql-upload from 11.0.0 to 13.0.0 in /backend (#8375)
Bumps [graphql-upload](https://github.com/jaydenseric/graphql-upload) from 11.0.0 to 13.0.0.
- [Release notes](https://github.com/jaydenseric/graphql-upload/releases)
- [Changelog](https://github.com/jaydenseric/graphql-upload/blob/master/changelog.md)
- [Commits](https://github.com/jaydenseric/graphql-upload/compare/v11.0.0...v13.0.0)

---
updated-dependencies:
- dependency-name: graphql-upload
  dependency-version: 13.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-15 01:10:42 +00:00
dependabot[bot]
adcbf81a53
build(deps-dev): bump the typescript group across 1 directory with 2 updates (#8383)
Bumps the typescript group with 2 updates in the /backend directory: [ts-jest](https://github.com/kulshekhar/ts-jest) and [tsc-alias](https://github.com/justkey007/tsc-alias).


Updates `ts-jest` from 29.3.1 to 29.3.2
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.3.1...v29.3.2)

Updates `tsc-alias` from 1.8.14 to 1.8.15
- [Release notes](https://github.com/justkey007/tsc-alias/releases)
- [Commits](https://github.com/justkey007/tsc-alias/compare/v1.8.14...v1.8.15)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: typescript
- dependency-name: tsc-alias
  dependency-version: 1.8.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: typescript
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 20:29:58 +00:00
dependabot[bot]
1afd9576ce
Bump bcryptjs from 2.4.3 to 3.0.2 in /backend (#8224)
Bumps [bcryptjs](https://github.com/dcodeIO/bcrypt.js) from 2.4.3 to 3.0.2.
- [Release notes](https://github.com/dcodeIO/bcrypt.js/releases)
- [Commits](https://github.com/dcodeIO/bcrypt.js/compare/2.4.3...v3.0.2)

---
updated-dependencies:
- dependency-name: bcryptjs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 18:43:23 +02:00
dependabot[bot]
af5f506d22
build(deps-dev): bump eslint-import-resolver-typescript in /backend (#8369)
Bumps [eslint-import-resolver-typescript](https://github.com/import-js/eslint-import-resolver-typescript) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/import-js/eslint-import-resolver-typescript/releases)
- [Changelog](https://github.com/import-js/eslint-import-resolver-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-import-resolver-typescript/compare/v4.3.1...v4.3.2)

---
updated-dependencies:
- dependency-name: eslint-import-resolver-typescript
  dependency-version: 4.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-13 12:49:18 +00:00
dependabot[bot]
25552431b5
build(deps): bump ioredis from 4.16.1 to 5.6.1 in /backend (#8371)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.16.1 to 5.6.1.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v4.16.1...v5.6.1)

---
updated-dependencies:
- dependency-name: ioredis
  dependency-version: 5.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-13 09:03:41 +00:00
dependabot[bot]
63cd1d36b1
build(deps): bump dotenv from 16.4.7 to 16.5.0 in /backend (#8372)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.7 to 16.5.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.7...v16.5.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 16.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-12 20:55:41 +00:00
dependabot[bot]
4f375c3f76
build(deps-dev): bump @types/node from 22.14.0 to 22.14.1 in /backend (#8374)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.14.0 to 22.14.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.14.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-12 19:18:17 +00:00
8aa00216df
v3.3.0 (#8380)
regenerate changelog
2025-04-12 12:47:01 +00:00
Wolfgang Huß
2c7bfc700e
chore(backend): add e-mail setting for our new 'mailserver' to our backend .env.template (#8359)
* Add e-mail setting for our new 'mailserver' to our backend .env.template

* Reverse to default settings

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-12 11:27:03 +00:00
mahula
7d9b0e6437
refactor(backend): set up smtp pooling for nodemailer (#8167)
* backend: active SMTP pooling in Nodemailer configuration

* backend: add max SMTPconnections and messages to Nodemailer configuration

* move transport outside function to ensure pooling can work

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-12 12:59:56 +02:00
117c0d75e7
refactor(backend): user graphql (#8354)
* refactor user graphql

- remove isLoggedIn query
- currentUser query only for authenticated, currenUser always returns a
User
- currentUser query implementation uses neo4jgraphql with id parameter
- remove custom email field from user
- fix bug in frontend when there is no categories

* remove comment

* remove unused filter

* fix currentuser test

* fixedswitchUserRole mutation

* fix categories
2025-04-12 00:50:16 +00:00
fa0280f9e9
fix block user (#8363) 2025-04-11 23:44:21 +00:00
Max
caeff070b7
feat(webapp): add mute/unumute group to menu (#8335)
* basics to notify a user when a followed user posted

* do not notify following user on posts in groups

* followig user wrote post notification

* notify regular group members when a new post is posted in the group

* mute and unmute groups

* clean database at end

* locale for post in group notification

* post in group notification triggers correctly

* email settings for post in group

* Add mute/unumute group to menu (WIP)

* Add mute group functionality (WIP)

* Add locales; use mute/unmute mutations, cleanup tests

* Overhaul group content menu test

* Rename isMuted to isMutedByMe and add it to group query

* Add German and English locales

* Add spanish translations

* Add missing translation keys (with null values)

* Remove console statement

* Add snapshot

* Replace mount by render

* Mock Math.random(), add tests for mute/unmute

* Use container instead of baseElement for snapshots

* fix group slug tests

* undo wrong variable naming

* rename parameter to groupId of mute/unmute group mutation

* rename parameter to groupId of mute/unmute group mutation

* only non pending members have access to the comtext menu

---------

Co-authored-by: Moriz Wahl <moriz.wahl@gmx.de>
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-11 23:10:42 +00:00
Moriz Wahl
7a44e1aa4e
test that there is no email sent when no notification (#8362) 2025-04-11 23:49:31 +02:00
Moriz Wahl
aedf8d93c7
feat(backend): notify posts in groups (#8346)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-11 20:50:59 +00:00
Moriz Wahl
3734e2ef56
feat(backend): notify users when a followed user posted (#8313) 2025-04-11 17:56:11 +02:00
Wolfgang Huß
bda0de0249
fix(backend): fixing admin email notification settings (#8356)
* Fix admin e-mail notification settings

* Optimize migration '20250405030454-email-notification-settings.ts' down

* Update backend/src/db/admin.ts

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-11 10:00:15 +00:00
711061b0c0
fix(backend): error when there is an abandoned email (#8315)
* fix error when there is an abandoned email

We check beforehand if an email has an user attached, but we never
delete an email without user. This will violate a unique constraint
blocking that particular email from ever being used again.

* fix tests
2025-04-10 18:17:51 +00:00
Moriz Wahl
abd13a6cff
migrate commenting users to observe commented posts (#8308) 2025-04-10 19:36:26 +02:00
ab6fe37c3e
refactor(backend): new chat message notification email (#8357)
* new chat message notification email

- new mail features name in subject and text

* fix english version

* typo

* fix typos

* adjust tests
2025-04-10 16:38:51 +00:00
fcc99ab58e
refactor(backend): clean migrate scripts (#8317)
* clean migrate scripts

- refactor migrate:init
  - separate admin seed
  - separate categories seed
- rework backend README regarding the database
- remove `db:clean` command as its a duplicate of `db:reset`
- remove `__migrate` helper alias

* renamed clean.ts to reset.ts

* set indices & constrains in init function

* fix comment

* disable migrations touching indices

* remove obsolete comment

* always run init on kubernetes

* reset db with or without migrations

* lint fixes

* Refine 'README.md'

* Refine more 'README.md'

* fix lint

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-10 09:52:49 +02:00
Max
1b07b06ca7
feat(webapp): notification settings frontend (#8320)
Implements detailed settings for email notifications.

Issues
relates 🚀 [Feature] Drei neue Interaktions-Benachrichtigungen #8280
2025-04-09 13:21:38 +00:00
Moriz Wahl
fe7bab4675
posts and comments created by the factory set the observe relation (#8344) 2025-04-09 08:36:56 +00:00
f782032563
refactor(backend): lint - import/order (#8350)
* lint - import/no-relative-parent-imports

fix build error

* fix md

* lint import/order

enabled rule import/order and fixed impot order in each file
2025-04-09 09:44:48 +02:00
a4f391930c
lint - import/no-relative-parent-imports (#8349)
enable import/no-relative-parent-imports
2025-04-08 23:18:07 +02:00
16ada68a3a
lint - update plugin promise and cleanup rules (#8343)
- use of promise:recommended
- update plugin
- apply new rules
2025-04-08 09:05:17 +00:00
59c145c1f9
lint plugin n - update and cleanup (#8342)
- Update plugin n to fix a deprecation warning
- Order n rules according to docu
- use n:recommended
- comment out all rules from recommened
- enable some rules
2025-04-08 08:35:49 +00:00
f7c371c9ce
lint import/no-extraneous-dependencies (#8341) 2025-04-08 07:35:11 +00:00
dependabot[bot]
666d2b67d7
build(deps): bump express from 4.21.2 to 5.1.0 in /backend (#8322)
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 5.1.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.2...v5.1.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 5.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-08 02:14:56 +02:00
dependabot[bot]
f01d2b43e2
build(deps): bump mime-types from 2.1.35 to 3.0.1 in /backend (#8298)
Bumps [mime-types](https://github.com/jshttp/mime-types) from 2.1.35 to 3.0.1.
- [Release notes](https://github.com/jshttp/mime-types/releases)
- [Changelog](https://github.com/jshttp/mime-types/blob/master/HISTORY.md)
- [Commits](https://github.com/jshttp/mime-types/compare/2.1.35...v3.0.1)

---
updated-dependencies:
- dependency-name: mime-types
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 11:39:44 +00:00