2226 Commits

Author SHA1 Message Date
f6426fee2a
removed groupPinned field resolver as it is inefficient when we require the value in database anyways. 2026-01-16 18:30:56 +01:00
7cec77ffe4
corrected database type 2026-01-16 18:27:41 +01:00
59208aa908
fix sort order pins
fix group pins to be limited to the one group

remove console
2026-01-16 18:27:41 +01:00
b2fa9656f4
remove stuff 2026-01-16 18:27:41 +01:00
8c41c1769b
unpinpost 2026-01-16 18:27:41 +01:00
66a592490d
groupPinned field on post 2026-01-16 18:27:41 +01:00
4f50c741d0
working pinGroupPost mutation (permissions not included) 2026-01-16 18:27:41 +01:00
808e44dbf6
define mutations in schema 2026-01-16 18:27:41 +01:00
d4486b46b0
implement currenltyPinnedPostsCount on Group 2026-01-16 18:27:41 +01:00
5d230fed1c
fix query (no write access) 2026-01-16 18:27:41 +01:00
d7eb284ecd
backend pin&unpin prototype 2026-01-16 18:27:41 +01:00
8ceb5eab6e
prototype frontend 2026-01-16 18:27:41 +01:00
0b76f77334
fix group query with isMember = false 2026-01-16 18:27:23 +01:00
3e21ebf736
simplify group query 2026-01-15 13:36:36 +01:00
48ed6d99f6
fix myRole field query 2026-01-15 13:07:39 +01:00
e4717e0d89
fix(backend): fix potential leak in updateOnlineStatus (#8923)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-27 14:37:12 +02:00
de65a380ab
fix(backend): fix naming of PRIVATEKEY (#8905) 2025-09-20 11:47:29 +02:00
45d2283138
refactor(backend): externalize all remaining queries in spec files (#8902)
* refactor: externalize all remaining queries in spec files

* User with different queries due to permissions

* fix notification:groups

* fix hashtagsmiddleware

* fix blockedUsers

* fix softDeleteMiddleware

* fix shouts.spec

* fix userInteractions spec

* fix mutedUsers spec

* seocialMedia spec

* fix notificationMiddleware.spec

* fix user.spce & fix undefined activeCategories

* fix notifications.spec

* fix userInteractions.spec

* fix blockedUsers & mutedUsers spec

* remove unused comment

* fix locations spec

* fix orderByMiddleware & spec

* fix lint

* fix shout spec
2025-09-18 17:43:15 +02:00
4ef93e0aad
fix(backend): statistics for admin only (#8887)
* statistics for admin only

* adjust tests
2025-09-15 09:51:00 +00:00
Wolfgang Huß
d9a7c1adc5
feat(backend): improve e-mail deliverability with sender name (#8888)
* Avoid early html encoding for the remaining '='

* Make 'EMAIL_DEFAULT_SENDER' required env

* Implement sender and recipient name on send e-mails nodemailer conform

* Fix e-mail snapshots
2025-09-13 11:39:39 +00:00
ebb8ef4f0e
remove PRIVATE_KEY_PASSPHRASE from config and remove its requirement (#8889) 2025-09-13 10:04:45 +00:00
047070c5b3
fix s3 migration (#8890) 2025-09-13 11:48:20 +02:00
Wolfgang Huß
985a8c3720
fix(backend): fix e-mail character encoding (#8886)
* Improve e-mail base design

* Refine e-mail design

* Adjust e-mail snapshots

* Avoid early html encoding for all parameters in locals

* Avoid early html encoding for all '= t()'

* Avoid early html encoding for the remaining '='
2025-09-11 16:18:15 +02:00
Wolfgang Huß
d437c6d7f4
feat(backend): improve e-mail base design (#8884)
* Improve e-mail base design

* Refine e-mail design

* Adjust e-mail snapshots
2025-09-11 13:04:31 +02:00
66b5e61c15
refactor(backend): test block & unblock user (#8879)
* queries

* test block users & small refactor on the resolver

* require 92% coverage (+2%)

* update according to review

* use cypher instead of neode
2025-09-10 18:26:28 +02:00
380d3401c0
update snapshots (#8885) 2025-09-10 15:05:57 +00:00
1e64590099
renamed resolver specs to make it easier to find the resolver (#8880) 2025-09-10 09:32:55 +00:00
74f6c5b329
refactor(backend): externalize gql queries in backend specs (#8881)
* externalize gql queries in backend specs

* externalize all queries & mutations where easily possible

missing change

* rename old queries & remove unnecessary function call

* fix tests - notifications

* fix tests - moderation

* remove _CreatePostMutation file

* remove _filterPosts & _postQuery files
2025-09-08 10:17:01 +00:00
3e58a1016a
fix(backend): fix notification author url (#8837)
* fix notification author url

* updated snapshots
2025-08-22 03:31:56 +02:00
Robert Schäfer
00da9e8ecb
feat(backend): resize images with imagor (#8558)
* feat(backend): resize images with imagor

Open questions:
* Do we have external URLs for images? E.g. we have them for seeds. But
  in production?

* Do we want to apply image transformations on these as well? My current
implementation does not apply image transformations as of now. If we
want to do that, we will also expose internal URLs in the kubernetes
Cluster to the S3 endpoint to the client.

TODOs:
* The chat component is using a fixed size for all avatars at the moment.
Maybe we can pair-program on this how to implement responsive images in
this component library.

Commits:
* do not replace upload domain url in the database

* fix all webapp specs

* refactor: remove behaviour we won't need

We don't want to apply image transformations on files, right?

* refactor: replace the domain on read not on write

* wip: webapp fixes

* refactor(backend): add another url to config

I've given up. There seems to be no nice way to tell the minio to return
a location which differs from it's host name.

* refactor: add test for s3Service

* refactor(backend): proxy minio via backend in local development

Commits:
* provide tests for message attachments
* remove S3_PUBLIC_URL config value

* refactor: follow @ulfgebhardt's review

* add missing environment variable

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-08-19 10:11:12 +02:00
04dec08d04
fix(backend): delete follow relations for deleted users (#8805)
* delete follows

* migration-deleted-user-follows

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-08-07 10:20:32 +00:00
1612d03b52
fix(backend): replace slug package with slugify (#8807)
* replace slug with slugify

* replace slug with slugify in root package.json

* remove undocumented characters

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-08-07 09:44:19 +00:00
e0017bc4dd
fix(backend): update jest packages (#8806)
* update jest & related packages

* fix deprecation errors
2025-08-05 03:57:02 +00:00
Robert Schäfer
3b2b3f0014
refactor(backend): remove obsolete code (#8752)
We kept this code for backwards compatibility but since we already deployed S3 to our kubernetes cluster and we're using it locally, let's remove this code. It will also make it easier to implement the image resize service as it reduces the total amount of code to maintain.

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-07-14 07:28:07 +00:00
Robert Schäfer
e0719c405e
refactor(backend): use apollo test setup (#8750)
.. in two more specs.

Apparently this got overlooked. In #8558 these tests will fail.
2025-07-07 20:46:34 +07:00
Robert Schäfer
61813c4eb8
refactor(backend): put config into context (#8603)
This is a side quest of #8558. The motivation is to be able to do dependency injection in the tests without overwriting global data. I saw the first merge conflict from #8551 and voila: It seems @Mogge could have used this already.

refactor: follow @Mogge's review

See: https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/8603#pullrequestreview-2880714796

refactor: better test helper methods

wip: continue refactoring

wip: continue posts

continue

wip: continue groups

continue registration

registration

continue messages

continue observeposts

continue categories

continue posts in groups

continue invite codes

refactor: continue notificationsMiddleware

continue statistics spec

followed-users

online-status

mentions-in-groups

posts-in-groups

email spec

finish all tests

improve typescript

missed one test

remove one more reference of CONFIG

eliminate one more global import of CONFIG

fix language spec test

fix two more test suites

refactor: completely mock out 3rd part API request

refactor test

fixed user_management spec

fixed more locatoin specs

install types for jsonwebtoken

one more fetchmock

fixed one more suite

fix one more spec

yet another spec

fix spec

delete whitespaces

remove beforeAll that the same as the default

fix merge conflict

fix e2e test

refactor: use single callback function for `context` setup

refactor: display logs from backend during CI

Because why not?

fix seeds

fix login

refactor: one unnecessary naming

refactor: better editor support

refactor: fail early

Interestingly, I've had to destructure `context.user` in order to make
typescript happy. Weird.

refactor: undo changes to workflows - no effect

We're running in `--detached` mode on CI, so I guess we won't be able to
see the logs anyways.

refactor: remove fetch from context after review

See:

refactor: found an easier way for required props

Co-authored-by: Max <maxharz@gmail.com>
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-07-03 11:58:03 +02:00
Moriz Wahl
8ae4e309c3
fix(backend): mask jwt token in log (#8737) 2025-07-01 14:41:45 +02:00
Robert Schäfer
c9b429878a
refactor(backend): fix tests for #8714 (#8716)
This fixes the tests for #8714.

The Images type now has the callbacks only for backwards compatibility with local uploads. Next step is to remove the obsolete code and make S3 configuration parameters required.
2025-06-30 10:18:21 +00:00
Max
32927ea96e
fix(backend): refactor S3 usage and always apply protocol fix (#8714)
- Cleanup s3 code, so we use the same code for uploading files in chat and images in posts.
- Protocol is added to the location, when missing
2025-06-30 11:59:57 +02:00
Moriz Wahl
f3788b84a5
feat(backend): all db node properties (#8635)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-25 21:21:41 +02:00
Moriz Wahl
4eff0fb497
fix(webapp): catch possibe errors on request geolocation (#8640)
* catch possibe errors on request geolocation

* proper toast error

* remove deprecated request package, use node fetch instead, set timeout

---------

Co-authored-by: Max <maxharz@gmail.com>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-25 17:45:46 +00:00
Max
cc96698300
Put message creation in a transaction with file uploads to avoid empty messages (#8694)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-20 18:32:00 +00:00
Moriz Wahl
3216b50d1a
feat(backend): logger (#8655)
* add logger to context

* add apollo logger

* apollo logger plugin must be set on createServer to avoid spam in unit tests
2025-06-19 12:59:15 +00:00
Max
d656ac00a1
Add protocol if missing (#8689)
Apparently Hetzner returns locations without protocol. So we add it if necessary.
2025-06-19 12:43:06 +02:00
a0c205b379
feat(backend): file upload chat backend (#8657)
* Prepare image uploads in chat

* files instead of images

* Fix file type and query

* Add dummy data to resolver

* fix graphql types

* Fix file upload, remove unncessary code

* Re-add fetch

* Fix room order after sent message

* Update backend/src/graphql/queries/messageQuery.ts

* Move room to top of list when a message is received

* working prototype chat file upload

* remove console

* allow to upload all kinds of files

* multiple images

* revert changes in S3 Images

* tag mimetype

* accept any file

* lint fix

* remove snapshot flakyness

* remove whitelist test

* fix messages spec

* fix query

* more query fixes

* fix seed

* made message resolver tests independent

* lint

* started specc for attachments

* more tests & fixes

* fix empty room error

* remove console logs

* fix tests

* fix createRoom last Messsage error properly

* lint fixes

* reduce changeset

* simplify config check

* reduce changeset

* missing change

* allow speech capture

* Fix file download

* Implement proper download

---------

Co-authored-by: Maximilian Harz <maxharz@gmail.com>
2025-06-13 19:02:37 +00:00
e6d3e5132e
refactor(backend): reduce seed time (#8662)
* reduce seed time

- only 1000 additional users
- chat only for 100 additional users
- logs to see where its at

* lint
2025-06-13 10:57:49 +00:00
a0e4b49833
fix(webapp): fix group performance (#8656)
* seed more Yoga group members

* implement groupMembers pagination

* load limited amount of group members

* force show all members in group member list

* remove unused import

* - added virtual scrolling to ProfileList

* - fixed linter error

* load all when clicking the button

* seed 3000 users

* cleanup

* lint

* hide search when not all members are visible

* fix email factory

* - increased profileListVisibleCount to 6

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
2025-06-11 17:46:57 +02:00
aaf3b34125
fix flaky tests (#8638) 2025-06-04 23:40:48 +02:00
Moriz Wahl
df4275c5cd
feat(webapp): location on registration (#8608)
* feat(webapp): location on registration

* add location name to signup verification, allow location query

* location name can be prompted in regeistration

* default value null for locationName

* Prevent ds-select overflow

* Remove location name from label

* Add margin-bottom to location-select

* group location is not affected by REQUIRE_LOCATION, previous location is shown

* Update webapp/components/Registration/RegistrationSlideCreate.vue

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

* Replace more '16px' by '$space-small' and remove class 'password-strength'

* Add class 'password-strength' again

* property for previous location

---------

Co-authored-by: Maximilian Harz <maxharz@gmail.com>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-04 15:16:24 +02:00
e87a33eb3f
feat(backend): push posts (#8609)
* push posts

push posts

* unpush posts

* fix comment query

* locales

* fix locales

* fix tests

* Update webapp/locales/de.json

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

* Update webapp/locales/de.json

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

* Update webapp/locales/de.json

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

* fix unpushedSuccessfully english message

* remove paremeters from unpushPost

* rename pushPostToTop -> pushPost, tests

* update locales & tests webapp

* fix lint

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-03 17:57:21 +02:00