* Add changes for the upgrade dialog
* Resolve the free org to any org type besides Families
* Resolve the pr comments on navigation
* resolve family plan upgrade from free
* add messaging for finish sign up component
* Add product enum for finish sign up components
* Allow confirmation details component to display secret manager confirmation
* add FinishSignUp component
- Started as exact copy of trial initiation component
- Consolidated with secrets manager trial components
* Integration finish sign up component into routing
- Use anon layout component
- Add resolver to pass the accurate title to the layout
* migrate to product tier type
* use existing ProductType enum
* migrate to accept org service
* fix query param parsing for free trial text
* migrate finish sign up to complete trial naming
* migrate fully to productTier
* fix import of free trial resolver
* increase max width of anon layout
* add auth-input component
* refactor component makeup
* export the users password if needed to auto login the user
* handle login situations where a stepper isn't used
* fix type check
* allow max width of anon layout to be configurable
* remove account created toast
* update productTier query param in text resolver
* set maxWidth for secrets manager trial route
* parse product query param as an int
* properly show registration error
* update routes to be from the root rather than relative
* install updated prettier and apply fixes
* fix missing password in test
---------
Co-authored-by: Conner Turnbull <133619638+cturnbull-bitwarden@users.noreply.github.com>
* Creating a landing page for SM, where user can request access from admins
* moving files to better folder, also fixing UI
* updating file paths
* cleaning up the code
* Updating API request to be the new one, and fixing HTML
* Adding coowners
* Updating OrganizaitonId in the request model to be a Guid
* Update apps/web/src/app/secrets-manager/secrets-manager-landing/request-sm-access.component.ts
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* Update apps/web/src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update apps/web/src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Suggested changes from Maceij and Thomas
* fixing merge issues
* fixing issues
* Fixing logic to match top bar
* updating file name to not start with a capital letter
* renaming folder
* updating names
* Getting around the lint issue
* fixing lint issues
* Changes requested by Vicky
* Maciej suggested changes
* Fixing comments
* Update apps/web/src/app/secrets-manager/secrets-manager-landing/sm-landing-api.service.ts
Thomas's suggested improvement
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* ui fixes
* New awesome changes, to include the scenario where a Provider user is logged in, and to handle if an admin needs instructions to enable SM for themselves
* renaming fuctions and variables
---------
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* setup SetPassword component
* accept query params
* add InputPasswordComponent to template
* add route
* add dynamic translation with org name
* feature flag route
* setup onInit
* add set password logic
* move to libs
* remove comments
* update AuthGuard routing
* use ToastService
* replace deprecated methods
* replace orgId input with policy input
* use getter for msg instead of ngOnInit
* cleanup
* refactor to use services
* more refactoring of service
* address browser routing and translations
* add desktop service
* simplify queryParam handler
* remove ngOnDestroy
* small edits
* use inject()
* add jsdocs
* create basic tests
* add success toasts on successfuly set password
* add tests
* update feature-flag
* move model to service
* refactor client services to override setPassword()
* add error handling to setPassword()
* move auto enroll logic to service
* update tests
* fix test
* adjust padding on password-callout list
* revert refactor of auto enroll logic
* refactor keyPair generation to own method
* update page title and button text
* update pageSubtitle and translations
* fix test
* refactor "Assign collections" to "Assign to collections"
* show singular or plural version of collection assignment success message
* update singular and plural warning text
* refactor switch to be an `if`
* Added function to return cipherview observable and trigger the decryption process if the cipherviews$ observable returns empty
* Updated the vault component to use getCipherViews$ observable function
* converted vault banner to standalone component
* converted vault header to standalone component
* fixed unawaited promises
converted component to standalone component
* cleaned up vault module
* fixed imports
* refactored getCipherView$ observable
* refactored onVaultItemsEvent to switch case
* Refactored to use toast service instead of platform utils service for toast
* Added function to return cipherview observable and trigger the decryption process if the cipherviews$ observable returns empty
* Updated the vault component to use getCipherViews$ observable function
* converted vault banner to standalone component
* converted vault header to standalone component
* fixed unawaited promises
converted component to standalone component
* cleaned up vault module
* fixed imports
* refactored getCipherView$ observable
* refactored onVaultItemsEvent to switch case
* Refactored to use toast service instead of platform utils service for toast
* merged with main and fixed conflicts
* reordered standalone property
* converted components to standalone
* cleaned up ng module for org vault
* cleaned up vault module individual vault
* fixed conflicts
* Replaced deprecated toast service
* refactored to use switch case for org vault
* fixed comments and fixed failing tests
reverted to use getAllDecrypted
* Add shared duo component
* Fix duo import
* Fix wrong i18n service DI in duo desktop component
* Remove duo v2
* Add override to functions
* Remove web duo implementation
* Update apps/browser/src/auth/popup/two-factor-auth-duo.component.ts
Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
* Update apps/desktop/src/auth/two-factor-auth-duo.component.ts
Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
* Update libs/angular/src/auth/components/two-factor-auth/two-factor-auth-duo.component.ts
Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
* Fix missing service on duo components
* Fix missing service on base duo auth component
* Fix constructor super calls in duo auth component
* Fix duo auth components incorrectly extending base class
---------
Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
* PM-6198 - Majority of client work done; WIP on registration finish comp
* PM-6198 - Registration Finish - Add registerVerificationEmailClicked logic
* PM-6198 - RegistrationLinkExpired component; added translations on other clients just in case we use the component on other clients in the future.
* PM-6198 - Clean up comment
* initial add of assign collections component
* grab cipherId from query params
* add organization selection for moving a cipher
* add multi-select for collections
* add transfer of cipher to an organization
* temp: do not show assign collections while a cipher already has an organization
* account for initial collections for a cipher
* block assign-collections route with feature flag
* replace hardcoded string with i18n
* separate out async calls to switchMap to avoid async subscribe
* use local cipher rather than decrypting again
* use anchor for better semantics
* migrate form submission to bitSubmit directive
* swap to "assign" rather than "save"
* integrate with base AssignCollections component
* clean up messages file
* remove unneeded takeUntilDestroyed
* remove unneeded bitFormButton
* remove unused translations
* lint fix
* refactor assign-collections component to take in a button reference
- This allows consuming components to not have to worry about loading/disabled states
- The base AssignCollections component will change the submit button when supplied
* Implement multi-worker encryption service
* Fix feature flag being flipped and check for empty input earlier
* Add tests
* Small cleanup
* Remove restricted import
* Rename feature flag
* Refactor to BulkEncryptService
* Rename feature flag
* Fix cipher service spec
* Implement browser bulk encryption service
* Un-deprecate browserbulkencryptservice
* Load browser bulk encrypt service on feature flag asynchronously
* Fix bulk encryption service factories
* Deprecate BrowserMultithreadEncryptServiceImplementation
* Copy tests for browser-bulk-encrypt-service-implementation from browser-multithread-encrypt-service-implementation
* Make sure desktop uses non-bulk fallback during feature rollout
* Rename FallbackBulkEncryptService and fix service dependency issue
* Disable bulk encrypt service on mv3
* Change condition order to avoid expensive api call
* Set default hardware concurrency to 1 if not available
* Make getdecrypteditemfromworker private
* Fix cli build
* Add check for key being null
The people screen has a button that can be clicked to open a modal for
inviting new users to an organization. This modal depends on data from
the people list for conditional logic, like whether or not the seat count
cor the organization has been reached. If the modal is opened before the
people list loads these conditions can not process correctly, causing
bugs.
This commit disabled the button until the people list loads to prevent
this kind of behavior.
When removing boostrap it seems the hidden attribute to the file inputs stops working. This implements a "quick" fix by just adding the tw-hidden class.
* Add provider portal members page behind a FF
* Fix reinvite issue
* Import scrolling module
* Add deprecations to old classes
* Move members.component init to constructor
* Rename new-base.people.component to base.members.component
* Hide bulk reinvite when no users can be re-invited on AC members page
* Rename events() to openEventsDialog()
* Fix return type for members component getUsers()
* Make table headers sortable
* Extract row height class to ts file
* Convert open methods to static methods for bulk dialogs
* Rename and refactor member-dialog.component
* Prevent event emission for searchControl and set filter in members component constructor
* use featureFlaggedRoute rather than using FF in components
* Add BaseBulkConfirmComponent for use in both web and bit-web
* Add BaseBulkRemoveComponent for use in both web and bit-web
* Thomas' feedback on base confirm/remove
* Remaining feedback
* hide duplicate iframe
* add comment
* Moved braintree styling to plugins.scss
* Moved next to other braintree-sheet
---------
Co-authored-by: Conner Turnbull <cturnbull@bitwarden.com>
The Avatar customize button appeared below the avatar after removing Boostrap. This resolves it by adding flex, it also has the added benefit of aligning the button vertically as it's currently slightly misaligned.
* fixed issue with clearing search index state
* clear user index before account is totally cleaned up
* added logout clear on option
* removed redundant clear index from logout
* added feature flag
* added new menu drop down and put behind feature flag
* added permanentlyDeleteSelected to the menu
* added permanentlyDeleteSelected to the menu
* wired up logic to show to hide menu drop down items
* modified the bulk collection assignment to work with end user vault
* wired up delete and move to folder
* merged bulk management actions header into old leveraging the feature flag
* added ability to move personal items to an organization and set active collection when user is on a collection
* made collection required by default
* handled organization cipher share when personal items and org items are selected
* moved logic to determine warning text to component class
* moved logic to determine warning text to component class
* Improved hide or show logic for menu
* added bullet point to bulk assignment dialog content
* changed description for move to folder
* Fixed issue were all collections are retrived instead of only can manage, and added logic to get collections associated with a cipher
* added inline assign to collections
* added logic to disable three dot to template
* Updated logic to retreive shared collection ids between ciphers
* Added logic to make attachment view only, show or hide
* Only show menu options when there are options available
* Comments cleanup
* update cipher row to disable menu instead of hide
* Put add to folder behind feature flag
* ensured old menu behaviour is shown when feature flag is turned off
* refactored code base on code review suggestions
* fixed bug with available collections
* Made assign to collections resuable
made pluralize a pipe instead
* Utilized the resuable assign to collections component on the web
* changed description message for collection assignment
* fixed bug with ExpressionChangedAfterItHasBeenCheckedError
* Added changedetectorref markForCheck
* removed redundant startwith as seed value has been added
* made code review suggestions
* fixed bug where assign to collections shows up in trash filter
* removed bitInput
* refactored based on code review comments
* added reference ticket
* [PM-9341] Cannot assign to collections when filtering by My Vault (#9862)
* Add checks for org id myvault
* made myvault id a constant
* show bulk move is set by individual vault and it is needed so assign to collections does not show up in trash filter (#9876)
* Fixed issue where selectedOrgId is null (#9879)
* Fix bug introduced with assigning items to a collection (#9897)
* [PM-9601] [PM-9602] When collection management setting is turned on view only collections and assign to collections menu option show up (#10047)
* Only show collections with edit access on individual vault
* remove unused arguments
* Add the changes to remove automasync for family org
* Remove changes to the form field file
* Rename productType to productTierType
* Add Upload license and License file
* Hide the License and upload License label
* Resolve the issue of Validation required for family org
We currently duplicate some logic between our layouts. In an effort to streamline our experience I'm exploring if we can create a web specific layout that handles some of this.
* Added new report card and FeatureFlag for MemberAccessReport
* Add new "isEnterpriseOrgGuard"
* Add member access icon
* Show upgrade organization dialog for enterprise on member access report click
* verify member access featureflag on enterprise org guard
* add comment with TODO information for follow up task
* Initial member access report component
* Improved readability, removed path to wrong component and refactored buildReports to use the productType
* finished MemberAccessReport layout and added temporary service to provide mock data
* Moved member-access-report files to bitwarden_license/
Removed unnecessary files
* Added new tools path on bitwarden_license to the CODEOWNERS file
* added member access description to the messages.json
* layout changes to member access report
* Created new reports-routing under bitwarden_license
Moved member-access-report files to corresponding subfolder
* Added search logic
* Removed routing from member-access-report BL component on OSS.
Added member-access-report navigation to organizations-routing on BL
* removed unnecessary ng-container
* Added OrganizationPermissionsGuard and canAccessReports validation to member-access-report navigation
* replaced deprecated search code with searchControl
* Address PR feedback
* removed unnecessary canAccessReports method
* Added report-utils class with generic functions to support report operations
* Added member access report mock
* Added member access report specific logic
* Splitted code into different classes that explained their objective.
* fixed member access report service test cases
* Addressed PR feedback
* Creating a service to return the data for the member access report
* added missing ExportHelper on index.ts
* Corrected property names on member access report component view
* removed duplicated service
* Removed whitespace from email form when setting up families sponsorship
* Moved sponsorship components to billing folder
* Updated to use existing input stripping directive
* Updated appInputStripSpaces to update both the element and the control value
* Removed the call to Renderer2 as it wasn't needed
* PM-2060 Update Two Factor Yubikey Dialog
* PM-2060 Removed old code
* PM-2060 Added event emitter to capture enabled status
* PM-2060 Addressed review comments
* PM-2060 Change in html file for existing key options
* PM-2060 Addressed the latest comments
* PM-2060 Updated remove method as per comments
* PM-2060 Added throw error to enable and disbale in base component
* tailwind updates to yubikey two factor settings
* fixing imports
* remove disable dialog when keys are null to use the error toast
* PM-2060 Addressed the review comments and fixed conflicts
* Removed super.enable removed extra emitter from component class.
* fixing adding multiple keys in one session of a dialog.
* removed thrown error
---------
Co-authored-by: Ike Kottlowski <ikottlowski@bitwarden.com>
Co-authored-by: Ike <137194738+ike-kottlowski@users.noreply.github.com>
* Migrate vault lock screen to component library
* Remove unnecessary divs
* Remove card from trial
* Migrate to standalone component
* refactor to use AnonLayout
* revert login component
* migrate web component to bitSubmit
* remove class
* use inject
* update web pageTitle translation
* validate on submit, not on blur
---------
Co-authored-by: rr-bw <102181210+rr-bw@users.noreply.github.com>
* Added new report card and FeatureFlag for MemberAccessReport
* Add new "isEnterpriseOrgGuard"
* Add member access icon
* Show upgrade organization dialog for enterprise on member access report click
* verify member access featureflag on enterprise org guard
* add comment with TODO information for follow up task
* Initial member access report component
* Improved readability, removed path to wrong component and refactored buildReports to use the productType
* finished MemberAccessReport layout and added temporary service to provide mock data
* Moved member-access-report files to bitwarden_license/
Removed unnecessary files
* Added new tools path on bitwarden_license to the CODEOWNERS file
* added member access description to the messages.json
* layout changes to member access report
* Created new reports-routing under bitwarden_license
Moved member-access-report files to corresponding subfolder
* Added search logic
* Removed routing from member-access-report BL component on OSS.
Added member-access-report navigation to organizations-routing on BL
* removed unnecessary ng-container
* Added OrganizationPermissionsGuard and canAccessReports validation to member-access-report navigation
* replaced deprecated search code with searchControl
* Address PR feedback
* removed unnecessary canAccessReports method
* Add shared two-factor-options component
* Add new refactored two-factor-auth component and totp auth componnet behind feature flag
* Fix default value for twofactorcomponentrefactor featureflag
* create onload() for qrious as well as error messaging if QR code cannot be displayed
* button and message updates and formpromise removal
* load QR script async
* rename and reorder methods
* PM-7321 - Temp add input password
* PM-7321 - update input password based on latest PR changes to test.
* PM-7321 - Progress on testing input password component + RegistrationFinishComponent checks
* PM-7321 - more progress on registration finish.
* PM-7321 - Wire up RegistrationFinishRequest model + AccountApiService abstraction + implementation changes for new method.
* PM-7321 - WIP Registration Finish - wiring up request building and API call on submit.
* PM-7321 - WIP registratin finish
* PM-7321 - WIP on creating registration-finish service + web override to add org invite handling
* PM-7321 - (1) Move web-registration-finish svc to web (2) Wire up exports (3) wire up RegistrationFinishComponent to call registration finish service
* PM-7321 - Get CLI building
* PM-7321 - Move all finish registration service and content to registration-finish feature folder.
* PM-7321 - Fix RegistrationFinishService config
* PM-7321 - RegistrationFinishComponent- handlePasswordFormSubmit - error handling WIP
* PM-7321 - InputPasswordComp - Update to accept masterPasswordPolicyOptions as input instead of retrieving it as parent components in different scenarios will need to retrieve the policies differently (e.g., orgInvite token in registration vs direct call via org id post SSO on set password)
* PM-7321 - Registration Finish - Add web specific logic for retrieving master password policies and passing them into the input password component.
* PM-7321 - Registration Start - Send email via query param to registration finish page so it can create masterKey
* PM-7321 - InputPassword comp - (1) Add loading input (2) Add email validation to submit logic.
* PM-7321 - Registration Finish - Add submitting state and pass into input password so that the rest of the registration process keeps the child form disabled.
* PM-7321 - Registration Finish - use validation service for error handling.
* PM-7321 - All register routes must be dynamic and change if the feature flag changes.
* PM-7321 - Test registration finish services.
* PM-7321 - RegisterRouteService - Add comment documenting why the service exists.
* PM-7321 - Add missing input password translations to browser & desktop
* PM-7321 - WebRegistrationFinishSvc - apply PR feedback
* remove infinite scroll, use virtual scroll instead
* use TableDataSource for search
* allow sorting by name
* replacing PlatformUtilsService.showToast with ToastService
* misc FIXMEs
* Guard Organization Info route - Owners only
* Guard TwoFactor route - Owners only and Organization must be able to use 2FA
* Update guards to use function syntax
---------
Co-authored-by: Addison Beck <hello@addisonbeck.com>
* Add empty state for invoices
* Make cards on create client dialog tabbable
* Add space in $ / month per member
* Mute text, remove (Monthly) and right align menu on clients table
* Made used seats account for all users and fixed column sort for used/remaining
* Resize pricing cards
* Rename assignedSeats to occupiedSeats
* Document the `org-permissions` guard in code
* Restructure the `org-permissions` guard to be Angular 17+ compliant
* Update the `org-permissions` guard to use `ToastService`
* Simplify callback function sigantures
* Remove unused test object
* Fix updated route from merge
* Document that `is-paid-org` guard in code
* Remove unused `MessagingService` dependency
* Make assertions about the way the is-paid-org guard should behave
* Restructure the `is-paid-org` guard to be Angular 17+ compliant
* Random commit to get the build job moving
* Undo previous commit
* Document the `org-redirect` guard in code
* Make assertions about the way the `org-redirect` guard should behave
* Restructure the `org-redirect` guard to be Angular 17+ compliant
* Convert data parameter to function parameter
* Convert a data parameter to a function parameter that was missed
* Pass redirect function to default organization route
* Introduce `verificationType`
* Update template to use `verificationType`
* Implement a path for `verificationType = 'custom'`
* Delete `clientSideOnlyVerification`
* Update `EnrollMasterPasswordResetComponent` to include a server-side hash check
* Better describe the custom scenerio through comments
* Add an example of the custom verficiation scenerio
* Move execution of verification function into try/catch
* Migrate existing uses of `clientSideOnlyVerification`
* Use generic type option instead of casting
* Change "given" to "determined" in a comment
* Replace PlatformUtilsService with ToastService
* Remove unneeded templates
* Implement table filtering function
* Move member-only methods from base class to subclass
* Move utility functions inside new MemberTableDataSource
* Rename PeopleComponent to MembersComponent
* Move vault-timeout-input to @bitwarden/auth/angular
Move vault-timeout-input.component.ts to @bitwarden/auth/angular/vault-timeout-input
Expose via barrel file
Fix imports on clients
* Add dependencies to package.json
Not necessary right now, but good practice for once we move to building each package independently
* Make VaultTimeoutInputComponent a standalone component
* Update selector to present team ownership
* Use new standalone on web
Move vault-timeout-input.component.html to @bitwarden/auth/angular/vault-timeout-input/
Delete old vault-timeout-input.component on web
Register new component on loose-components-module
Update used selector in preferences.component
* Remove unneeded export of VaultTimeoutInputComponent
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>