Commit Graph

435 Commits

Author SHA1 Message Date
Alessandro Magionami d10fd393df chore(useremails): fix tests 2024-07-25 17:26:29 +02:00
Alessandro Magionami c7bcf5210f chore(useremails): code review changes 2024-07-25 15:20:41 +02:00
Alessandro Magionami 862e21fb9b Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-1172-change-the-users-repository-to-abstract-the-email-field-in 2024-07-25 15:09:55 +02:00
Alessandro Magionami dc70f2d160 chore(useremails): create scan table helper 2024-07-25 15:09:41 +02:00
Alessandro Magionami a7fe3ca3e4 chore(useremails): use table helper for primary key 2024-07-25 15:09:19 +02:00
Chuck Driesler 6eaf3c8c92 feat(workspaces): cru(d) resolvers (#2521)
* feat(workspaces): drop createdByUserId from the dataschema

* feat(workspaces): repositories WIP

* merge

* protect against removing last admin in workspace

* quick impl and stub tests

* add tests

* services

* unit tests for role services

* feat(workspaces): authorize project creation if workspace specified

* feat(workspaces): emit project created event

* feat(workspaces): assign roles on project create in workspace

* feat(workspaces): update project roles when user added to workspace

* feat(workspaces): stencil gql resolvers

* fix(workspaces): lol lmao

* fix(workspaces): perform automatic project role update in service function

* fix(workspaces): also delete roles

* fix(workspaces): broke tests again oops

* fix(workspaces): update `onProjectCreated` listener to use new repo method

* fix(workspaces): use service function in event listener

* fix(workspaces): get workspace projects via existing stream repo functions

* fix(workspaces): roles mapping in domain, use enum

* feat(workspaces): stencil gql api and resolvers

* fix(workspaces): repair type reference in tests

* fix(workspaces): consolidate files, use different existing stream-getter

* fix(workspaces): more specific error

* fix(workspaces): roles and scopes

* fix(workspaces): yield per page

* fix(workspaces): some test dry

* fix(workspaces): superdry

* fix(workspaces): add scopes

* fix(workspaces): classic

* feat(workspaces): create workspace mutation

* feat(workspaces): I'm sure everything will be fine

* fix(workspaces): yep

* fix(workspaces): successful gql e2e test

* feat(workspaces): update workspace resolver

* chore(workspaces): update resolver test

* feat(workspaces): some retrieval resolvers

* chore(workspaces): tests for query resolvers

* fix(chore): revert temp test command change

* fix(workspaces): test structure and gql types

* fix(workspaces): validate user authz to perform some operations

* fix(workspaces): use existing test infrastructure

* fix(workspaces): stop `isPublic` check if authorizing a workspace resource

* fix(workspaces): better test hygiene

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-07-25 12:58:28 +01:00
Alessandro Magionami 31661071ba fix(useremails): fix login with primary email 2024-07-24 17:17:37 +02:00
Alessandro Magionami 80484a4328 chore(useremails): fix linter 2024-07-24 16:01:22 +02:00
Alessandro Magionami 618d65867a chore(useremails): create helper for search query 2024-07-24 11:16:19 +02:00
Alessandro Magionami 7c41ee0047 chore(useremails): fix count users and getusers to use user emails table 2024-07-23 15:56:26 +02:00
Alessandro Magionami e208179008 chore(useremails): searchUsers use user emails table 2024-07-22 14:47:59 +02:00
Alessandro Magionami 55af2d526b chore(useremails): getUserByEmail use user emails table 2024-07-22 12:03:36 +02:00
Alessandro Magionami 0a3d6b2f50 chore(useremails): getUser use user emails 2024-07-22 11:58:42 +02:00
Alessandro Magionami 830b82ace7 chore(useremails): getUserById use user emails table 2024-07-22 11:46:36 +02:00
Alessandro Magionami 583ca06953 chore(useremails): findOrCreateUser function use useremails 2024-07-22 11:02:09 +02:00
Alessandro Magionami ce35c49de0 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-1172-change-the-users-repository-to-abstract-the-email-field-in 2024-07-22 10:37:07 +02:00
Alessandro Magionami a205332d90 chore(useremails): create table helper 2024-07-22 10:35:55 +02:00
Alessandro Magionami 614e5064e8 chore(useremails): use batches for backfill migration 2024-07-22 10:34:32 +02:00
Chuck Driesler 66eb539aa0 feat(workspaces): assign project roles for workspace projects (#2499)
* feat(workspaces): drop createdByUserId from the dataschema

* feat(workspaces): repositories WIP

* merge

* protect against removing last admin in workspace

* quick impl and stub tests

* add tests

* services

* unit tests for role services

* feat(workspaces): authorize project creation if workspace specified

* feat(workspaces): emit project created event

* feat(workspaces): assign roles on project create in workspace

* feat(workspaces): update project roles when user added to workspace

* fix(workspaces): perform automatic project role update in service function

* fix(workspaces): also delete roles

* fix(workspaces): broke tests again oops

* fix(workspaces): update `onProjectCreated` listener to use new repo method

* fix(workspaces): use service function in event listener

* fix(workspaces): get workspace projects via existing stream repo functions

* fix(workspaces): roles mapping in domain, use enum

* fix(workspaces): repair type reference in tests

* fix(workspaces): consolidate files, use different existing stream-getter

* fix(workspaces): more specific error

* fix(workspaces): yield per page

* fix(workspaces): some test dry

* fix(workspaces): superdry

* fix(workspaces): classic

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-07-20 00:03:27 +01:00
Chuck Driesler 27179ad4f1 feat(workspaces): stencil gql resolvers (#2508)
* feat(workspaces): stencil gql resolvers

* fix(workspaces): lol lmao

* feat(workspaces): stencil gql api and resolvers

* fix(workspaces): roles and scopes

* fix(workspaces): add scopes
2024-07-19 12:44:53 +01:00
Alessandro Magionami bca547df8b chore(useremails): listUsers join user emails table 2024-07-18 17:43:53 +02:00
Alessandro Magionami 447b48a6c2 chore(server): remove relative imports 2024-07-18 16:07:16 +02:00
Alessandro Magionami deb9af299f chore(core): fix relative imports 2024-07-18 15:13:42 +02:00
Alessandro Magionami 4d84bb59c3 fix(useremails): email verification when creating user should be settable 2024-07-18 15:13:05 +02:00
Alessandro Magionami f608d49591 feat(useremails): join user emails in getUsers repo function 2024-07-18 15:12:23 +02:00
Alessandro Magionami 62fd3f4e00 chore(useremails): migration to backfill user emails 2024-07-18 15:11:08 +02:00
Alessandro Magionami 8c7ed4448e chore(core): minor changes to tests 2024-07-16 14:17:40 +02:00
Alessandro Magionami cc74f0f2a8 chore(user-emails): code review changes 2024-07-15 14:13:29 +02:00
Alessandro Magionami 030101208a chore(user-emails): move user emails to core module 2024-07-12 17:24:40 +02:00
Alessandro Magionami 3353b9bbc1 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-1171-change-the-users-repository-to-update-the-verified-field-in 2024-07-11 14:35:38 +02:00
Kristaps Fabians Geikins ee5ae8af62 fix(fe2): accept invite before onboarding after sign up (#2491)
* explicitly ordering global middlewares

* various subscription fixes & WIP project invite middleware

* SSR invite accept & toast notifs seem to work

* backend support for mixpanel

* mixpanel be logic -> shared

* minor fix

* finissh

* lint fix

* minor comment adjustments

* better adblock handling
2024-07-11 11:45:11 +03:00
Chuck Driesler 790d97383c feat(workspaces): project creation emit domain event
* feat(workspaces): drop createdByUserId from the dataschema

* feat(workspaces): repositories WIP

* merge

* protect against removing last admin in workspace

* quick impl and stub tests

* add tests

* services

* unit tests for role services

* feat(workspaces): authorize project creation if workspace specified

* feat(workspaces): emit project created event

* fix(workspaces): protect against adding a project to a workspace if module not enabled

* fix(workspaces): oops broke tests during merge

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-07-10 16:13:41 +01:00
Alessandro Magionami 82ab5a53ac chore(user-emails): fix tests 2024-07-10 13:02:07 +02:00
Alessandro Magionami 295b6d0621 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-1171-change-the-users-repository-to-update-the-verified-field-in 2024-07-10 12:12:00 +02:00
Alessandro Magionami bb964cd457 feat(user-emails): mark user email as verified 2024-07-10 12:11:22 +02:00
Kristaps Fabians Geikins 0b2ca9a515 feat: add missing FE1 fields to the FE2 GQL schema (#2471)
* WIP version create

* commitCreate migrated

* minor cleanup

* commitReceived migrated

* added Project.object

* Project.comment introduced

* moving away old API usages in FE1

* ProjectMutations.batchDelete

* project pending access requests

* WIP project access req tests

* project access req tests done

* ModelByName test

* version mutation tests

* project.object tests

* batch delete tests

* minor improvements to redirect logging
2024-07-10 11:33:53 +02:00
Alessandro Magionami dab5b7b9de chore(user-emails): use test helpers 2024-07-10 09:52:19 +02:00
Alessandro Magionami 01a527eabc feat(core): change user update to also create user-email 2024-07-09 13:54:06 +02:00
Alessandro Magionami 377c7d8c8e feat(core): update user creation to also create user-email 2024-07-09 13:50:55 +02:00
Alessandro Magionami 3288382337 chore(core): create test helpers 2024-07-09 13:45:18 +02:00
Alessandro Magionami a9e6dc5834 feat(user-emails): create user emails table and type (#2470)
* feat(user-emails): create user emails table and type

* chore(user-emails): add delete cascade

* chore(user-emails): fix tests

* chore(user-emails): add unique constraint for email and userId

* chore(user-emails): use random email in tests

* chore(user-emails): add todo to remove user-email in test

* chore(user-emails): code review changes

* chore(user-emails): use random passwords for tests

* chore(user-emails): fix test and code review changes
2024-07-08 17:27:59 +02:00
Kristaps Fabians Geikins 95184b6883 chore(server): marking all old (non-FE2) GQL schema fields as deprecated (#2435)
* some fe2 copy changes + everything upp to automate deprecated

* blobstorage & comments & branches/commits

* all core assets reviewed

* server invites

* webhooks

* minor copy update

* updating copy
2024-07-08 14:09:55 +02:00
Kristaps Fabians Geikins 74c17cd099 fix(server): only changing gql http status code on rate limiting (#2466) 2024-07-02 17:44:22 +03:00
Kristaps Fabians Geikins 7d79c056db fix(server): 401, 403, 429 & 500 status codes for GQL error responses (#2463) 2024-07-02 16:54:25 +03:00
Kristaps Fabians Geikins d944b99172 fix(server): unexpected INTERNAL_SERVER_ERROR error codes for expected error cases (#2461) 2024-07-02 12:44:36 +03:00
Kristaps Fabians Geikins 6bfffca0a9 fix: various invite flow fixes & improvements (#2451)
* fix(fe2): show signup CTA for non-registered invitees [web-1144]

* fix: server invite signup error

* WIP project error access block

* feat(fe2): better 'no project access' error screens

* CR fix
2024-06-28 17:26:11 +02:00
Gergő Jedlicska 7c16abc8eb feat(workspace): 1119 define workspaces dataschema (#2431)
* feat(workspaces): add workspaces module with roles and scopes

* feat(workspaces): add domain, graphql and persistent storage dataschema

* fix(workspaces): correct db injections

* chore(workspaces): add EE license

* chore(license): mentions workspaces separately in license file

* fix(core): roles import in migration

* fix(workspaces): drop workspace_acl on down migration

* fix(workspaces): roles constants

* fix(workspaces): coding standards

---------

Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2024-06-26 17:00:56 +02:00
Dimitrie Stefanescu c4bd9f73df Dim/closures patches (#2428)
* fix(server): advanced query route fix

* fix(server): fixes getObjectsChildrenStream

* fix(server): fixes getObjectChildrenStream in preview service copy pasted code@
2024-06-25 14:31:15 +02:00
Gergő Jedlicska c6cd4c311d feat(serverinvites): create domain module in server invites (#2401)
* chore(serverinvites): repository refactor for multiregion

* chore(serverinvites): remove migrated functions from old repository

* chore(serverinvites): refactor serverInviteForToken resolver for multiregion

* chore(serverinvites): invite processing service refactor for multiregion

* chore(serverinvites): subscription refactor for multiregion

* chore(serverinvites): move buildEmailContents to dedicated file

* chore(serverinvites): deleteAllStreamInvites function multiregion refactor

* chore(serverinvites): refactor deleteServerOnlyInvites multiregion repository

* chore(serverinvites): complete repository refactor for multiregion

* feat(serverinvites): create domain module in server invites

* fix(serverinvites): no relative imports

* feat(serverinvites): extract individual types from repository

* feat(serverinvites): move interfaces to operations

* fix(serverinvites): update imports referencing old interfaces file

* fix(serverinvites): type mismatch for insert invite and delete old

* chore(serverinvites): refactor to single repo function

* test(serverinvites): fix tests

* fix(serverinvites): use domain types in all places

* feat(serverinvites): WIP unity

* feat(serverinvites): move to new facory names and types

* feat(serverinvites): fix tests

* fix(serverinvites): use factory name

---------

Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>
2024-06-25 13:24:37 +02:00
Kristaps Fabians Geikins d4f90a83e8 chore: cleaning up betaAutomations (#2413) 2024-06-20 15:35:39 +03:00