Commit graph

449 commits

Author SHA1 Message Date
renovate[bot]
16b60ddde7 chore(deps): update dependency typescript to v5.1.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-03 11:14:03 +02:00
renovate[bot]
1f292de377 chore(deps): update node.js to f3fe00f
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-03 11:13:04 +02:00
renovate[bot]
222d4b23ae chore(deps): update dependency eslint to v8.42.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-03 11:12:54 +02:00
Tilman Vatteroth
753c6e593f refactor: remove isomorphic-ws
The package caused some issues while working on other features.
Mostly because bundlers have been unable to determine the correct
websocket constructor.
So I replaced it with a more object-oriented approach.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-02 17:40:25 +02:00
renovate[bot]
fd78605657 chore(deps): update yarn to v3.6.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 08:36:15 +02:00
renovate[bot]
c9b98f6185 chore(deps): update dependency @types/jest to v29.5.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-31 20:54:58 +02:00
Tilman Vatteroth
d1ce1cb3e4 refactor: turn random word list source from json to ts
This prevents future import issues

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-30 09:17:05 +02:00
renovate[bot]
e510a41496 chore(deps): update typescript-eslint monorepo to v5.59.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 22:50:19 +00:00
renovate[bot]
2cb5b91d76 fix(deps): update definitelytyped
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-24 21:22:34 +02:00
renovate[bot]
c67e9bef60 fix(deps): update dependency minio to v7.1.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-24 21:08:48 +02:00
renovate[bot]
763cd62bfd fix(deps): update nestjs packages to v9.4.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-24 00:34:30 +00:00
renovate[bot]
0b025a41ab chore(deps): update typescript-eslint monorepo to v5.59.7
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-23 17:28:56 +00:00
renovate[bot]
d7663e3090 chore(deps): update dependency eslint to v8.41.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-21 19:47:03 +02:00
Tilman Vatteroth
11ccd678de test: add test for permissions guard
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
a852c79947 refactor: replace permission check methods with ordered permission enum
This commit replaces the "mayWrite", "mayRead" and "checkPermissionOnNote"
functions with one that returns a sortable permission value.
This is done because many places in the code need to do actions based on the fact if
the user has no, read or write access. If done with the may-functions then the permission
data need to be looked through multiple times.

