* Implement ProtonPass json importer
* Add protonpass-importer json type definition
* Fix alphabetical order in importer imports
* Add importer error message for encrypted protonpass imports
* Add i18n to protonpass importer
* Add protonpass (zip) importer
* Fix protonpass importer
* Add unit tests for protonpass importer
* Make protonpass importer not discard totp codes
* Merge protonpass json & zip importers
* Add protonpass creditcard import & fix note import
* Fix protonpass zip import not recognizing zip files on windows/chrome
* Make protonpass importer use vault types
* Make protonpass importer treat vaults as folders
* Make protonpass importer treat folders as collections for organizations
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add types to protonpass test data
* Fix protonpass importer's moveFoldersToCollections
* Add tests for folders/collections
* Remove unecessary type cast in protonpass importer
* Remove unecessary type annotations in protonpass importer
* Add assertion for credit card cvv in protonpass importer
* Handle trashed items in protonpass importer
* Fix setting expiry month on credit cards
* Fix wrong folder-assignment
Only the first item of a "vault" was getting assigned to a folder
Extend unit tests to verify behaviour
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith@web.de>
* Update npm minor
* Do not update past prettier major version
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Add password history to json exports
Change callout to not mention missing password history any longer
* Added item meta dates to json exports
Added vault items creation-/revision-/deleted-dates to json exports
* Removed unnecessary promises
* Add bitwarden-json-export types
Define types
Use types in vault-export-service
Move existing password-protected type to export-types
* Use bitwarden-json-export types in bitwarden-json-importer
* Clean up passwordHistory if needed
* Define and use bitwarden-csv-export-types
* updated urls in premium web component and premium libs to use the cloudwebvaulturl
* moved premium.component in web from base settings to a new settings folder inside vault
* Migrate callouts to the CL ones
* Add folder/collection selection
* Use bitTypography as page header/title
* Migrate submit button to CL
* Migrate fileSelector and fileContents
* Add ability to import into an existing folder/collection
Extended import.service and abstraction to receive importTarget on import()
Pass selectedImportTarget to importService.import()
Wrote unit tests
* Added vault selector, folders/collections selection logic and component library to the import
* Revert changes to the already migrated CL fileSelector, fileContents and header/title
* Fix fileContents input and spacing to submit button
* Use id's instead of name for tghe targetSelector
* Remove unneeded empty line
* Fix import into existing folder/collection
Map ciphers with no folder/no collection to the new rootFolder when selected by the user
Modified and added unit tests
* Added CL to fileSelector and fileInput on vault import
* Added reactive forms and new selector logic to import vault
* Added new texts on Import Vault
* Corrected logic on enable targetSelector
* Removing target selector from being required
* Fixed imports after messing up a merge conflict
* Set No-Folder as default
* Show icons (folder/collection) on targetSelector
* Add icons to vaultSelector
* Set `My Vault` as default of the vaultSelector
* Updates labels based on feedback from design
* Set `My Vault` as default of the vaultSelector pt2
* Improvements to reactive forms on import.component
* Only disabling individual vault import on PersonalOwnership policy
* Use import destination instead of import location
* Add hint to folder/collection dropdown
* Removed required attribute as provided by formGroup
* Display no collection option same as no folder
* Show error on org import with unassigned items
Only admins can have unassigned items (items with no collection)
If these are present in a export/backup file, they should still be imported, to not break existing behaviour. This is limited to admins.
When a member of an org does not set a root collection (no collection option) and any items are unassigned an error message is shown and the import is aborted.
* Removed for-attribute from bit-labels
* Removed bitInput from bit-selects
* Updates to messages.json after PR feedback
* Removed name-attribute from bit-selects
* Removed unneeded variables
* Removed unneeded line break
* Migrate form to use bitSubmit
Rename old submit() to performImport()
Create submit arrow function calling performImport() (which can be overridden/called by org-import.component)
Remove #form and ngNativeValidate
Add bitSubmit and bitFormButton directives
Remove now unneeded loading variable
* Added await to super.performImport()
* Move form check into submit
* AC-1558 - Enable org import with remove individual vault policy
Hide the `My Vault` entry when policy is active
Always check if the policy applies and disable the formGroup if no vault-target is selectable
* [AC-1549] Import page design updates (#5933)
* Display select folder/collection in targetSelector
Filter the no-folder entry from the folderViews-observable
Add labels for the targetSelector placeholders
* Update importTargetHint and remove importTargetOrgHint
* Update language on importUnassignedItemsError
* Add help icon with link to the import documentation
---------
Co-authored-by: Andre Rosado <arosado@bitwarden.com>
* [AC-1423] Update organization subscription cloud page (#5614)
* [AC-1423] Add ProgressModule to shared.module.ts
* [AC-1423] Update cloud subscription page styles
- Remove bootstrap styles
- Use CL components where applicable
- Use CL typography directives
- Update heading levels to prepare for new SM sections
* [AC-1423] Add usePasswordManager boolean to organization domain
* [AC-1423] Introduce BitwardenProductType enum
* [AC-1423] Update Organization subscription line items
- Add product type prefix
- Indent addon services like additional storage and service accounts
- Show line items for free plans
* [AC-1423] Simply sort function
* [AC-1423] Remove header border
* [AC-1423] Make "Password Manager" the default fallback for product name
* [AC-1420] Add Secrets Manager subscribe component (#5617)
* [AC-1418] Add secrets manager manage subscription component (#5661)
* [AC-1423] Add minWidth input to bit-progress component
* [AC-1423] Add ProgressModule to shared.module.ts
* [AC-1423] Update cloud subscription page styles
- Remove bootstrap styles
- Use CL components where applicable
- Use CL typography directives
- Update heading levels to prepare for new SM sections
* [AC-1423] Add usePasswordManager boolean to organization domain
* [AC-1423] Introduce BitwardenProductType enum
* [AC-1423] Update Organization subscription line items
- Add product type prefix
- Indent addon services like additional storage and service accounts
- Show line items for free plans
* [AC-1423] Simply sort function
* [AC-1423] Remove header border
* [AC-1423] Remove redundant condition
* [AC-1423] Remove ineffective div
* [AC-1423] Make "Password Manager" the default fallback for product name
* Revert "[AC-1423] Add minWidth input to bit-progress component"
This reverts commit 95b2223a30.
* [AC-1423] Remove minWidth attribute
* [AC-1423] Switch to AddonProductType enum instead of boolean
* Revert "[AC-1423] Switch to AddonProductType enum instead of boolean"
This reverts commit 204f64b4e7.
* [AC-1423] Tweak sorting comment
* [AC-1418] Add initial SecretsManagerAdjustSubscription component
* [AC-1418] Add initial SM adjustment form
* [AC-1418] Adjust organization-subscription-update.request.ts to support both PM and SM
* [AC-1418] Rename service account fields in the options interface
* [AC-1418] Add api service call to update SM subscription
* [AC-1418] Cleanup form html
* [AC-1418] Add missing SM plan properties
* [AC-1418] Add SM subscription adjust form and logic to hide it
* [AC-1418] Add better docs to options interface
* [AC-1418] Fix conflicting required/optional labels for auto-scaling limits
* [AC-1418] Adjust labels and appearance to better match design
* [AC-1418] Use the SM plan for billing interval
* [AC-1418] Hide SM billing adjustment component behind feature flag
* [AC-1418] Update request model to match server
* [AC-1418] Cleanup BitwardenProductType after merge
Add to barrel file and update applicable imports.
* [AC-1418] Revert change to update PM subscription request model
* [AC-1418] Add new update SM subscription request model
* [AC-1418] Add new service method to update SM subscription
* [AC-1418] Use new model and service method
* [AC-1418] Cleanup SM subscription UI flags
* [AC-1418] Move SM adjust subscription component into SM billing module
* [AC-1418] Update SM seat count minimum to 1
* [AC-1418] Add missing currency codes
* [AC-1418] Simplify monthly price calculation
* [AC-1418] Increase PM adjust subscription form input width
* [AC-1418] Add check for null subscription
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* add the additional properties (#5743)
* Allow autoscale limits to be removed, update naming (#5781)
* [AC-1488] Store Organization.SmServiceAccounts as total not additional (#5784)
* Allow autoscale limits to be removed, update naming
* Display additional service accounts only
---------
Co-authored-by: Shane Melton <smelton@bitwarden.com>
* [AC-1473] SM beta ending callout (#5719)
* [AC-1423] Add minWidth input to bit-progress component
* [AC-1423] Add ProgressModule to shared.module.ts
* [AC-1423] Update cloud subscription page styles
- Remove bootstrap styles
- Use CL components where applicable
- Use CL typography directives
- Update heading levels to prepare for new SM sections
* [AC-1423] Add usePasswordManager boolean to organization domain
* [AC-1423] Introduce BitwardenProductType enum
* [AC-1423] Update Organization subscription line items
- Add product type prefix
- Indent addon services like additional storage and service accounts
- Show line items for free plans
* [AC-1423] Simply sort function
* [AC-1423] Remove header border
* [AC-1423] Remove redundant condition
* [AC-1423] Remove ineffective div
* [AC-1423] Make "Password Manager" the default fallback for product name
* Revert "[AC-1423] Add minWidth input to bit-progress component"
This reverts commit 95b2223a30.
* [AC-1423] Remove minWidth attribute
* [AC-1423] Switch to AddonProductType enum instead of boolean
* Revert "[AC-1423] Switch to AddonProductType enum instead of boolean"
This reverts commit 204f64b4e7.
* [AC-1423] Tweak sorting comment
* [AC-1418] Add initial SecretsManagerAdjustSubscription component
* [AC-1418] Add initial SM adjustment form
* [AC-1418] Adjust organization-subscription-update.request.ts to support both PM and SM
* [AC-1418] Rename service account fields in the options interface
* [AC-1418] Add api service call to update SM subscription
* [AC-1418] Cleanup form html
* [AC-1418] Add missing SM plan properties
* [AC-1418] Add SM subscription adjust form and logic to hide it
* [AC-1418] Add better docs to options interface
* [AC-1418] Fix conflicting required/optional labels for auto-scaling limits
* [AC-1418] Adjust labels and appearance to better match design
* [AC-1418] Use the SM plan for billing interval
* [AC-1418] Hide SM billing adjustment component behind feature flag
* [AC-1418] Update request model to match server
* [AC-1418] Cleanup BitwardenProductType after merge
Add to barrel file and update applicable imports.
* [AC-1418] Revert change to update PM subscription request model
* [AC-1418] Add new update SM subscription request model
* [AC-1418] Add new service method to update SM subscription
* [AC-1418] Use new model and service method
* [AC-1418] Cleanup SM subscription UI flags
* [AC-1418] Move SM adjust subscription component into SM billing module
* [AC-1418] Update SM seat count minimum to 1
* [AC-1418] Add missing currency codes
* [AC-1418] Simplify monthly price calculation
* add daysRemaining util function and unit tests
* [AC-1474] update organization models to include SM beta flag
* add SM beta callout to org subscription page
* update messages.json
* remove beta field from profile org response
* improve daysRemaining code clarity
* set SM beta in org model constructor
* tweak free SM row visibility
* refactor callout description
* Revert "remove beta field from profile org response"
This reverts commit 6c6249e1ec.
* fix dates
* [AC-1468]: hide adjust SM component if beta user
* add sm beta field to org sub response; remove everywhere else
* fix copy
---------
Co-authored-by: Shane Melton <smelton@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
* [AC-1531] Fix SM subscribe component not showing in free org billing tab (#5848)
Also:
* Fix spacing in layout
* Send zero values for free plans
* Fix: properly delete enroll component
* remove the beta end message for free org (#5877)
* [AC-1458] Update local organization data after subscribing to Secrets Manager (#5888)
* [AC-1567] Fix max additional service account cost estimate (#5923)
* Fix max additional service account cost estimate
* Update i18n string ref
* Make i18n string keys consistent
* [AC-1461] Secrets Manager seat autoscaling cleanup (#5924)
* Remove unused return value from putOrganizationUserBulkEnableSecretsManager
* Fix service account limit validator (#5926)
* Updated Utils.daysRemaining method to calculate result using Math.floor and updated unit tests.
---------
Co-authored-by: Shane Melton <smelton@bitwarden.com>
Co-authored-by: cyprain-okeke <108260115+cyprain-okeke@users.noreply.github.com>
Co-authored-by: Rui Tome <rtome@bitwarden.com>
Co-authored-by: Will Martin <contact@willmartian.com>
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>
Co-authored-by: Rui Tomé <108268980+r-tome@users.noreply.github.com>
* update desktop domains
* update web domains
* remove old translations from desktop
* update translations on browser
* change 'Region' to 'Server' on web
* change labels
* remove 'region' translation
* adjust alignmend so 'Self-hosted' label lines up with others
* adjust width and layout of trial-initiation header to accomodate longer text
* Disable API call if the expiration date is in the past
* Updates suggested by Thomas
* fixes
* suggested change from thomas
* removing unused service
* adding UUID under the secret name on secrets list
* thomas' suggested changes
* Adding small attribute to bitbutton
* Copying a secret will work on all pages now that show secrets
* Change everything to Uint8Array
related to https://github.com/jestjs/jest/issues/14379
* Work on failing type tests
* Revert changes to custom matcher setup
* Remove last BufferArrays from tests
* Fix custom matcher type errors in vscode
* Remove errant `.buffer` calls on Uint8Arrays
* Encryption Pair should serialize Array Buffer and Uint8Array
* Fix EncArrayBuffer encryption
---------
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
* [AC-1344] Simplified DeleteMany and SoftDeleteMany request creation
* [AC-1344] Added method putRestoreManyCiphersAdmin to apiService
* [AC-1344] Added method restoreManyWithServer to cipherService
* [AC-1344] Rewrote if statements and changed the method return type
* Migrate Send list html to use Component Library and TailWind
* Added ComponentLibrary search module to Send
* Updated the No-Items on Send List to the new CL
* Added missing type on button at send.component.html
* Changed send to standalone component on web
* Moved no send icon to the consuming component
* removed unnecessary href on send component html
* Added sort to send list
* Removed SendComponent from loose-components module and added on app module
* Removed unnecessary click handler on send name button
* Created own file for no-send icon
* set icons folder as lowercase
* Corrected no-send.icon import
* Setting name as default sort on send list
* Added extra height to no-send.icon and removed classes from bit-no-items title container
* Removed the size small from options button
* Update webpack config to support proxying web socket connections for notifications
* turn off runtime error overlay
---------
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
* Change appSelectCopy to accept a dynamic input on what to copy
* Renamed select-copy directive to copy-text directive to be more accurate with the new behaviour
Signed-off-by: Andre Rosado <arosado@bitwarden.com>
* Moved CopyTextDirective on jslib module to be in alphabetic ordering
---------
Signed-off-by: Andre Rosado <arosado@bitwarden.com>
Co-authored-by: Andre Rosado <arosado@bitwarden.com>
* Add tailwind to desktop
* Add tailwind to browser
* Toy around with using CL in desktop
* Move custom css into the tailwind theme
* Revert component experiment
* Add components to browser tsconfig
* Fix build
* Add formGroup to base FolderAddEditComponent
* [web] use DialogService to open the modal
* [web] migrate FolderAddEditComponent use component library
* [desktop] use the formGroup in the template
* [browser] use the formGroup in the template
* [browser & desktop] remove disable on form invalid
* [web] Migrate to async actions
* [web] Strengthen typing for FolderAddEdit dialog
* Show form error instead of error toast
* Move browser folder add edit component to vault
* Remove extra template variables
* Remove inner form
* Remove inner form
* Update apps/web/src/app/vault/individual-vault/folder-add-edit.component.html
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
---------
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* [PM-2594] Added property "CloudVault" to EnvironmentServerConfigData and EnvironmentServerConfigResponse
* [PM-2594] Replaced hardcoded vault urls with value obtained from ConfigService
* [PM-2594] Renamed EnvironmentServerConfigResponse.cloudVault to cloudWebVault
* [PM-2594] Updated unit test with new property "cloudWebVault"
* [PM-2594] Added methods to get and set CloudWebVaultUrl on EnvironmentService. Configured ConfigurationService to set value based on cloudVaultRegion
* [PM-2594] Added JSDOC comments to methods getCloudWebVaultUrl and setCloudWebVaultUrl
* [PM-2594] Renamed EnvironmentServerConfigData.cloudVaultRegion to cloudRegion
* [PM-2594] Fixed unit test
* Migrate file-password-prompt to Dialog
* Fix issue with cancel/empty password returned
* Removed unneeded click handler to cancel dialog
* Added margin as requested by design
* Only apply margin to top of field
* Call submit when clicking on Import data
* Add form and and submit trigger
* add dialog; add service method; add menu button
* update service layer
* update service method; add i18n; add success and error logic
* remove comment
* remove SM Beta copy in member dialog
* refactor error logic to utilize bitAction
* update i18n key
* use i18n in menu option
* use i18n in footer
* rename component file
* rename enableAccess method; remove button; use userName pipe
* only show if SM flag is enabled
* [SM-830] fix: close checkboxes on dialog close
* Remove permission field from access token dialog; remove unused i18n key
* remove permissions column from access token table
* fix SA name placehold in access token dialog
* remove comment
* pass SA view into dialog upon opening
* Change 'New' button to dropdown with folders and collections
* Individual vault changes to support adding collections
* Add org selector to CollectionDialogComponent
* Implement CollectionService.upsert() in CollectionAdminService.save()
* Filter collections to ones that users can create collections in
* Filter organizations by ones the user can create a collection in
* CollectionDialog observable updates
* Remove CollectionService.upsert from CollectionAdminService and return collection on save from CollectionDialog.
* Filter out collections that the user does not have access to in collection dialog for Individual Vault.
* Remove add folder action from vault filter
* Remove add button from filters as it is no longer used
* Update comment to reference future ticket
* Change CollectionDialogResult from a class to an interface
* Remove extra call to loadOrg() in the case of opening the modal from the individual vault
* Use async pipe instead of subscribe for organizations
* Added a validator when adding users to a free org
* Updated based on PR feedback
Removed parameters passing in the org to member-dialog.
Removed i18n service from validator
* Moved i18n responsibility back to the validator
Also added jsdoc comments
* Updated validator to be an injectable class
* Added back in jsdocs
* Moved the validator initialization to ngOnInit
* Updated validator to take error message a a param
* [AC-1144] Added new messages for warning removing/revoking user without master password
* [AC-1144] Added property 'hasMasterPassword' to OrganizationUserUserDetailsResponse and OrganizationUserView
* [AC-1144] Added user's name to 'No master password' warning
* [AC-1144] Added property 'hasMasterPassword' to ProviderUserResponse
* [AC-1144] Added alert to bulk "remove/revoke users" action when a selected user has no master password
* [AC-1144] Moved 'noMasterPasswordConfirmationDialog' method to BasePeopleComponent
* [AC-1144] Removed await from noMasterPasswordConfirmationDialog
* [AC-1144] Changed ApiService.getProviderUser to output ProviderUserUserDetailsResponse
* [AC-1144] Added warning on removing a provider user without master password
* [AC-1144] Added "No Master password" warning to provider users
* [AC-1144] Added "no master password" warning when removing/revoking user in modal view
* [AC-1144] Reverted changes made to ProviderUsers
* [AC-1144] Converted showNoMasterPasswordWarning() into a property
* [AC-1144] Fixed issue when opening invite member modal
* Add feature flag route guard and tests
* Add additional test for not showing error toast
* Strengthen error toast test with message check
* Cleanup leaking test state in platformService mock
* Negate if statement to reduce nesting
* Update return type to CanActivateFn
* Use null check instead of undefined
* Introduce interface to support different feature flag types
- Switch to observable pattern to access serverConfig$ subject
- Add catchError handler to allow navigation in case of unexpected exception
- Add additional tests
* Add additional test for missing feature flag
* Remove subscription to the serverConfig observable
Introduce type checking logic to determine the appropriately typed flag getter to use in configService
* [AC-1192] Create initial device approvals component and route
* [AC-1192] Introduce appIfFeature directive for conditionally rendering content based on feature flags
* [AC-1192] Add DeviceApprovals link in Settings navigation
* Remove align middle from bitCell directive
The bitRow directive supports alignment for the entire row and should be used instead
* [AC-1192] Add initial device approvals page template
* [AC-1192] Introduce fingerprint pipe
* [AC-1192] Create core organization module in bitwarden_license directory
* [AC-1192] Add support for new Devices icon to no items component
- Add new Devices svg
- Make icon property of bit-no-items an Input property
* [AC-1192] Introduce organization-auth-request.service.ts with related views/responses
* [AC-1192] Display pending requests on device approvals page
- Add support for loading spinner and no items component
* [AC-1192] Add method to bulk deny auth requests
* [AC-1192] Add functionality to deny requests from device approvals page
* [AC-1192] Add organizationUserId to pending-auth-request.view.ts
* [AC-1192] Add approvePendingRequest method to organization-auth-request.service.ts
* [AC-1192] Add logic to approve a device approval request
* [AC-1192] Change bitMenuItem directive into a component and implement ButtonLikeAbstraction
Update the bitMenuItem to be a component and implement the ButtonLikeAbstraction to support the bitAction directive.
* [AC-1192] Update menu items to use bitActions
* [AC-1192] Update device approvals description copy
* [AC-1192] Revert changes to bitMenuItem directive
* [AC-1192] Rework menus to use click handlers
- Wrap async actions to catch/log any exceptions, set an in-progress state, and refresh after completion
- Show a loading spinner in the header when an action is in progress
- Disable all menu items when an action is in progress
* [AC-1192] Move Devices icon into admin-console web directory
* [AC-1192] bit-no-items formatting
* [AC-1192] Update appIfFeature directive to hide content on error
* [AC-1192] Remove deprecated providedIn for OrganizationAuthRequestService
* [AC-1192] Rename key to encryptedUserKey to be more descriptive
* [AC-1192] Cleanup loading/spinner logic on data refresh
* [AC-1192] Set middle as the default bitRow.alignContent
* [AC-1192] Change default alignRowContent for table story
* [AC-1192] Rename userId to fingerprintMaterial to be more general
The fingerprint material is not always the userId so this name is more general
* [AC-1192] Remove redundant alignContent attribute
* [AC-1192] Move fingerprint pipe to platform
* [AC-1145] Update entity-events.component.ts to a CL dialog
- Add EntityEventsDialogParams
- Add static helper method to open the dialog with the dialog service
- Update existing usages of the entity-events.component.ts
* [AC-1145] Update entity-events.component.ts to use CL components and form actions
- Use bit-table and TableDataSource
- Update to reactive form for date filter
- Make dialog component standalone
- Use bitAction in-place of component promises
- Remove redundant try/catch that is now handled by bitAction and bitSubmit
- Add new try/catch on first load to catch any errors during initial dialog open
* [PM-2049] Make dataSource and filterFormGroup protected
* [PM-2049] Remove bit-form-field container
Remove the bit-form-field tags that wrapped the date inputs to avoid additional styling that is not applicable to inline form elements.
Add back the missing `-` that was removed by mistake.
* [PM-2049] Remove entity events dialog component selector
* Extract passwordStrength from passwordGenerationService
Extract passwordStrength from password-generation.service.ts
Create new password-strength.service.ts
Create new password-strength.service.abstraction.ts
Register new password-strength service
Fix usages in libs
* Fix usage in web
* Fix usage in desktop
* Fix usage in CLI
* Fix usage in browser
Move password-generation-factory to tools
* Fix tests
* Change dependency in jslib-services.module
* Defining the card brand according to its number
* Moving cardBrandByPatterns function to Card View
* Getting Card brand via cardBrandByPatterns function
* Changing cardBrandByPatterns method to static. See:
The reason being that someone wanting to use this outside of the onCardNumberChange would need to know to set the cc-number on the view-model before calling cardBrandByPatterns
* Defining the card brand according to its number on Desktop
* Defining the card brand according to its number on Web
* Added new forwarder (Forward Email <https://forwardemail.net>)
* fix: fixed Basic authorization header
* fix: fixed returned email value
* feat: added verbose message for end-users (e.g. "Not Found" vs. "Domain does not exist on your account." (automatically localized with i18n for user)
* fix: fixed Buffer.from to Utils.fromBufferToB64
* fix: fixed fromBufferToB64 to fromUtf8ToB64
* Remove try-catch to properly display api errors
---------
Co-authored-by: Daniel James Smith <djsmith@web.de>
* Rename service-factory folder
* Move cryptographic service factories
* Move crypto models
* Move crypto services
* Move domain base class
* Platform code owners
* Move desktop log services
* Move log files
* Establish component library ownership
* Move background listeners
* Move background background
* Move localization to Platform
* Move browser alarms to Platform
* Move browser state to Platform
* Move CLI state to Platform
* Move Desktop native concerns to Platform
* Move flag and misc to Platform
* Lint fixes
* Move electron state to platform
* Move web state to Platform
* Move lib state to Platform
* Fix broken tests
* Rename interface to idiomatic TS
* `npm run prettier` 🤖
* Resolve review feedback
* Set platform as owners of web core and shared
* Expand moved services
* Fix test types
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* Add eudevtest config
* Add eudevtest to build
* Add release for eudevtest
* Change url
* Add eudevtest to the deploy non prod web
* Remove release-eudevtest-web workflow
* [AC-1104] Allow importBlockedByPolicy to be overridden
Adjust the import component so that the importBlockedByPolicy flag can be overridden by the org import component to always return false.
* [AC-1104] Allow disabledByPolicy to be overridden in export component
Adjust the export component so that the disabledByPolicy flag can be overridden by the org export component to always return false.
* [AC-1104] Cleanup logic that disables export form
* [AC-1104] Use observable subscription for assigning importBlockedByPolicy flag
* [AC-1264] Add optional success callback for import component
Use the optional callback in org-import.component.ts to clear the file and file contents when the user does not have access to the vault page
* [AC-1264] Re-order properties
* [AC-1104] Refactor import component to only use onSuccess callback that can be overridden
* Add trim validator to SM dialogs
* Swap to creating a generic component
* Swap to BitValidators.trimValidator
* Fix storybook
* update validator to auto trim whitespace
* update storybook copy
* fix copy
* update trim validator to run on submit
* add validator to project name in secret dialog; update secret name validation to on submit
---------
Co-authored-by: William Martin <contact@willmartian.com>
* PM1378 - (1) Create state service methods for securely storing a device symmetric key while following existing pattern of DuckDuckGoKey generation (2) Create makeDeviceKey method on crypto service which leverages the new state service methods for storing the device key.
* PM-1378 - Document CSPRNG types w/ comments explaining what they are and when they should be used.
* PM-1378 - TODO to add tests for makeDeviceKey method
* PM-1378 - Create Devices API service for creating and updating device encrypted master keys + move models according to latest code standards ( I think)
* PM-1378 - TODO clean up - DeviceResponse properly moved next to device api service abstraction per ADR 0013
* PM-1378 - CryptoService makeDeviceKey test written
* PM-1378 - Tweak crypto service makeDeviceKey test to leverage a describe for the function to better group related code.
* PM-1378 - Move known devices call out of API service and into new devices-api.service and update all references. All clients building.
* PM-1378 - Comment clean up
* PM-1378 - Refactor out master key naming as that is a reserved specific key generated from the MP key derivation process + use same property on request object as back end.
* PM-1378 - Missed a use of master key
* PM-1378 - More abstraction updates to remove master key.
* PM-1378 - Convert crypto service makeDeviceKey into getDeviceKey method to consolidate service logic based on PR feedback
* PM-1378- Updating makeDeviceKey --> getDeviceKey tests to match updated code
* PM-1378 - Current work on updating establish trusted device logic in light of new encryption mechanisms (introduction of a device asymmetric key pair in order to allow for key rotation while maintaining trusted devices)
* PM-1378 - (1) CryptoService.TrustDevice() naming refactors (2) Lots of test additions and tweaks for trustDevice()
* PM-1378 - Updated TrustedDeviceKeysRequest names to be consistent across the client side board.
* PM-1378 - Move trusted device crypto service methods out of crypto service into new DeviceCryptoService for better single responsibility design
* PM-1378 - (1) Add getDeviceByIdentifier endpoint to devices api as will need it later (2) Update TrustedDeviceKeysRequest and DeviceResponse models to match latest server side generic encrypted key names
* PM-1378 - PR feedback fix - use JSDOC comments and move from abstraction to implementation
* PM-1378 - Per PR feedback, makeDeviceKey should be private - updated tests with workaround.
* PM-1378- Per PR feedback, refactored deviceKey to use partialKey dict so we can associate userId with specific device keys.
* PM-1378 - Replace deviceId with deviceIdentifier per PR feedback
* PM-1378 - Remove unnecessary createTrustedDeviceKey methods
* PM-1378 - Update device crypto service to leverage updateTrustedDeviceKeys + update tests
* PM-1378 - Update trustDevice logic - (1) Use getEncKey to get user symmetric key as it's the correct method and (2) Attempt to retrieve the userSymKey earlier on and short circuit if it is not found.
* PM-1378 - Replace deviceId with deviceIdentifier because they are not the same thing
* PM-1378 - Per PR feedback, (1) on web/browser extension, store device key in local storage under account.keys existing structure (2) on desktop, store deviceKey in secure storage. (3) Exempt account.keys.deviceKey from being cleared on account reset
* PM-1378 - Desktop testing revealed that I forgot to add userId existence and options reconciliation checks back
* PM-1378 - Per discussion with Jake, create DeviceKey custom type which is really just an opaque<SymmetricCryptoKey> so we can more easily differentiate between key types.
* PM-1378 - Update symmetric-crypto-key.ts opaque DeviceKey to properly setup Opaque type.
* PM-1378 - Fix wrong return type for getDeviceKey on DeviceCryptoServiceAbstraction per PR feedback
* [AC-561] Rename DeleteOrganizationComponent to DeleteOrganizationDialogComponent
* [AC-561] Refactor delete organization dialog to use dialog service
- Use new bit-dialog
- Use reactive form and bitSubmit directives
- Add injected dialog params
- Switch to observable pattern
- Use dialog result instead of success event emitter
- Add helper method to open dialog using dialog service
- Update usage in families-for-enterprise-setup.component.ts and account.component.ts
* [AC-561] Create a UserVerification module
Move the user verification components into their own module that can be imported in multiple modules without conflict and allow tree shaking.
* [AC-561] Move delete-organization-dialog into its own folder
* [AC-561] Create delete organization dialog module
* [AC-561] Cleanup delete org dialog import statements
* [AC-561] Remove unused property
* [AC-561] Use organization observable from organizationService
* [AC-561] Use organization object instead of pull out storing the name individually
* [AC-561] Make the delete organization dialog a standalone component
- Remove the delete organization dialog module
- Move the dialog component up a directory
- Remove references to the deleted module
* [AC-561] Fix DialogServiceAbstraction references after merge
* [AC-561] Cleanup dialog loading spinner and cancel button
* [AC-561] Fix broken barrel file after merge
* [PM-169][PM-142][PM-191] Add Environments to Web and Desktop (#5294)
* [PM-1351] Add property to server-config.response. Change config to be able to fetch without being authed.
* [PM-1351] fetch every hour.
* [PM-1351] fetch on vault sync.
* [PM-1351] browser desktop fetch configs on sync complete.
* [PM-1351] Add methods to retrieve feature flags
* [PM-1351] Add enum to use as key to get values feature flag values
* [PM-1351] Remove debug code
* [PM-1351] Get flags when unauthed. Add enums as params. Hourly always fetch.
* [PM-1351] add check for authed user using auth service
* [PM-169] Web: add drop down to select environment
* [PM-169] Fix pop up menu margins. Add DisplayEuEnvironmentFlag.
* [PM-169] Change menu name.
* [PM-169] Add environment selector ts and html. Add declaration and import on login.module
* [PM-169] Add environment selector to desktop.
* [PM-169] Ignore lint error.
* [PM-169] add takeUntil to subscribes
* [PM-191] PR Fixes, code format
* [PM-168] Add Environments to extension login/registration (#5434)
Angular 15 introduced a breaking change that calls setDisabledState() whenever a CVA is added. This was re-enabling all the internal form group rows (even those that should have remained disabled).
* [AC-358] Add selfHostSubscriptionExpiration property to organization-subscription.response.ts
* [AC-358] Update selfHost org subscription template
- Replace "Subscription" with "SubscriptionExpiration"
- Add question mark help link
- Add helper text for grace period
- Add support for graceful fallback in case of missing grace period in subscription response
* Update libs/common/src/billing/models/response/organization-subscription.response.ts
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [AC-358] Remove unnecessary hypen
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [AC-358] Introduce SelfHostedOrganizationSubscription view
- Encapsulate expiration/grace period logic in the new view object.
- Remove API response getters from the angular component
- Replace the API response object with the new view
* [AC-358] Clarify name for new expiration without grace period field
* [AC-358] Update constructor parameter name
* [AC-358] Simplify new selfhost subscription view
- Make expiration date properties public
- Remove obsolete expiration date getters
- Update the component to use new properties
- Add helper to component for determining if the subscription should be rendered as expired (red text)
* [AC-358] Rename isExpired to isExpiredAndOutsideGracePeriod to be more explicit
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [PM-2054] Updated Password Generator History to use Component Library
* [PM-2054] Corrected paddings
* [PM-2054] Added missing type to buttons
* [PM-2054] Removed unused imports and run prettier
* [PM-2054] Swap list by bit-table
* [AC-1145] Add TDE feature flag
* [AC-1145] Update sso-config to use new member decryption type and remove keyConnectorEnabled
* [AC-1145] Add new TDE option to SSO config form and update to CL radio buttons
* [AC-1145] Update checkboxes to CL checkboxes
* [AC-1145] Fix messages.json warning
* [AC-1145] Update to new form async actions
* [AC-1145] Modify key connector option display logic to check for TDE feature flag
* [AC-1145] Remove obsolete app-checkbox component
* [AC-1145] Update TDE option description to refer to master password reset policy
* Checking if the user has selected access tokens to revoke, if not error message
* change messaging
* SM-664: Refactor revoke function and make the bwi-minus-circle red
---------
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
* updated low ksf iterations warning
* Removed test implementation
* Removed unused translation and updated key
* Enabled low kdf on this branch for testing
* Removed duplicate showKdf initialiazation
* [PM-1700] Put KDF warning behind a LaunchDarkly Feature Flag (#5308)
* Added feature flag for low kdf iteration
* Added feature flag implementation to component
* Renamed feature flag to align with what is setup on LaunchDarkly
* Added button type to each button element related to the vault team
* Removed disable statement comment
* [PM-1399] Resolve eslint errors for button type - admin-console (#5275)
* Added button type to each button element related to the admin console team
* Added button type to each button element related to the billing team
* Removed disable statement comment
* [PM-1399] Resolve eslint errors for button type - tools (#5284)
* Added button type to each button element related to the tools team
* Added button type to each button element related to the tools team
* Added button type to each button element related to the auth team (#5295)
This PR introduces a generic `DialogService` which can be used by all the clients. This allows us to decouple dialogs from the `PlatformUtilsHelper`.
The `DialogService` provides a new method, `openSimpleDialog` which is the new interface for that type of dialogs.
This gives us 3 different implementations:
- Web: DialogService modern dialogs
- Browser: SweetAlert
- Desktop: Native electron based
* Add disableFavicon$ to stateService
* Change IconComponent's ChangeDetectionStrategy and use disableFavicon$ observable
* Only get first result from disableFavicon observable
* Move disabledFavicon$ to SettingsService
* Update usage of disableFavicon to use SettingsService
* Remove getting and setting of disabledFavicon on login
* Settings service observable adjustments
* Fix for popup initially having a null value for the disableFavicon setting in settingsService
* Move disabledFavicon$ subscription to ngOnInit
* feat: experiment with observables
* Remove SettingsService from browser app component
* Fix storybook changes
* Update apps/web/src/app/vault/components/vault-items/vault-items.stories.ts
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* Fix mock function signature
---------
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
* [PM-1351] Add property to server-config.response. Change config to be able to fetch without being authed.
* [PM-1351] fetch every hour.
* [PM-1351] fetch on vault sync.
* [PM-1351] browser desktop fetch configs on sync complete.
* [PM-1351] Add methods to retrieve feature flags
* [PM-1351] Add enum to use as key to get values feature flag values
* [PM-1351] Remove debug code
* [PM-1351] Get flags when unauthed. Add enums as params. Hourly always fetch.
* [PM-1351] add check for authed user using auth service
* [PM-1351] remove unnecessary timer on account unlock
* [PM-687] refactor observable in base accept component
* [PM-687] add emergency access invitation to global state
* [PM-687] save invite to state and check on login
* [PM-687] move emergency access check above queryParams observable
* [AC-1340] Calling Cipher DeleteAdmin endpoints when user has canEditAnyCollection permission
* [AC-1340] Fixed CLI and Desktop builds
* [AC-1340] Changed CipherService delete methods parameter 'orgAdmin' to 'asAdmin' and to nullable
* [AC-1340] Changed variable names from 'orgAdmin' to 'asAdmin'
* [AC-1340] Reverted change on DeleteCommand