diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 1452b224c2..e269e43a79 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -22,8 +22,8 @@ importers: specifier: ^0.7.17 version: 0.7.17 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -92,8 +92,8 @@ importers: ../../packages/collaboration: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/server-core': specifier: workspace:^0.7.16 version: link:../core @@ -162,8 +162,8 @@ importers: specifier: ^0.7.17 version: 0.7.17 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -238,8 +238,8 @@ importers: ../../packages/datalake: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -308,8 +308,8 @@ importers: specifier: ^0.7.17 version: 0.7.17 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -366,8 +366,8 @@ importers: ../../packages/hulylake: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/hulylake-client': specifier: ^0.7.17 version: 0.7.17 @@ -433,8 +433,8 @@ importers: ../../packages/kafka: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -500,8 +500,8 @@ importers: specifier: ^0.7.17 version: 0.7.17 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -564,8 +564,8 @@ importers: ../../packages/minio: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -625,8 +625,8 @@ importers: ../../packages/mongo: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -689,8 +689,8 @@ importers: ../../packages/postgres: dependencies: '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -762,8 +762,8 @@ importers: specifier: ^3.738.0 version: 3.917.0 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -832,8 +832,8 @@ importers: specifier: ^0.7.17 version: 0.7.17 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/platform': specifier: ^0.7.17 version: 0.7.17 @@ -905,8 +905,8 @@ importers: specifier: ^0.7.17 version: 0.7.17 '@hcengineering/core': - specifier: ^0.7.19 - version: 0.7.19 + specifier: ^0.7.21 + version: 0.7.21 '@hcengineering/datalake': specifier: workspace:^0.7.15 version: link:../datalake @@ -1575,8 +1575,8 @@ packages: '@hcengineering/client@0.7.17': resolution: {integrity: sha512-3SjW0e/pPa/qQNqpGuh6A+Y5XN0WQ2EMgUZaXjY2Xmchpna7Xp6hYDvzSL4yPA4tZSGE8n0gu7FK8LRamMdrUg==} - '@hcengineering/core@0.7.19': - resolution: {integrity: sha512-BMkVkVXMU8qmbR2KAeMZ3YIMfa07/AzdCEY7PNn7dfAZyc63vrLz+Jl0CPvN7cq9p6x/WBkMfS+eKFwtvhZIUA==} + '@hcengineering/core@0.7.21': + resolution: {integrity: sha512-iZejKdlMgBTiTZnOG83uGBx0QtpY1y1gEjzcoSNirSeBW5urATOtbrqIgFH9eltMk3kJBYLV2sVW0fI/AMf8Wg==} '@hcengineering/hulylake-client@0.7.17': resolution: {integrity: sha512-TPqdc5nd7xV73Y1B2EJ7GxpWazp9ACV1AqHlm6ebYwU1CzXQvbuJxF68itbHmPiNiCmmuiDruJmjnyLGwL18Kw==} @@ -5436,7 +5436,7 @@ snapshots: '@hcengineering/account-client@0.7.18': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 '@hcengineering/analytics@0.7.17': @@ -5447,17 +5447,17 @@ snapshots: dependencies: '@hcengineering/analytics': 0.7.17 '@hcengineering/client': 0.7.17 - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 '@hcengineering/rpc': 0.7.17 snappyjs: 0.7.0 '@hcengineering/client@0.7.17': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 - '@hcengineering/core@0.7.19': + '@hcengineering/core@0.7.21': dependencies: '@hcengineering/analytics': 0.7.17 '@hcengineering/measurements': 0.7.18 @@ -5466,7 +5466,7 @@ snapshots: '@hcengineering/hulylake-client@0.7.17': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/retry': 0.7.17 '@hcengineering/measurements@0.7.18': {} @@ -5515,7 +5515,7 @@ snapshots: '@hcengineering/query@0.7.17': dependencies: '@hcengineering/analytics': 0.7.17 - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 fast-equals: 5.3.2 @@ -5523,32 +5523,32 @@ snapshots: '@hcengineering/rpc@0.7.17': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 msgpackr: 1.11.5 '@hcengineering/server-token@0.7.17': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 jwt-simple: 0.5.6 uuid: 8.3.2 '@hcengineering/storage@0.7.17': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/platform': 0.7.17 fast-equals: 5.3.2 '@hcengineering/text-core@0.7.18': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 fast-equals: 5.3.2 hash-it: 6.0.0 '@hcengineering/text-ydoc@0.7.18(prosemirror-inputrules@1.5.1)(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3)': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/text': 0.7.18(prosemirror-inputrules@1.5.1)(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3) '@hcengineering/text-core': 0.7.18 y-protocols: 1.0.6(yjs@13.6.27) @@ -5561,7 +5561,7 @@ snapshots: '@hcengineering/text@0.7.18(prosemirror-inputrules@1.5.1)(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.3)': dependencies: - '@hcengineering/core': 0.7.19 + '@hcengineering/core': 0.7.21 '@hcengineering/text-core': 0.7.18 '@tiptap/core': 2.26.4(@tiptap/pm@2.26.4) '@tiptap/extension-blockquote': 2.26.4(@tiptap/core@2.26.4(@tiptap/pm@2.26.4)) diff --git a/packages/client/package.json b/packages/client/package.json index 3743a2763a..31cfcf1e27 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -38,7 +38,7 @@ }, "dependencies": { "@hcengineering/platform": "^0.7.17", - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/client-resources": "^0.7.17", "@hcengineering/client": "^0.7.17", "@hcengineering/account-client": "^0.7.18", diff --git a/packages/collaboration/package.json b/packages/collaboration/package.json index 3f4ae25f3d..15662e664b 100644 --- a/packages/collaboration/package.json +++ b/packages/collaboration/package.json @@ -35,7 +35,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/text": "^0.7.18", "@hcengineering/text-ydoc": "^0.7.18", diff --git a/packages/core/package.json b/packages/core/package.json index c162e76211..eba83a2d38 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -37,7 +37,7 @@ }, "dependencies": { "@hcengineering/analytics": "^0.7.17", - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/query": "^0.7.17", "@hcengineering/rpc": "^0.7.17", diff --git a/packages/datalake/package.json b/packages/datalake/package.json index 621a328291..3993941d7d 100644 --- a/packages/datalake/package.json +++ b/packages/datalake/package.json @@ -36,7 +36,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/server-token": "^0.7.17" diff --git a/packages/elastic/package.json b/packages/elastic/package.json index 2870732081..90a77c9e9b 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -55,7 +55,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@elastic/elasticsearch": "^7.17.14", diff --git a/packages/hulylake/package.json b/packages/hulylake/package.json index eb66b726ef..83bf0aea8b 100644 --- a/packages/hulylake/package.json +++ b/packages/hulylake/package.json @@ -36,7 +36,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/server-token": "^0.7.17", diff --git a/packages/kafka/package.json b/packages/kafka/package.json index 11b1463295..3e49735113 100644 --- a/packages/kafka/package.json +++ b/packages/kafka/package.json @@ -35,7 +35,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/storage": "^0.7.17", diff --git a/packages/middleware/CHANGELOG.json b/packages/middleware/CHANGELOG.json index 498c44287c..673f570915 100644 --- a/packages/middleware/CHANGELOG.json +++ b/packages/middleware/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@hcengineering/middleware", "entries": [ + { + "version": "0.7.17", + "tag": "@hcengineering/middleware_v0.7.17", + "date": "Thu, 30 Oct 2025 23:32:01 GMT", + "comments": { + "patch": [ + { + "comment": "allow guests to update their identities" + } + ] + } + }, { "version": "0.7.16", "tag": "@hcengineering/middleware_v0.7.16", diff --git a/packages/middleware/CHANGELOG.md b/packages/middleware/CHANGELOG.md index 0ab5fd446d..d69ab0bdc7 100644 --- a/packages/middleware/CHANGELOG.md +++ b/packages/middleware/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @hcengineering/middleware -This log was last generated on Thu, 30 Oct 2025 20:53:38 GMT and should not be manually modified. +This log was last generated on Thu, 30 Oct 2025 23:32:01 GMT and should not be manually modified. + +## 0.7.17 +Thu, 30 Oct 2025 23:32:01 GMT + +### Patches + +- allow guests to update their identities ## 0.7.16 Thu, 30 Oct 2025 20:53:38 GMT diff --git a/packages/middleware/package.json b/packages/middleware/package.json index 56631954bb..06bb220e05 100644 --- a/packages/middleware/package.json +++ b/packages/middleware/package.json @@ -1,6 +1,6 @@ { "name": "@hcengineering/middleware", - "version": "0.7.16", + "version": "0.7.17", "main": "lib/index.js", "svelte": "src/index.ts", "types": "types/index.d.ts", @@ -35,7 +35,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/query": "^0.7.17", diff --git a/packages/middleware/src/guestPermissions.ts b/packages/middleware/src/guestPermissions.ts index 6ac5ecf8df..55fb936e0c 100644 --- a/packages/middleware/src/guestPermissions.ts +++ b/packages/middleware/src/guestPermissions.ts @@ -9,6 +9,7 @@ import core, { type Doc, hasAccountRole, type MeasureContext, + type PersonId, type SessionData, type Space, type Tx, @@ -55,27 +56,28 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return } if (TxProcessor.isExtendsCUD(tx._class)) { + const socialIds = ctx.contextData.account.socialIds const cudTx = tx as TxCUD const isSpace = h.isDerived(cudTx.objectClass, core.class.Space) if (isSpace) { - if (this.isForbiddenSpaceTx(cudTx as TxCUD)) { + if (this.isForbiddenSpaceTx(cudTx as TxCUD, socialIds)) { throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) } - } else if (cudTx.space !== core.space.DerivedTx && this.isForbiddenTx(cudTx)) { + } else if (cudTx.space !== core.space.DerivedTx && this.isForbiddenTx(cudTx, socialIds)) { throw new PlatformError(new Status(Severity.ERROR, platform.status.Forbidden, {})) } } } - private isForbiddenTx (tx: TxCUD): boolean { + private isForbiddenTx (tx: TxCUD, socialIds: PersonId[]): boolean { if (tx._class === core.class.TxMixin) return false - return !this.hasMixinAccessLevel(tx) + return !this.hasMixinAccessLevel(tx, socialIds) } - private isForbiddenSpaceTx (tx: TxCUD): boolean { + private isForbiddenSpaceTx (tx: TxCUD, socialIds: PersonId[]): boolean { if (tx._class === core.class.TxRemoveDoc) return true if (tx._class === core.class.TxCreateDoc) { - return !this.hasMixinAccessLevel(tx) + return !this.hasMixinAccessLevel(tx, socialIds) } if (tx._class === core.class.TxUpdateDoc) { const updateTx = tx as TxUpdateDoc @@ -91,7 +93,7 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return false } - private hasMixinAccessLevel (tx: TxCUD): boolean { + private hasMixinAccessLevel (tx: TxCUD, socialIds: PersonId[]): boolean { const h = this.context.hierarchy const accessLevelMixin = h.classHierarchyMixin(tx.objectClass, core.mixin.TxAccessLevel) if (accessLevelMixin === undefined) return false @@ -102,6 +104,9 @@ export class GuestPermissionsMiddleware extends BaseMiddleware implements Middle return accessLevelMixin.removeAccessLevel === AccountRole.Guest } if (tx._class === core.class.TxUpdateDoc) { + if (accessLevelMixin.isIdentity === true && socialIds.includes(tx.objectId as unknown as PersonId)) { + return true + } return accessLevelMixin.updateAccessLevel === AccountRole.Guest } return false diff --git a/packages/minio/package.json b/packages/minio/package.json index 64c6289574..9c5a0538a6 100644 --- a/packages/minio/package.json +++ b/packages/minio/package.json @@ -35,7 +35,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "minio": "^8.0.5" diff --git a/packages/mongo/package.json b/packages/mongo/package.json index 71c25515da..80e76bd848 100644 --- a/packages/mongo/package.json +++ b/packages/mongo/package.json @@ -35,7 +35,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "mongodb": "^6.16.0", diff --git a/packages/postgres/package.json b/packages/postgres/package.json index beb443fa8d..78ec35c84d 100644 --- a/packages/postgres/package.json +++ b/packages/postgres/package.json @@ -36,7 +36,7 @@ }, "dependencies": { "postgres": "^3.4.7", - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/postgres-base": "^0.7.17" diff --git a/packages/s3/package.json b/packages/s3/package.json index 588a3b925d..0146604102 100644 --- a/packages/s3/package.json +++ b/packages/s3/package.json @@ -35,7 +35,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/storage": "^0.7.17", diff --git a/packages/server-storage/package.json b/packages/server-storage/package.json index 03936b3286..df4b12f4e1 100644 --- a/packages/server-storage/package.json +++ b/packages/server-storage/package.json @@ -56,7 +56,7 @@ "eslint-plugin-svelte": "^2.35.1" }, "dependencies": { - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16", "@hcengineering/minio": "workspace:^0.7.15", diff --git a/packages/server/package.json b/packages/server/package.json index 70b2f834c2..8ab128b1de 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -38,7 +38,7 @@ "dependencies": { "@hcengineering/account-client": "^0.7.18", "@hcengineering/analytics": "^0.7.17", - "@hcengineering/core": "^0.7.19", + "@hcengineering/core": "^0.7.21", "@hcengineering/platform": "^0.7.17", "@hcengineering/rpc": "^0.7.17", "@hcengineering/server-core": "workspace:^0.7.16",