Also, the whole check code is split into more functions that are tested separately and make it easier
to understand the process.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
4e298cccfb refactor: make class fields of permissions guard read-only
They're only read and never written after the construction

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
6e0e63688b refactor: allow only one required permission in require-permission decorator
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
9ca6485219 refactor: extract permission metadata key
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
488238d854 refactor: rename "Permissions" enum to "RequiredPermission"
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
6b73016583 refactor: rename "Permissions" decorator to "RequirePermission"
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
4c384cc8de test: add test for get note interceptor
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
b1dc383a7a refactor: use "extractNoteFromRequest" in permission guard
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
ab5aebc9c4 refactor: extract "extract note from request" logic into separate function
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
65fb110a1e refactor: move permissions decorator and guard into permissions directory
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
22f0abbfbe fix: remove redundant permission guard annotations
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
renovate[bot]
4b44277660 fix(deps): update dependency rimraf to v5.0.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-18 03:43:38 +00:00
renovate[bot]
2707c76fa3 chore(deps): update nestjs packages
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-17 21:55:02 +02:00
renovate[bot]
0cbcf2f23e fix(deps): update dependency @nestjs/schedule to v2.2.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-17 16:38:16 +00:00
renovate[bot]
c3806f3e5b chore(deps): update node.js to 4559bc0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-17 02:21:52 +00:00
renovate[bot]
bf97545b5d fix(deps): update nestjs packages
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-16 17:40:26 +02:00
renovate[bot]
a4be190005 fix(deps): update dependency @types/node-fetch to v2.6.4
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-16 13:31:03 +00:00
renovate[bot]
500ab6d8b9 chore(deps): update typescript-eslint monorepo to v5.59.6
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-16 10:01:00 +00:00
Avinash
e73d28dba1 feat(backend): added test realtime note service
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-05-15 20:49:59 +02:00
Avinash
d15a8b18d9 fix(backend): updated realtime connection's acceptEdit, close connection based on permission
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-05-15 20:49:59 +02:00
renovate[bot]
c6e283a111 fix(deps): update dependency pg to v8.11.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-15 18:16:52 +02:00
Tilman Vatteroth
e3a3690b58 refactor(realtime): solve circle dependencies in realtime-user-status-adapter.ts
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-15 17:59:28 +02:00
Tilman Vatteroth
39fff87f52 fix: migrate import code
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-12 19:14:34 +02:00
renovate[bot]
a3232a816b chore(deps): update dependency @tsconfig/node18 to v2.0.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-12 19:14:34 +02:00
renovate[bot]
1af15a1aec fix(deps): update dependency @zxcvbn-ts/language-common to v3.0.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-12 19:01:27 +02:00
renovate[bot]
994ef52ca7 fix(deps): update zxcvbn-ts to v3.0.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-11 10:02:54 +02:00
Tilman Vatteroth
23901d1454 chore: change recommended and CI node version to v20
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-10 13:43:05 +02:00
renovate[bot]
ef1c59ac51 fix(deps): update dependency typeorm to v0.3.16
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-10 01:13:25 +00:00
renovate[bot]
3e3e574dc6 fix(deps): update dependency node-fetch to v2.6.11
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-09 22:34:15 +02:00
Tilman Vatteroth
d29e840bc6 fix(realtime): allow realtime user status updates from users that have read-only access
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 20:33:23 +02:00
Tilman Vatteroth
b199cdba67 test: increase coverage of constructor tests
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
Tilman Vatteroth
2f59869e12 fix: retrieve read-only state for realtime user status adapter from connection
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
Tilman Vatteroth
f012282a41 fix: restore of test state
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
Tilman Vatteroth
02a3b7f07b refactor: make displayName readonly
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
Tilman Vatteroth
3c1ea7bda9 fix: allow change of accept edits in realtime connection
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
Tilman Vatteroth
eebbb79d08 fix: retrieve read-only state for y-doc-sync-server-adapter from connection
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
renovate[bot]
0dcfb0524c chore(deps): update dependency @types/node to v18.16.6
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-09 11:30:41 +02:00
renovate[bot]
efb96bd259 fix(deps): update dependency node-fetch to v2.6.10
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-08 21:58:37 +02:00
renovate[bot]
6698f49af5 chore(deps): update typescript-eslint monorepo to v5.59.5
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-08 21:48:54 +02:00
Yannick Bungers
ed3c688e8b refactor: extract mocking in permissions.service.spec.ts
Signed-off-by: Yannick Bungers <git@innay.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
d73bbcaeff fix: increase test coverage
Signed-off-by: Yannick Bungers <git@innay.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
dad60a25ea fix: change logging from id to publicId in media upload
Signed-off-by: Yannick Bungers <git@innay.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
c20e20b30a refactor: exclude create permission from note permission check
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
fad5e1e22e test: add private api tests for checkPermissionOnNote and checkMediaDeletePermission
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
001a49329c refactor: extract permission checking from controllers and guard
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
485f7cd338 feat: Add guest file uploads and add deletion for note owners
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
0f464dedfe fix: clean up decorators in the public notes.controller.ts
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 20:45:15 +02:00
Yannick Bungers
d369132519 fix: add CompleteRequest type to have better type checks for HTTP-Request attribute injection.
Signed-off-by: Yannick Bungers <git@innay.de>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 20:45:15 +02:00
Tilman Vatteroth
0263c09ce1 fix(deps): migrate zxcvbn
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 19:37:41 +02:00
renovate[bot]
2c3e8662f3 fix(deps): update dependency @zxcvbn-ts/language-common to v3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-07 19:37:41 +02:00
renovate[bot]
53e3be7448 fix(deps): update dependency @zxcvbn-ts/core to v3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-07 19:37:41 +02:00
renovate[bot]
894f65d5ca fix(deps): update dependency @zxcvbn-ts/language-en to v3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-07 19:18:47 +02:00
renovate[bot]
d734163e5f chore(deps): update dependency eslint to v8.40.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-06 17:29:35 +02:00
renovate[bot]
c9d0201452 chore(deps): update definitelytyped
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-06 17:29:20 +02:00
renovate[bot]
a21fef5956 chore(deps): update dependency @types/node to v18.16.4
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-05 08:28:21 +00:00
renovate[bot]
a637556832 chore(deps): update node.js to 6e56967
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-05 08:08:08 +00:00
Tilman Vatteroth
e02221acd2 fix: don't create user permissions for owner
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-04 22:34:24 +02:00
Tilman Vatteroth
825b3b72ff test: add e2e tests for note permissions
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-04 22:34:24 +02:00
renovate[bot]
122d3e6354 fix(deps): update dependency yjs to v13.6.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-04 17:24:04 +02:00
Tilman Vatteroth
a5e12b9ad0 fix(backend): fix extraction body values in permission controllers
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-04 14:54:37 +02:00
renovate[bot]
9d5ec78696 chore(deps): update node.js to 1d34273
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-03 09:05:57 +00:00
renovate[bot]
993d0e8b7e chore(deps): update yarn to v3.5.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-02 05:55:25 +00:00
renovate[bot]
d1df704d22 chore(deps): update typescript-eslint monorepo to v5.59.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-02 02:40:39 +00:00
renovate[bot]
1e4c64afaf chore(deps): update dependency @types/node to v18.16.3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-29 10:49:09 +02:00
renovate[bot]
0645af761f fix(deps): update dependency minio to v7.1.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-28 21:51:28 +02:00
renovate[bot]
291ed7c706 chore(deps): update dependency @types/node to v18.16.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-28 06:21:46 +00:00
renovate[bot]
8aea44ad4d fix(deps): update dependency rxjs to v7.8.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-27 07:03:52 +00:00
renovate[bot]
026609902b chore(deps): update dependency @types/node to v18.16.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-26 05:26:21 +00:00
renovate[bot]
2496b983eb fix(deps): update dependency joi to v17.9.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-25 09:31:31 +02:00
renovate[bot]
138278bb13 chore(deps): update typescript-eslint monorepo to v5.59.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-25 09:31:21 +02:00
renovate[bot]
4e8d79d5b4 chore(deps): update dependency @nestjs/cli to v9.4.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-24 13:17:55 +02:00
renovate[bot]
f5665629af chore(deps): update node.js to v20
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-24 12:44:53 +02:00
renovate[bot]
745247c04f chore(deps): update dependency eslint to v8.39.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 20:25:57 +02:00
renovate[bot]
fa7b262ad1 fix(deps): update dependency yjs to v13.6.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 20:25:43 +02:00
renovate[bot]
a942c374b8 chore(deps): update dependency @types/node to v18.16.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 20:25:26 +02:00
renovate[bot]
777e9d7015 chore(deps): update dependency prettier to v2.8.8
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 14:46:32 +00:00
renovate[bot]
4c1beef1c9 chore(deps): update dependency @nestjs/cli to v9.4.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-21 18:14:56 +00:00
renovate[bot]
5f0927bf9b chore(deps): update dependency @types/node to v18.15.13
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-21 13:08:27 +00:00
renovate[bot]
ab3e206081 chore(deps): update definitelytyped
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-20 16:19:07 +02:00
renovate[bot]
d5d8112e8c chore(deps): update dependency @types/jest to v29.5.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-19 16:16:10 +02:00
renovate[bot]
b962676dad fix(deps): update dependency yjs to v13.5.53
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-19 16:15:35 +02:00
renovate[bot]
d47da83391 chore(deps): update dependency @tsconfig/node18 to v2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-18 18:27:50 +02:00
renovate[bot]
07c7c97b86 chore(deps): update typescript-eslint monorepo to v5.59.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 10:19:15 +02:00
renovate[bot]
5a8026bc90 chore(deps): update dependency @tsconfig/node18 to v1.0.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 07:37:52 +00:00
Avinash
bb7a6a74f7 refactor(backend): create mock function for noteRepo and eventemiter
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-04-16 20:55:26 +02:00
Tilman Vatteroth
0950e036b0 refactor(s3-backend): use URL object to construct complete URL instead of string template
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-04-16 18:41:03 +02:00