* Add log in with Google
* Fix merge conflicts
* Merge branch 'main' into feature/copy-add-identity-provider
# Conflicts:
# pages/api/auth/[...nextauth].tsx
# pages/api/auth/forgot-password.ts
# pages/settings/security.tsx
# prisma/schema.prisma
# public/static/locales/en/common.json
* WIP: SAML login
* fixed login
* fixed verified_email check for Google
* tweaks to padding
* added BoxyHQ SAML service to local docker-compose
* identityProvider is missing from the select clause
* user may be undefined
* fix for yarn build
* Added SAML configuration to Settings -> Security page
* UI tweaks
* get saml login flag from the server
* UI tweaks
* moved SAMLConfiguration to a component in ee
* updated saml migration date
* fixed merge conflict
* fixed merge conflict
* lint fixes
* check-types fixes
* check-types fixes
* fixed type errors
* updated docker image for SAML Jackson
* added api keys config
* added default values for SAML_TENANT_ID and SAML_PRODUCT_ID
* - move all env vars related to saml into a separate file for easy access
- added SAML_ADMINS comma separated list of emails that will be able to configure the SAML metadata
* cleanup after merging main
* revert mistake during merge
* revert mistake during merge
* set info text to indicate SAML has been configured.
* tweaks to text
* tweaks to text
* i18n text
* i18n text
* tweak
* use a separate db for saml to avoid Prisma schema being out of sync
* use separate docker-compose file for saml
* padding tweak
* Prepare for implementing SAML login for the hosted solution
* WIP: Support for SAML in the hosted solution
* teams view has changed, adjusting saml changes accordingly
* enabled SAML only for PRO plan
* if user was invited and signs in via saml/google then update the user record
* WIP: embed saml lib
* 302 instead of 307
* no separate docker-compose file for saml
* - ogs cleanup
- type fixes
* fixed types for jackson
* cleaned up cors, not needed by the oauth flow
* updated jackson to support encryption at rest
* updated saml-jackson lib
* allow only the required http methods
* fixed issue with latest merge with main
* - Added instructions for deploying SAML support
- Tweaked SAML audience identifier
* fixed check for hosted Cal instance
* Added a new route to initiate Google and SAML login flows
* updated saml-jackson lib (node engine version is now 14.x or above)
* moved SAML instructions from Google Docs to a docs file
* moved randomString to lib
* comment SAML_DATABASE_URL and SAML_ADMINS in .env.example so that default is SAML off.
* fixed path to randomString
* updated @boxyhq/saml-jackson to v0.3.0
* fixed TS errors
* tweaked SAML config UI
* fixed types
* added e2e test for Google login
* setup secrets for Google login test
* test for OAuth login buttons (Google and SAML)
* enabled saml for the test
* added test for SAML config UI
* fixed nextauth import
* use pkce flow
* tweaked NextAuth config for saml
* updated saml-jackson
* added ability to delete SAML configuration
* SAML variables explainers and refactoring
* Prevents constant collision
* Var name changes
* Env explainers
* better validation for email
Co-authored-by: Omar López <zomars@me.com>
* enabled GOOGLE_API_CREDENTIALS in e2e tests (Github Actions secret)
* cleanup (will create an issue to handle forgot password for Google and SAML identities)
Co-authored-by: Chris <76668588+bytesbuffer@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
- Moved CreateNewEventButton in pages/event-types/index to dedicated component as this is used in two places now.
- Implemented CreateEventType button on Team settings screen and replaced old markup in on event types page with new component.
- Upgrade vanilla JS inputs to library primitives.
- Created TextArea & TextAreaField components in components/form.
- [Bugfix] Changed back button behavior in Shell to have a specified back path as CreateEventType's modal interfered with the router.goBack behavior.
- Ensure modal data is preserved in URL params for router accuracy and removed on exit.
- dropdown improvements
- Improve performance of team availability
- Fix default timezone
- Allow team admins to edit event types
- Change team availability slot input to dropdown select (15,30,60)
- Prevent teams from access if not pro user
* [WIP] checkpoint before pull & merge
- Added teams to sidebar
- Refactored team settings
- Improved team list UI
This code will be partly reverted next commit.
* [WIP]
- Moved team code back to components
- Removed team link from sidebar
- Built new team manager screen based on Event Type designs
- Component-ized frequently reused code (SettingInputContainer, FlatIconButton)
* [WIP]
- Created LinkIconButton as standalone component
- Added functionality to sidebar of team settings
- Fixed type bug on public team page induced by my normalization of members array in team query
- Removed teams-old which was kept as refrence
- Cleaned up loose ends
* [WIP]
- added create team model
- fixed profile missing label due to my removal of default label from component
* [WIP]
- Fixed TeamCreateModal trigger
- removed TeamShell, it didn't make the cut
- added getPlaceHolderAvatar
- renamed TeamCreate to TeamCreateModal
- removed deprecated UsernameInput and replaced uses with suggested TextField
* fix save button
* [WIP]
- Fixed drop down actions on team list
- Cleaned up state updates
* [WIP] converting teams to tRPC
* [WIP] Finished refactor to tRPC
* [WIP] Finishing touches
* [WIP] Team availability beginning
* team availability mvp
* - added validation to change role
- modified layout of team availability
- corrected types
* fix ui issue on team availability screen
* - added virtualization to team availability
- added flexChildrenContainer boolean to Shell to allow for flex on children
* availability style fix
* removed hard coded team type as teams now use inferred type from tRPC
* Removed unneeded vscode settings
* Reverted prisma schema
* Fixed migrations
* Removes unused dayjs plugins
* Reverts type regression
* Type fix
* Type fixes
* Type fixes
* Moves team availability code to ee
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
* added CSS variable --brand-color
* added CustomBranding component
* prisma update for brand color
* added brandcolor to user context in viewer.me
* conflict resolution
* added brandColor input and mutation
* custom brand color to availability
* brandColor added to BookingPage
* fixed availability, booking for team and added customBranding to success
* brandColor added to cancel/uid
* requested changes
* lint fix
* further changes
* lint fix
* Ends the war between tRPC and next-i18next
* Locale fixes
* Linting
* Linting
* trpc i18n (not working) (#942)
* simplify i18n handler and remove redundant(?) fn check
* split up viewer to a "logged in only" and "public"
* wip -- skip first render
Co-authored-by: Omar López <zomars@me.com>
* Linting
* I18n fixes
* We don't need serverSideTranslations in every page anymore
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Alex Johansson <alexander@n1s.se>
* Removes unused component
* Refactors useLocale
We don't need to pass the locale prop everywhere
* Fixes syntax error
* Adds warning for missing localeProps
* Simplify i18n utils
* Update components/I18nLanguageHandler.tsx
Co-authored-by: Mihai C <34626017+mihaic195@users.noreply.github.com>
* Type fixes
Co-authored-by: Mihai C <34626017+mihaic195@users.noreply.github.com>
* added prisma models and migration, minor webhook init --WIP
* --WIP
* --WIP
* added radix-checkbox and other webhook additions --WIP
* added API connections and other modifications --WIP
* --WIP
* replaced checkbox with toggle --WIP
* updated to use Dialog instead of modal --WIP
* fixed API and other small fixes -WIP
* created a dummy hook for test --WIP
* replaced static hook with dynamic hooks
* yarn lock conflict quickfix
* added cancel event hook and other minor additions --WIP
* minor improvements --WIP
* added more add-webhook flow items--WIP
* updated migration to have alter table for eventType
* many ui/ux fixes, logic fixes and action fixes --WIP
* bugfix for incorrect webhook filtering
* some more fixes, edit webhook --WIP
* removed redundant checkbox
* more bugfixes and edit-webhook flow --WIP
* more build and lint fixes
* --WIP
* more fixes and added toast notif --WIP
* --updated iconButton
* clean-up
* fixed enabled check in edit webhook
* another fix
* fixed edit webhook bug
* added await to payload lambda
* wrapped payload call in promise
* fixed cancel/uid CTA alignment
* --requested changes --removed eventType relationship
* Adds missing migration
* Fixes missing daysjs plugin and type fixes
* Adds failsafe for webhooks
* Adds missing dayjs utc plugins
* Fixed schema and migrations
* Updates webhooks query
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* Makes userRequired middleware
* Prevent users from changing usernames to premium ones
* refactor on zomars' branch (#801)
* rename `profile` -> `mutation`
* `createProtectedRouter()` helper
* move profile mutation to `viewer.`
* simplify checkUsername
* Auto scrolls to error when there is one
* Renames username helpers
* Follows db convention
Co-authored-by: Alex Johansson <alexander@n1s.se>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* feat: setup translations
* feat: i18n setup
* Update pages/settings/profile.tsx
Co-authored-by: Alex Johansson <alexander@n1s.se>
* fix: abstract locale hook
* fix: set default locale if preferred locale is not supported
* Revert "fix: set default locale if preferred locale is not supported"
This reverts commit e2a3d81371.
* fix: set default locale if preferred locale is not supported
* fix: use 1 namespace and remove unnecessary logs
* fix: yarn.lock
* fix: linting errors
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex Johansson <alexander@n1s.se>
* chore: change calendso strings to cal.com
* rebase LICENSE
* rebase LICENSE
* strings that were missed
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* No reconfirmation needed when rescheduling
* adapted success page
* Parse query as string
Co-authored-by: nicolas <privat@nicolasjessen.de>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
Co-authored-by: Peer_Rich <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Heavy WIP
* More WIP
* Playing with backwards compat
* Moar wip
* wip
* Email changes for group feature
* Committing in redundant migrations for reference
* Combine all WIP migrations into a single feature migration
* Make backup of current version of radio area pending refactor
* Improved accessibility through keyboard
* Cleanup in seperate commit so I can cherrypick later
* Added RadioArea component
* wip
* Ignore .yarn file
* Kinda stable
* Getting closer...
* Hide header when there are only personal events
* Added uid to event create, updated EventTypeDescription
* Delete redundant migration
* Committing new team related migrations
* Optimising & implemented backwards compatibility
* Removed now redundant pages
* Undid prototyping to calendarClient I did not end up using
* Properly typed Select & fixed lint throughout
* How'd that get here, removed.
* TODO: investigate why userData is not compatible with passed type
* This likely matches the event type that is created for a user
* Few bugfixes
* Adding datepicker optimisations
* Fixed new event type spacing, initial profile should always be there
* Gave NEXT_PUBLIC_BASE_URL a try but I think it's not the right solution
* Updated EventTypeDescription to account for long titles, added logo to team page.
* Added logo to team query
* Added cancel Cypress test because an upcoming merge contains changes
* Fix for when the event type description is long
* Turned Theme into the useTheme hook, and made it fully compatible with teams pages
* Built AvatarGroup ui component + moved Avatar to ui
* Give the avatar some space fom the description
* Fixed timeZone selector
* Disabled tooltip +1-...
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>