Commit Graph

135 Commits

Author SHA1 Message Date
Nick Krantz 02993f7018
[PM-10439] Vault generator components (#11350)
* add password/username generator strings to web app

* remove JSLibServicesModule from generator dependencies

* integrate username and password generators into browser extension

* integrate username and password generators into web app

* move Jslib order back

* remove margin from within the generator components

* add alternative background to web generator dialog

* remove unneeded margin from username generator

* remove disable margin from div

* Revert "remove unneeded margin from username generator"

This reverts commit ae3067e3f2.

* remove CSS to alter internal margins of the generator components
2024-10-04 08:39:29 -05:00
✨ Audrey ✨ d1c3a98efb
introduce additional rx helpers (#11361) 2024-10-02 14:47:22 -04:00
Jordan Aasen 22a9e8788b
fix rows for textarea in text send (#11362) 2024-10-02 19:03:16 +02:00
Jordan Aasen 97a97c4b2d
disable copy button if no password is present (#11349) 2024-10-01 22:38:27 +02:00
Jordan Aasen dab60dbaea
[PM-11926] - send created redirect (#11140)
* send created redirect

* fix test

* fix test

* fix send form save

* return SendData from saveSend

* When saving a Send, bubble up a SendView which can be passed to the SendCreated component

* Use events to initiate navigation and move actual navigation into client-specific component

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-10-01 21:58:00 +02:00
Jordan Aasen ab5a02f483
[PM-12774] - don't display filters when no sends are available (#11298)
* don't display filters when no sends are available

* move logic down. add conditional class

* fix logic for send filters
2024-10-01 20:46:10 +02:00
Jordan Aasen 5a1583cb0a
[PM-12732] - fix new send button (#11266)
* fix new send button

* simplify logic. use static class name where possible
2024-10-01 11:36:34 +02:00
Jordan Aasen 2f8ab087ff
[PM-12721] - add copy button to send options password field (#11295)
* add copy button to  send options form

* update copy language

* fix copy button value text
2024-09-30 13:56:32 +02:00
✨ Audrey ✨ 2e1cd127c7
use revised configuration name when generating send passwords (#11290) 2024-09-27 10:58:01 -04:00
✨ Audrey ✨ 433ae13513
[PM-5611] username generator panel (#11201)
* add username and email engines to generators
* introduce username and email settings components
* introduce generator algorithm metadata
* inline generator policies
* wait until settings are available during generation
2024-09-27 09:02:59 -04:00
Jordan Aasen f1ac1d44e3
[PM-12716] - add missing password generation function to send form password (#11273)
* add generatePassword function to send options

* add generatePassword function
2024-09-27 13:42:14 +02:00
Jordan Aasen 739c76a24f
[PM-12704] - fix loading state for send list (#11264)
* fix loading state for send service

* fix test

* fix test and service
2024-09-27 13:38:50 +02:00
Jordan Aasen cd9045483b
[PM-12561] - add data attrs for send form (#11209)
* add data attrs for send form

* Add data-testid for toggle view password

* Revert "Add data-testid for toggle view password"

This reverts commit bd6fcc8c1b.

* move dataid to component

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-25 14:03:42 +02:00
Jordan Aasen d587be1831
[PM-12403] - Implement Remove Send policy on Add/edit screen (#11178)
* disable edit send if policy requires

* remove unused var

* don't display free bitwarden families button

* Revert "don't display free bitwarden families button"

This reverts commit 832564d705.

* use config instead of policy service

* Revert "don't display free bitwarden families button"

This reverts commit 832564d705.

* remove unnecessary code

* Use short when transforming deletionDate instead of fixed format

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-25 11:07:01 +00:00
Jordan Aasen 8507097fe7
fix send password input (#11208) 2024-09-24 11:45:08 +02:00
Bernd Schoolmann d92b2cbea2
[PM-11477] Remove deprecated cryptoservice functions (#10854)
* Remove deprecated cryptoservice functions

* Use getUserkeyWithLegacySupport to get userkey

* Fix tests

* Fix tests

* Fix tests

* Remove unused cryptoservice instances

* Fix build

* Remove unused apiService in constructor

* Fix encryption

* Ensure passed in key is used if present

* Fix sends and folders

* Fix tests

* Remove logged key

* Fix import for account restricted keys
2024-09-24 11:28:33 +02:00
Jordan Aasen 6d9223fac7
[PM-12505] - add delete send button to footer (#11187)
* add delete send button to footer

* add basic error handling

* update copy. user bitAction

* use arrow function. remove border class
2024-09-24 09:26:25 +02:00
Jordan Aasen aa91a8d5ca
fix send form defects (#11212) 2024-09-24 09:12:27 +02:00
✨ Audrey ✨ cf48db5ed1
[PM-11418] generator policy constraints (#11014)
* add constraint support to UserStateSubject
* add dynamic constraints
* implement password policy constraints
* replace policy evaluator with constraints in credential generation service
* add cascade between minNumber and minSpecial

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
2024-09-23 11:07:47 +02:00
Jordan Aasen 992964fc08
disable hide email when in policy in send options (#11161) 2024-09-19 22:15:11 +02:00
Jordan Aasen 01f668e648
add send link copy (#11160) 2024-09-19 21:59:25 +02:00
Jordan Aasen c4d66a1383
[PM-11904] - send options form (#11142)
* send options form

* remove commented code

* fix margin. update i18 key

* remove unecessary input

* remove unnecessary typing. DRY up messages
2024-09-19 20:53:25 +02:00
Daniel James Smith 7f9c5cedaf
Delete SendForm storybook stories (#11149)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-19 15:34:53 +03:00
Jordan Aasen 00f2317a82
[PM-11903] - add file send component (#11132)
* wip - send file details

* wip - file send

* send file details

* fix click on send list container

* remove popup code

* remove popup code

* finalize send file details

* address PR feedback. add base form to send form

* revert changes to send list items container

* revert changes to send list items container

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
2024-09-18 14:36:53 -07:00
Jordan Aasen c9bcdd60ac
use tw classes for svg colors in no-credentials.svg (#11129) 2024-09-18 18:50:49 +02:00
Daniel James Smith be6f257398
Fix click on copy send link and delete send buttons (#11120)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-18 09:17:07 -04:00
Jordan Aasen f8fc6269f2
[PM-11899] - send text details component (#11002)
* Temporary local changes not meant to be merged

* WIP - send text details

* send text details

* remove extraneous code

* create base send details component

* remove file components

* fix send text details form

* remove comments

* fix send text details component

* revert type changes

* send created redirect

* Revert "send created redirect"

This reverts commit 36711d54a3.

* Removed hint under textArea, as per design

* Removed unused message keys

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-18 14:04:51 +02:00
Jordan Aasen 1a961ee294
fix send list item button hover (#11109) 2024-09-17 21:05:19 +02:00
Daniel James Smith f70b3df2d2
[PM-11949] Fix generating and copying export password (#10999)
* Use password field value instead of local variable for copy to clipboard

Use appCopyClick directive instead of manually copying and showing success toast

* Add missing "copySuccessful" message key to desktop and web

* Remove whitespace from web en/messages.json

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-12 20:04:39 +02:00
Victoria League a0a0a7ae13
[CL-395] Add and use art colors in svgs (#10990) 2024-09-11 14:54:07 -04:00
✨ Audrey ✨ 4128b18b27
[PM-8279] password generation component (#10805) 2024-09-10 12:43:33 -04:00
Jordan Aasen 9e45e32c7d
[PM-8277] - Password generator history component (#10921) 2024-09-09 09:25:41 -04:00
Daniel James Smith 74d510332d
[PM-9884] Create empty send add/edit page for browser (#10155)
* Move SendV2component into send-v2 subFolder

* Create SendFormContainer and related services

* Add initial SendFormComponent which uses the SendFormContainer

* Remove AdditionalOptionsSectionComponent which will be added with a future PR

* Add libs/tools/send to root tsconfig

* Register libs/tools/send/send-ui with root jest.config.js

* Register libs/tools/send/send-ui with root tailwind.config.js

* Create empty Send add edit page

- Introduces conditional routing based on extension refresh feature flag
- After selecting a Send type via the New button navigate to the new send-add-edit page and build a SendFormConfig

* Fix service injection on DefaultSendFormService

* Rename setHeader into getHeaderText, make it private and add documentation

* Set radix/base to 10 for parseInt

* Add documentation

* Rename local variable

* Removed unneeded loading state

* Remove unused originalSendId

* Run prettier

* Add link to edit an existing send

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-09-05 17:46:03 +02:00
Jordan Aasen 7cfd6577ac
fix typography to match design (#10888) 2024-09-05 13:26:12 +02:00
✨ Audrey ✨ 7e1706a0ec
[PM-5607] password generator component & configuration (#10767) 2024-08-29 09:27:10 -04:00
✨ Audrey ✨ 8c4b8d71ea
[PM-5609] passphrase settings component & services (#10535) 2024-08-28 09:26:17 -04:00
Jordan Aasen 140b76d021
[PM-8490] - Add generate password to password-protected export (#10539)
* WIP generate password in export vault

* finish generate password in export component

* use bitIconButton directive

* add copy link to file password input

* change copy password message
2024-08-20 17:16:54 -07:00
SmithThe4th dedd7f1b5c
[PM-10607] Require userId for getKeyForCipherKeyDecryption (#10509)
* updated cipher service to stop using the deprecated getUserKeyWithLegacySupport and use the version that requires a user id

* Added account service mock

* fixed cipher test

* Fixed test

* removed async from encryptCipher

* updated encryptSharedCipher to pass userId to the encrypt function

* Pass userId to getUserKeyWithLegacySupport on encryptSharedCipher

* pass in userid when setting masterKeyEncryptedUserKey

* Added activer usedId to new web refresh function
2024-08-20 11:00:48 -05:00
Jordan Aasen 333c9f3f4f
fix no-send icon (#10530) 2024-08-15 15:24:28 -07:00
Jordan Aasen 199ac3de45
[PM-10045] - SendCreated page (#10331)
* WIP - send created component

* WIP - send created page

* finalize send created component and specs

* add extra padding

* undo browser extension refresh

* fix tests

* fix error
2024-08-15 07:59:00 -07:00
Will Martin 7571c766e0
[PM-10813] add eslint rule to restrict imports from `apps` in `libs` (#10481)
* restrict app imports in libs

* add eslint ignore comments
2024-08-14 11:24:29 -07:00
✨ Audrey ✨ cbe7ae68cc
[PM-10107] evaluate the override password type policy (#10277) 2024-08-09 07:54:00 -05:00
Jordan Aasen af14c3fe6d
[PM-9854] - Send Search Component (#10278)
* send list items container

* update send list items container

* finalize send list container

* remove unecessary file

* undo change to config

* prefer use of takeUntilDestroyed

* add send items service

* and send list filters and service

* undo changes to jest config

* add specs for send list filters

* Revert "Merge branch 'PM-9853' into PM-9852"

This reverts commit 9f65ded13f, reversing
changes made to 63f95600e8.

* add send items service

* Revert "Revert "Merge branch 'PM-9853' into PM-9852""

This reverts commit 81e9860c25.

* finish send search

* fix formControlName

* add specs

* finalize send search

* layout and copy fixes

* cleanup

* Remove unneeded empty file

* Remove the erroneous addition of send-list-filters to vault-export tsconfig

* update tests

* hide send list filters for non-premium users

* fix and add specss

* Fix small typo

* Re-add missing tests

* Remove unused NgZone

* Rename selector for send-search

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
2024-08-07 14:34:03 +02:00
Oscar Hinton c50a9063bc
[PM-2340] Enable use-lifecycle-interface (#5488)
Enables one of the recommended rules of @angular-eslint. Since this rule was fairly trivial to fix and has no QA effects it seemed reasonable to migrate all code.
2024-08-02 13:59:38 -04:00
✨ Audrey ✨ d26ea1be5f
[PM-9423] use observable user encryptor in secret state (#10271) 2024-08-01 17:25:10 -04:00
✨ Audrey ✨ cbac5fde11
[PM-10259] improve forwarder rpc error handling (#10330)
* only accept `application/json` responses
2024-07-30 15:39:49 -04:00
✨ Audrey ✨ 8c78959aaf
[PM-9613] port forwarders to integrations (#10075)
* introduced forwarder integrations
* simply contexts
* report error and message when both are present in an RPC response
2024-07-30 08:40:52 -04:00
Jordan Aasen 0bf0d1ac96
[PM-9853] - Add SendListItemsContainer component (#10193)
* send list items container

* update send list items container

* finalize send list container

* remove unecessary file

* undo change to config

* prefer use of takeUntilDestroyed

* add specss
2024-07-25 21:39:20 +02:00
Daniel James Smith 92692388cb
Move stranded enum into @bitwarden/vault-export-ui (#10247)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-07-25 11:17:35 -04:00
renovate[bot] b9eb4003a1
[deps] Autofill: Update prettier to v3.3.3 (#10228)
* [deps] Autofill: Update prettier to v3.3.3

* prettier formatting changes

* fix SyntaxError for literal @ inline html

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Prusik <jprusik@classynemesis.com>
2024-07-25 11:11:55 -04:00
Jordan Aasen 5d2fe9403b
[PM-9852] - Add SendListFilters component (#10192)
* and send list filters and service

* undo changes to jest config

* add specs for send list filters

* send list items container

* update send list items container

* finalize send list container

* Revert "Merge branch 'PM-9853' into PM-9852"

This reverts commit 9f65ded13f, reversing
changes made to 63f95600e8.

* fix icons and class name

* fix names. add export

* add more coverage
2024-07-23 11:48:20 -07:00
✨ Audrey ✨ 52f6b24020
[PM-9118] fix duplicate website name (#9782) 2024-07-22 15:22:08 -04:00
✨ Audrey ✨ e22568f05a
[PM-9422] generator engines (#10032)
* introduce email-randomizer
* introduce email-calculator
* introduce password-randomizer
* introduce username-randomizer
* move randomizer abstraction
2024-07-19 16:34:39 -04:00
Daniel James Smith 1320d96cb4
[PM-9869] Create SendFormContainer (#10147)
* Move SendV2component into send-v2 subFolder

* Create SendFormContainer and related services

* Add initial SendFormComponent which uses the SendFormContainer

* Remove AdditionalOptionsSectionComponent which will be added with a future PR

* Add libs/tools/send to root tsconfig

* Register libs/tools/send/send-ui with root jest.config.js

* Register libs/tools/send/send-ui with root tailwind.config.js

* Fix service injection on DefaultSendFormService

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-07-19 21:17:52 +02:00
aj-rosado 94d6cc3ef1
[PM-8780] Added validation to only display organizations with managed collections (#10065)
* Added validation to only display organizations with managed collections on the export org selector

* using the decryptedCollection$ directly instead of creating a new observable from the encryptedCollections array
2024-07-19 10:45:35 +01:00
Daniel James Smith cebbb9486e
[PM-9855] Add premium badge to new file send item dropdown (#10137)
* Create browsers SendV2 component

* Add premium badge to new file send item dropdown

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-07-18 14:41:09 +01:00
aj-rosado ea76760782
[AC-2508][AC-2511] member access report view and export logic (#10011)
* 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
2024-07-11 17:11:05 +01:00
Daniel James Smith 33de685b40
[PM-5165][PM-8645] Migrate password strength component (#9912)
* Create standalone password-strength-v2 component

* Add deprecation notice to old component

* PM-8645: Use new password-strength component on export

* Remove unneccessary variable

* Remove setPasswordScoreText method

* Rename passwordStrengthResult to passwordStrengthScore and assign proper type

* Add missing types

* Document component Inputs/Outputs

* Add unit tests

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-07-10 16:59:17 +02:00
✨ Audrey ✨ cb400a1ba6
[PM-6394] remove policy evaluator cache (#9807) 2024-07-01 10:25:21 -04:00
✨ Audrey ✨ 1080d46aaf
[PM-9170] generator library migrations (#9812)
* migrate browser to generator libraries
* migrate cli to generator libraries
* migrate desktop to generator libraries
* migrate angular library to generator libraries
* migrate web to generator libraries
2024-06-27 12:16:04 -04:00
✨ Audrey ✨ a3514001c0
shuffle copied array (#9847) 2024-06-26 15:41:02 -04:00
Daniel James Smith 5a74371672
Create "new Send-button with type selection (#9842)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-06-26 17:08:18 +01:00
Daniel James Smith 1495b06736
Move send icons to @bitwarden/send-ui (#9840)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-06-26 15:52:55 +01:00
Daniel James Smith c35bbc522c
[PM-9051][PM-8641] Use reusable export-component on web (#9741)
* Add export-web.component

Introduce new export-web component
Delete old component
export.module - With export-web being standalone there's no need for a importModule
Change routing to load new component

* Prepare export.component to receive a orgId via the hosting-component

* Remove unused onSaved as it's replaced by onSuccessfulExport

* Refactor org-vault-export.component

Introduce new org-vault-export.component.html as the old component relied on the markup from password manager
Refactor org-vault-export.component
Retrieve organizationId from Route and pass it into the shared export.component
Ensure when exporting from AC to include all data from the selected org
org-vault-export.module - With the new component being standalone there's no need for a importModule
Change routing to load new org-vault-export component

* PM-8641 - Add success toast to base-export component
This ensures a success toast is shown on all clients consistently
Add missing entries into clients messages.json

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-06-25 19:17:03 +02:00
Jake Fink 0add2949c0
[PM-8772] move ranges to static properties on class (#9567)
* move ranges to static properties on class

* rename static properties
2024-06-25 08:21:02 -04:00
✨ Audrey ✨ 639debe91b
[PM-9008] factor generator-extensions into separate libraries (#9724) 2024-06-20 10:49:23 -04:00
Daniel James Smith 8d04731633
[PM-6568][PM-8820][Tech-Debt] Migrate all tools owned toasts to use CL ToastService instead of PlatformUtilsService (#9405)
* Migrate all tools owned toasts to use CL ToastService instead of PlatformUtilsService

* Fix test that was missing a mock

* Fix double checking file and file-content selection

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-06-19 18:28:47 +02:00
✨ Audrey ✨ 29d433a8a3
[PM-8959] fix barrel file imports (#9698) 2024-06-17 12:56:21 -04:00
✨ Audrey ✨ ce88038c0d
improve developer experience of generator extension symbols (#9690) 2024-06-17 11:10:00 -04:00
✨ Audrey ✨ 95554af9e2
[PM-8858] include only 1 digit in passphrase (#9632) 2024-06-17 15:55:18 +01:00
✨ Audrey ✨ 44b5971458
[PM-8857] fix passphrase missing number (#9634) 2024-06-14 13:19:51 -04:00
✨ Audrey ✨ 882a432ca6
[PM-7289] implement generator libraries (#9549)
This is a copy of the files. The source in `@bitwarden/common` will be deleted once
all of the applications have been ported to the library.
2024-06-11 16:06:37 -04:00
Vincent Salucci b169207b74
[AC-2647] Remove Flexible Collections MVP code (#9518)
* chore: organization.ts, remove refs to flexibleCollections and isManager, refs AC-2647

* chore: clean up callers of removed methods from organization.ts, refs AC-2647

* chore: access-selector, remove fc input and update permissionList param, refs AC-2647

* chore: update permissionList caller, update group-add-edit fc refs, and remove accessAll, refs AC-2647

* chore: update member-dialog fc callers, refs AC-2647

* chore: update bulk-collections-dialog fc callers, refs AC-2647

* chore: update collection-dialog fc callers, refs AC-2647

* chore: update simple fc caller to misc files, refs AC-2647

* chore: update member-dialog fc callers, refs AC-2647

* chore: remove accessAll references and update callers, refs AC-2647

* chore: update comment to specify v1 usage, refs AC-2647

* chore: remove unused message keys and code calls to use those messages, refs AC-2647

* chore: remove readonly false from access-selector model map function, refs AC-2647
2024-06-10 11:59:20 -05:00
Daniel James Smith de92720d7e
[PM-7289] Create generator libraries (#9432)
* Create and register @bitwarden/generator-core

- Create libs/tools/generator/core
- Register new library within tsconfigs
- Register new library within eslint.configs

* Create and register @bitwarden/generator-extensions

- Create libs/tools/generator/extensions
- Register new library within tsconfigs
- Register new library within eslint.configs

* Create and register @bitwarden/generator-components

- Create libs/tools/generator/components
- Register new library within tsconfigs
- Register new library within eslint.configs

* Update libs/tools/generator/components/package.json

Co-authored-by:  Audrey  <ajensen@bitwarden.com>

* Update libs/tools/generator/extensions/package.json

Co-authored-by:  Audrey  <ajensen@bitwarden.com>

* Add empty barrel files for new libs

* Fix extension of test.environment

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by:  Audrey  <ajensen@bitwarden.com>
2024-05-30 15:38:31 -04:00
Daniel James Smith 86d6be3187
[PM-8448] Create BItwarden Send UI library package (#9402)
* Create the send-ui library package

Create folder
Create package.json
Create jest config
Create tsconfig and tsconfig.spec.json
Create README
Add empty barrel file for exporting future members

* Register @bitwarden/send-ui with all clients and libs

* Register with eslint

* Fix linting issue with README

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-05-29 11:26:40 +01:00
Daniel James Smith c749447894
[PM-8254] Create shareable export component (#9246)
* Make export.component a standalone component

Fix lint issue with takeUntil

* Create shareable export.component.html

Copied existing export.component.html as that has already been migrated to use the component library components
Strip the markup from the dialog and the submit-button

* Add outputs to inform the hosting component about certain events (submit, loading, disabled)

Emit successful Export

Expose a form-id so the hosting component can bind to this form

Fix name of output

* Ensure that the file gets prefixed with `org`when exporting from an organization

* When exporting from an organization ensure Organization_ClientExportedVault is collected

* Add comments to the components outputs

* Better way of addressing the previously fixed lint issue

* Fix disabling the form not emitting the formDisabled state

* Add better comments to Outputs based on PR feedback

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-05-28 22:32:01 +02:00
Matt Gibson 37eef7731f
Prefer prefetching keys (#9289)
magical black-box key retrieval is slow, due to needing to repeatedly resolve (and potentially decrypt) keys. Doing the work up front is both more explicit and much faster.

It would be preferable to move OrganizationId to an opaque type in the models, but that has rippling effects all over the place and ultimately is stopped by vault filtering on strings rather than ids, but still calling the property `organizationId`, we need to fix that first.
2024-05-22 09:56:24 -04:00
Daniel James Smith a3d69047c7
[PM-8252] Use new user-verification for exports on all clients (#9244)
* Move/replace submit and userVerification logic from web into the BaseExportComponent

Add "@bitwarden/auth" as dependency to the vault-export-ui package
New submit logic also checks for password-encrypted exports which will be need for future UI updates on browser and desktop

* Remove import/passing of the unneeded UserVerificationService

* Remove app-user-verification from browser and desktop components as the new UI is opened as a self-contained dialog

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-05-21 13:02:16 +02:00
Matt Gibson ee690cd1ef
Use account service for getting account profile data. (#9133)
* Use account service for getting account profile data.

* desktop build fixes

* CLI build fixes

* Remove state service methods
2024-05-17 00:21:00 +02:00
rr-bw a42de41587
[PM-5363] PinService State Providers (#8244)
* move pinKeyEncryptedUserKey

* move pinKeyEncryptedUserKeyEphemeral

* remove comments, move docs

* cleanup

* use UserKeyDefinition

* refactor methods

* add migration

* fix browser dependency

* add tests for migration

* rename to pinService

* move state to PinService

* add PinService dep to CryptoService

* move protectedPin to state provider

* update service deps

* renaming

* move decryptUserKeyWithPin to pinService

* update service injection

* move more methods our of crypto service

* remove CryptoService dep from PinService and update service injection

* remove cryptoService reference

* add method to FakeMasterPasswordService

* fix circular dependency

* fix desktop service injection

* update browser dependencies

* add protectedPin to migrations

* move storePinKey to pinService

* update and clarify documentation

* more jsdoc updates

* update import paths

* refactor isPinLockSet method

* update state definitions

* initialize service before injecting into other services

* initialize service before injecting into other services (bw.ts)

* update clearOn and do additional cleanup

* clarify docs and naming

* assign abstract & private methods, add clarity to decryptAndMigrateOldPinKeyEncryptedMasterKey() method

* derived state (attempt)

* fix typos

* use accountService to get active user email

* use constant userId

* add derived state

* add get and clear for oldPinKeyEncryptedMasterKey

* require userId

* move pinProtected

* add clear methods

* remove pinProtected from account.ts and replace methods

* add methods to create and store pinKeyEncryptedUserKey

* add pinProtected/oldPinKeyEncrypterMasterKey to migration

* update migration tests

* update migration rollback tests

* update to systemService and decryptAndMigrate... method

* remove old test

* increase length of state definition name to meet test requirements

* rename 'TRANSIENT' to 'EPHEMERAL' for consistency

* fix tests for login strategies, vault-export, and fake MP service

* more updates to login-strategy tests

* write new tests for core pinKeyEncrypterUserKey methods and isPinSet

* write new tests for pinProtected and oldPinKeyEncryptedMasterKey methods

* minor test reformatting

* update test for decryptUserKeyWithPin()

* fix bug with oldPinKeyEncryptedMasterKey

* fix tests for vault-timeout-settings.service

* fix bitwarden-password-protected-importer test

* fix login strategy tests and auth-request.service test

* update pinService tests

* fix crypto service tests

* add jsdoc

* fix test file import

* update jsdocs for decryptAndMigrateOldPinKeyEncryptedMasterKey()

* update error messages and jsdocs

* add null checks, move userId retrievals

* update migration tests

* update stateService calls to require userId

* update test for decryptUserKeyWithPin()

* update oldPinKeyEncryptedMasterKey migration tests

* more test updates

* fix factory import

* update tests for isPinSet() and createProtectedPin()

* add test for makePinKey()

* add test for createPinKeyEncryptedUserKey()

* add tests for getPinLockType()

* consolidate userId verification tests

* add tests for storePinKeyEncryptedUserKey()

* fix service dep

* get email based on userId

* use MasterPasswordService instead of internal

* rename protectedPin to userKeyEncryptedPin

* rename to pinKeyEncryptedUserKeyPersistent

* update method params

* fix CryptoService tests

* jsdoc update

* use EncString for userKeyEncryptedPin

* remove comment

* use cryptoFunctionService.compareFast()

* update tests

* cleanup, remove comments

* resolve merge conflict

* fix DI of MasterPasswordService

* more DI fixes
2024-05-08 11:34:47 -07:00
Ike 1e4158fd87
[PM-5735] Create kdf Service (#8715)
* key connector migration initial

* migrator complete

* fix dependencies

* finalized tests

* fix deps and sync main

* clean up definition file

* fixing tests

* fixed tests

* fixing CLI, Browser, Desktop builds

* fixed factory options

* reverting exports

* implemented UserKeyDefinition clearOn

* Initial Kdf Service Changes

* rename and account setting kdfconfig

* fixing tests and renaming migration

* fixed DI ordering for browser

* rename and fix DI

* Clean up Migrations

* fixing migrations

* begin data structure changes for kdf config

* Make KDF more type safe; co-author: jlf0dev

* fixing tests

* Fixed CLI login and comments

* set now accepts userId and test updates

---------

Co-authored-by: Jake Fink <jfink@bitwarden.com>
2024-04-25 11:26:01 -07:00
Daniel James Smith 64d6f6fef3
Move export.component from @bitwarden/angular to @bitwarden/vault-export-ui (#8514)
Move export.component
Export from @bitwarden/vault-export-ui
Fix imports on browser, desktop and web

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-03-27 17:02:56 +00:00
Daniel James Smith c6327d7f12
[PM-6780][PM-6781] Create vault-export-ui package / Migrate export-scope-callout.component to CL (#8318)
* PM-6780 - Create vault-export-ui package

* Migrate export-scope-callout to CL
- Move export-scope-callout.component to vault-export-UI
- Use bit-callout instead of app-callout
- Make component standalone
- Remove from jslib.module
- Prefix selector with team-name
- Export it from vault-export-ui

* Update usage of tools-export-scope-callout for desktop

* Update usage of tools-export-scope-callout for web

* Update usage of tools-export-scope-callout for browser

* Change package description

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2024-03-20 22:11:57 +00:00
Daniel James Smith 9980c3feb9
[PM-5459] Move libs/exporter to libs/tools/ (#7380)
* Move libs/exporter into libs/tools/*

Migrating all files from libs/exporter over to libs/tools/export/vault-export/vault-export-core
Rename package to vault-export-core
Fix all file paths

* Update libs and tsconfig imports

* Fix client imports

* Fix eslint, jest and package-lock.json

* Update CODEOWNERS

* Add README.md to whitelist-capital-letters

* Fix vault-export-service tests not running

* Update libs/tools/export/vault-export/README.md

Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>

* Fix types imports

* Export types from vault-export-core

* Fixed content of README

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
2024-02-13 14:22:37 -05:00
Daniel James Smith b9cf29ff0c
[PM-4266] Create folder for tools owned features (#6761)
* Create libs/tools-folder and README.md

* Assign libs/tools to be owned by team-tools-dev

* Add exception for the capital README in libs/tools

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2023-11-02 14:10:28 +01:00