Commit Graph

188 Commits

Author SHA1 Message Date
Mike 7c00a1de80 Feat: Mixpanel workspace groups add properties (#2904) 2024-09-10 14:18:29 +02:00
Chuck Driesler d06f44329b Dismissable invite banners for discoverable workspaces (#2892)
* fix(workspaces): dismissable join banners

* fix(workspaces): correctly update cookie
2024-09-09 09:56:46 +01:00
Alessandro Magionami 3fa2bcd4f3 Alessandro/web 1836 billing tab show x10 free guest (#2896)
* feat(workspaces): add label field to cost items

* feat(workspaces): use label field to display cost items
2024-09-06 10:42:31 +02:00
Mike 0f0046ede2 Fix: change workspaceId to workspace_id (#2886) 2024-09-05 17:48:35 +02:00
andrewwallacespeckle 0e01119b3b feat(fe2): Open settings on click of users or version count (#2879)
* Open settings on click of users or version count

* Update to use SettingMenuKeys
2024-09-05 11:20:31 +01:00
Kristaps Fabians Geikins c92938eff3 chore(server): apollo server v3 -> v4 (#2880)
* main changes seem to be done?

* lint fix

* minor cleanup

* dataloader clear
2024-09-05 12:27:13 +03:00
Chuck Driesler beabb5552b Chuck/guests bug (#2863)
* fix(workspace): why can't guests seeeeee

* fix(workspaces): fix reference in test

* fix(workspaces): idk
2024-09-03 17:44:20 +02:00
Chuck Driesler 9ec90cd64f fix(workspaces): guarantee that workspace admins are project owners (#2835)
* fix(workspaces): separate resolver for workspace project role update

* fix(workspaces): frontend protection

* fix(workspaces): new composable, clearer errors

* fix(workspaces): correct logic

* fix(workspaces): gen
2024-09-03 17:18:30 +02:00
Kristaps Fabians Geikins 596ccf8ee3 feat(fe2): greatly improved DX for apollo cache modification (#2831)
* proof of concept - types work

* WIP

* wipp

* new modifyObjectFieldf

* updatePathIfExists

* wipp

* working?

* projects dashboard test

* more improvements

* more improvements

* fixx

* bugfix

* minor fixes and cleanup

* moar cleanup

* autoEvictFiltered
2024-09-03 10:59:16 +03:00
andrewwallacespeckle 8787a5c8bc feat(fe2): Frontend should show a pre-filtered list of users for workspace members (#2845)
* Show prefiltered list for members in workspace with project ownership rights

* Fix: Added dropdown for project role

* Fix typo

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-09-02 16:59:30 +02:00
Chuck Driesler 39c34b1b78 fix(workspaces): safer billing query for guests (#2844)
* fix(workspaces): safer billing query for guests

* chore(workspaces): comment

* chore(workspaces): lint

* chore(workspaces): ope
2024-09-02 15:23:27 +01:00
Mike 6e2c5bb4fe Fix: drop domain permissions to member (#2849) 2024-09-02 15:49:15 +02:00
Mike f50de80338 Fix: Check for domain policy on workspace invites (#2846) 2024-09-02 14:12:09 +01:00
Mike f820084f03 Fix: Dont allow non domain policy matching members to be invited to workspace (#2838) 2024-09-02 14:05:16 +02:00
andrewwallacespeckle e52962c60b feat(fe2): Workspace members table. Update Role (#2823)
* WIP Leave Workspace

* Merge in Mikes changes

* Add leave workspace

* update name

* Remove check for workspaceAdmin

* Remove un-needed fragment as prop type

* Use defineModel

* Added description for roles

* Set role as undefined until user selects

* Tidy ups

* Remove unused resets

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-09-02 11:58:34 +01:00
Kristaps Fabians Geikins 7c6ea464e8 fix: support accepting invites even if a workspace member already (#2826)
* blocking workspace project invites from incorrect resolver

* invite create validation fixes + tests

* fix for email added on decline

* doing init validation on finalization as well

* more tests

* fix(server): allow accepting an email invite even if already a member

* fix(fe2): support accepting invites even if a workspace member already
2024-09-02 09:45:24 +02:00
Mike 2c14fbc8e7 Fix permissions for project members (#2792) 2024-08-30 14:26:02 +01:00
Kristaps Fabians Geikins bd188fc189 fix(fe2): post workspace create cache update (#2827) 2024-08-30 14:46:03 +03:00
Kristaps Fabians Geikins 46afd793c7 Revert "fix(fe2): post workspace creation cache update"
This reverts commit 726e09e157.
2024-08-30 14:22:23 +03:00
Kristaps Fabians Geikins 726e09e157 fix(fe2): post workspace creation cache update 2024-08-30 14:21:13 +03:00
Mike e62a68cee7 Feat: Add role label, version count, and update styling of project header (#2820) 2024-08-30 12:44:51 +02:00
Chuck Driesler bbd5146e5a fix(workspaces): add pagination to workspace team members (#2644)
* fix(workspaces): a suggestion of paginated teams

* fix(workspaces): workspace team pagination (?)

* fix(workspaces): pagination based on acl createdAt

* fix(workspaces): fix some roles-related tests

* fix(workspaces): improve query and tests

* fix(workspaces): collaborators query without incorrect groupBy

* fix(workspaces): add default values to migration

* Fixed queries and fragments

* Merged main

* Remove comment

* chore(workspaces): update WorkspaceCollaboratorCollection mocks

* chore(workspaces): fix role test

* chore(workspaces); ope

* fix(workspaces): move workspace acl timestamps to separate table

* Merge?

* fix(workspaces) drop that table

* fix(workspaces): cursor

* fix(workspaceInvites): undo merge borkage

* fix(workspaces): rework workspace member pagination

* fix(workspaces): fix test

* fix(workspaces): test test

* fix(workspaces): literally garbage

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-08-29 21:17:37 +02:00
Mike 91960b34f3 Feat: Add billing tab to workspace settings (#2817) 2024-08-29 18:41:57 +02:00
Mike 3f5c111828 Feat: Show noncompliant warning in members tables (#2812)
* Updates from Michal video 1

* Fix openWorkspaceCreateDialog

* Update color of + button

* Updated dialog

* Feat: Show warning for non-compliant users in table

* Fix: Small issue

---------

Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
2024-08-29 17:05:21 +02:00
andrewwallacespeckle 00274c3803 Add to viewer (#2808) 2024-08-29 14:37:51 +01:00
Alessandro Magionami a0224e2f40 Alessandro/web 1660 workspace cost items subtotal and currency (#2793)
* chore(workspaces): workspace cost schema

* chore(workspaces): test helper for workspace cost

* feat(workspaces): workspace billing cost

* fix(workspaces): fix onProjectCreated failing for the project creator if the creator is a member

* refactor(workspaces): change workspace cost calculation to a simpler query

* test(workspaceCost): fix costing logic and tests

* fix(workspaceTests): project emmiter needs owner now

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-08-29 13:45:04 +02:00
Gergő Jedlicska 32919c89da gergo/web 1746 add resolver for workspace domain policy compliance per user (#2797)
* fix(users): verified should be a public limited user field

* feat(workspaceSecurity): update security tab copy

* feat(workspaces): add limited user domain policy compliance check
2024-08-29 11:11:08 +02:00
Mike 00db9e2a9c Feat: Add link to workspace on project (#2804) 2024-08-29 11:01:01 +02:00
Mike afd90957a8 Added FE tracking events (#2798) 2024-08-28 21:06:09 +02:00
Mike a8c08ac2f8 Fix: Fix permissions for menu items (#2791) 2024-08-28 16:57:42 +02:00
Mike 289a8fbb54 Fix: Align security styling with design (#2777) 2024-08-28 13:26:49 +02:00
Mike 15d7d358a8 Fix: Only shows 'general' workspace settings for guests (#2781) 2024-08-28 10:59:20 +02:00
Mike bebc4b922e Feat: Add links to workspace on project cards (#2773) 2024-08-27 18:24:51 +02:00
Alessandro Magionami d116f935d9 chore(webhooks): test isolation 2024-08-27 11:05:38 +02:00
Mike 01c9fb4e55 Feat: Workspace creation wizard should allow for optional logo (#2757)
* Fixed reactivity, added workspace logo to create workspace modal

* Reverse order so name is focussed first

* Fix typo

* feat(workspaces): allow sending the logo on ws creation

* Fix avatar uploading

* Added default index 0

* fix(workspaces): maybe default logo

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-08-26 17:20:43 +02:00
Alessandro Magionami e75d424d0c Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-26 15:16:27 +02:00
Gergő Jedlicska 08e941f8af Poor man's SSO (#2641)
* Implemented workspace general page

* Added notifications to user input

* Allowed non-admins to view but not edit

* Added redirect to homeroute

* Fixed validation

* Squashed commit of the following:

commit 7bf14ab8af0f76b4c9d0aa87fc08085af7c34959
Author: Chuck Driesler <chuck@speckle.systems>
Date:   Tue Aug 6 19:40:50 2024 +0200

    mob next [ci-skip] [ci skip] [skip ci]

    lastFile:packages/server/modules/workspacesCore/migrations/20240806160740_workspace_domains.ts

commit 8aa3fb0cb052c10eeeb83bf9874ae0d1c065e480
Author: Alessandro Magionami <alessandro.magionami@gmail.com>
Date:   Tue Aug 6 18:54:15 2024 +0200

    mob next [ci-skip] [ci skip] [skip ci]

    lastFile:packages/server/modules/core/domain/userEmails/operations.ts

commit 66dfd0cf6c15a789c8f96a65a3168323e83a7b9e
Author: Chuck Driesler <chuck@speckle.systems>
Date:   Tue Aug 6 18:30:22 2024 +0200

    mob next [ci-skip] [ci skip] [skip ci]

    lastFile:packages/server/modules/workspacesCore/domain/types.ts

Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>

* Move General to workspaces folder

* feat(workspaces): inputs on security section

* feat(workspaces): add domain to workspace mutation

* chore(workspaces): add blocked domains list

* fix(workspaces): modals with buttons

* feat(workspaceDomains): delete domain

* fix(workspaces): use  mutation

* fix(workspaces): present user verified domains as options

* Moved sidebar menu to a composable

* Added coming soon tag back

* feat(workspaces): create domains resolver for workspace

* chore(workspaces): fix tests

* chore(workspaces): fix types

* chore(workspaces): fix linter

* fix(workspaces): do some delete I think

* chore(workspaces): add domainBasedMembershipProtectionEnabled field to workspace

* chore(workspaces): improve validation for email domain

* fix(workspace): query and do the thing

* chore(workspaces): add graphql schema for domainBasedMembershipProtection

* chore(workspaces): lint and test failures

* fix(workspaces): test issues w new field

* feat(workspaces): add discoverability flag

* chore(workspaces): they made me do it

* feat(workspaces): enable toggling domain protection

* feat(workspaces): add discoverability toggle to workspace settings

* feat(workspace): auto enable discoverability on first domain registration

* feat(workspace): discoverability toggle fixes

* fix(eventBus): fix tests

* feat(workspaces): user discoverable workspaces (#2620)

* feat(workspaces): it works just trust me

* fix(workspaces): don't worry about it

* fix(workspaces); happy path success

* fix(workspaces): almost there

* fix(workspaces): successful tests!

* fix(workspaces): we have DISCOVERED (#2621)

* Fixed linting issue

* Updated query

* Updated validation rules

* Updated validation rules

* Fix unsaved file with type export

* Addressed PR comments

* Updated cache

* Updated item classes, add fragment back

* Gergo/web 1574 join workspaces via discovery (#2623)

* chore(useremails): add find verified emails by user function

* chore(workspace): table helper for workspace domains

* chore(workspace): get workspace with domains function

* chore(workspace): test get workspace with domains function

* feat(workspace): restrict workspace membership when updating workspace role

* chore(workspaces): fix types

* feat(workspaces): WIP join

* feat(workspaces): join button makes u join

* chore(useremails): fix type for find verified emails function

* feat(workspaces): join

* feat(workspace): prevent inviting user without email matching domain

* chore(workspaces): fix linter

* fix(workspaces): invoke join (gergo wrote this)

* fuck

* fix(workspaces): properly get discoverable workspaces

* fix(workspaces): test

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Chuck Driesler <chuck@speckle.systems>

* fix(workspaces): some query stuff

* fix(workspaces): mutate cache instead of refetch

* fix(workspaces): more adjustments to gql query and fragment structure

* fix(workspaces): queries, style, structure

* fix(workspaces): match discoverability with current styles

* chore(workspaces): lint lint lint

* fix(workspaces): got it twisted

* chore(workspaces): fix test

* fix(workspaces): route to joined workspace on join

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
Co-authored-by: Chuck Driesler <chuck@speckle.systems>
Co-authored-by: Alessandro Magionami <alessandro.magionami@gmail.com>
2024-08-26 13:33:16 +02:00
Alessandro Magionami 37ab694b7e Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-26 12:12:14 +02:00
Mike 1bdf7f78bb Fix: Add permissions checks for settings (#2748) 2024-08-23 19:25:05 +02:00
andrewwallacespeckle b957f5aa83 fix(fe2): Various bugfixes from testing (#2744)
* Update workspace header. Style login button in menu

* Fix misalignment in tabs

* Remove NuxtImg. Move file

* Update yarn.lock

* Move image to assets
2024-08-23 15:27:42 +01:00
Alessandro Magionami c56821ff4a Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-23 14:41:09 +02:00
Iain Sproat acd83653a2 feat(graphql/serverinfo): provide maximum object size in bytes (#2734)
* feat(graphql/serverinfo): provide maximum object size in bytes

* Places config values in a ServerConfiguration object
- updates blobstorage to use ServerConfiguration, while retaining backwards compatibility
2024-08-23 13:06:22 +02:00
Alessandro Magionami b0a64af835 Merge branch 'main' of github.com:specklesystems/speckle-server into alessandro/web-957-update-webhook 2024-08-22 15:08:20 +02:00
Chuck Driesler 7bfe36ef9e feat(workspaces): create workspace button (#2645)
* fix(workspaces): it's my passion

* fix(workspaces): actually make workspaces

* Update graphql.ts

* Dechuckify

* Minor housekeeping changes

* useCreateWorkspace WIP

* Updated add workspace button

* Removed dubble dialog

---------

Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-08-22 13:23:12 +01:00
Mike 17b89e4cb4 Feat: Added delete user from workspace button (#2726) 2024-08-22 13:35:32 +02:00
Chuck Driesler 63735eb044 feat(workspaces): work(space) invader default logos (#2708)
* feat(workspaces): add default logo index

* Added WorkspaceAvatar component

* Added WorkspaceAvatar component

* Fix issues

* Fix Avatar

---------

Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
2024-08-21 13:53:37 +01:00
Mike 84b3570079 Fix: dashboard count (#2719) 2024-08-21 09:38:33 +02:00
Kristaps Fabians Geikins 1380d1d17f feat(fe2): error reporting when invite (middleware level) auto-accept doesn't work (#2711)
* feat(fe2): auto-accept error toasts

* smarter error reporting

* typo
2024-08-20 17:27:53 +03:00
Alessandro Magionami 14b91eb4e1 chore(webhooks): update webhook function refactor 2024-08-20 16:16:31 +02:00
Mike e957259970 Fix: Minor workspace related styling tweaks (#2705) 2024-08-20 15:01:18 +02:00