* add csp and only pass hostname to duo init
* expand style-src
* Update apps/web/src/connectors/duo.html
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* [EC-8] Restructure Tabs (#3109)
* Cherry pick pending PR for tabs component [CL-17] Tabs - Routing
* Update organization tabs from 4 to 6
* Create initial 'Members' tab
* Create initial 'Groups' tab
* Add initial "Reporting" tab
* Use correct report label/layout by product type
* Create initial 'Billing' tab
* Breakup billing payment and billing history pages
* Cleanup org routing and nav permission service
* More org tab permission cleanup
* Refactor organization billing to use a module
* Refactor organization reporting to use module
* Cherry pick finished/merged tabs component [CL-17] Tabs - Router (#2952)
* This partially reverts commit 24bb775 to fix tracking of people.component.html rename.
* Fix people component file rename
* Recover lost member page changes
* Undo members component rename as it was causing difficult merge conflicts
* Fix member and group page container
* Remove unnecessary organization lookup
* [EC-8] Some PR suggestions
* [EC-8] Reuse user billing history for orgs
* [EC-8] Renamed user billing history component
* [EC-8] Repurpose payment method component
Update end user payment method component to be usable for organizations.
* [EC-8] Fix missing verify bank condition
* [EC-8] Remove org payment method component
* [EC-8] Use CL in payment method component
* [EC-8] Extend maxWidth Tailwind theme config
* [EC-8] Add lazy loading to org reports
* [EC-8] Add lazy loading to org billing
* [EC-8] Prettier
* [EC-8] Cleanup org reporting component redundancy
* [EC-8] Use different class for negative margin
* [EC-8] Make billing history component "dumb"
* Revert "[EC-8] Cleanup org reporting component redundancy"
This reverts commit eca337e89b.
* [EC-8] Create and export shared reports module
* [EC-8] Use shared reports module in orgs
* [EC-8] Use takeUntil pattern
* [EC-8] Move org reporting module out of old modules folder
* [EC-8] Move org billing module out of old modules folder
* [EC-8] Fix some remaining merge conflicts
* [EC-8] Move maxWidth into 'extend' key for Tailwind config
* [EC-8] Remove unused module
* [EC-8] Rename org report list component
* Prettier
Co-authored-by: Vincent Salucci <vincesalucci21@gmail.com>
* [EC-451] Org Admin Refresh Permissions Refactor (#3320)
* [EC-451] Update new org permissions for new tabs
* [EC-451] Remove redudant route guards
* [EC-451] Remove canAccessManageTab()
* [EC-451] Use canAccess* callbacks in org routing module
* Fix org api service refactor and linting after pulling in master
* Fix broken org people and group pages after merge
* [EC-18] Reporting side nav direction (#3420)
* [EC-18] Re-order side nav for org reports according to Figma
* [EC-18] Fix rxjs linter errors and redundant org flag
* [EC-526] Default to Event Logs page for Reporting Tab (#3470)
* [EC-526] Default to the Events Logs page when navigating to the Reporting tab
* [EC-526] Undo default routing redirect when the child path is missing. Avoids defaulting to "/events" in case a user/org doesn't have access to event logs.
* [EC-19] Update Organization Settings Page (#3251)
* [EC-19] Refactor existing organization settings components to its own module
* [EC-19] Move SSO page to settings tab
* [EC-19] Move Policies page to Settings tab
Refactor Policy components into its own module
* [EC-19] Move ImageSubscriptionHiddenComponent
* [EC-19] Lazy load org settings module
* [EC-19] Add SSO Id to SSO config view
* [EC-19] Remove SSO identfier from org info page
* [EC-19] Update org settings/policies to follow ADR-0011
* [EC-19] Update two-step login setup description
* [EC-19] Revert nested policy components folder
* [EC-19] Revert nested org setting components folder
* [EC-19] Remove left over image component
* [EC-19] Prettier
* [EC-19] Fix missing i18n
* [EC-19] Update SSO form to use CL
* [EC-19] Remove unused SSO input components
* [EC-19] Fix bad SSO locale identifier
* [EC-19] Fix import order linting
* [EC-19] Add explicit whitespace check for launch click directive
* [EC-19] Add restricted import paths to eslint config
* [EC-19] Tag deprecated field with Jira issue to cleanup in future release
* [EC-19] Remove out of date comment
* [EC-19] Move policy components to policies module
* [EC-19] Remove dityRequired validator
* [EC-19] Use explicit type for SSO config form
* [EC-19] Fix rxjs linter errors
* [EC-19] Fix RxJS eslint comments in org settings component
* [EC-19] Use explicit ControlsOf<T> helper for nested SSO form groups.
* [EC-19] Attribute source of ControlsOf<T> helper
* [EC-19] Fix missing settings side nav links
* [EC-19] Fix member/user language for policy modals
* [EC-551] Update Event Logs Client Column (#3572)
* [EC-551] Fix RxJS warnings
* [EC-551] Update page to use CL components and Tailwind classes
* [EC-551] Update Client column to use text instead of icon. Update language and i18n.
* [EC-14] Refactor vault filter (#3440)
* [EC-14] initial refactoring of vault filter
* [EC-14] return observable trees for all filters with head node
* [EC-14] Remove bindings on callbacks
* [EC-14] fix formatting on disabled orgs
* [EC-14] hide MyVault if personal org policy
* [EC-14] add check for single org policy
* [EC-14] add policies to org and change node constructor
* [EC-14] don't show options if personal vault policy
* [EC-14] default to all vaults
* [EC-14] add default selection to filters
* [EC-14] finish filter model callbacks
* [EC-14] finish filter functionality and begin cleaning up
* [EC-14] clean up old components and start on org vault
* [EC-14] loop through filters for presentation
* [EC-14] refactor VaultFilterService and put filter presentation data back into Vault Filter component. Remove VaultService
* [EC-14] begin refactoring org vault
* [EC-14] Refactor Vault Filter Service to use observables
* [EC-14] finish org vault filter
* [EC-14] fix vault model tests
* [EC-14] fix org service calls
* [EC-14] pull refactor out of shared code
* [EC-14] include head node for collections even if collections aren't loaded yet
* [EC-14] fix url params for vaults
* [EC-14] remove comments
* [EC-14] Remove unnecesary getter for org on vault filter
* [EC-14] fix linter
* [EC-14] fix prettier
* [EC-14] add deprecated methods to collection service for desktop and browser
* [EC-14] simplify cipher type node check
* [EC-14] add getters to vault filter model
* [EC-14] refactor how we build the filter list into methods
* [EC-14] add getters to build filter method
* [EC-14] remove param ids if false
* [EC-14] fix collapsing nodes
* [EC-14] add specific type to search placeholder
* [EC-14] remove extra constructor and comment from org vault filter
* [EC-14] extract subscription callback to methods
* [EC-14] Remove unecessary await
* [EC-14] Remove ternary operators while building org filter
* [EC-14] remove unnecessary deps array in vault filter service declaration
* [EC-14] consolidate new models into one file
* [EC-14] initialize nested observable inside of service
Signed-off-by: Jacob Fink <jfink@bitwarden.com>
* [EC-14] change how we load orgs into the vault filter and select the default filter
* [EC-14] remove get from getters name
* [EC-14] remove eslint-disable comment
* [EC-14] move vault filter service abstraction to angular folder and separate
* [EC-14] rename filter types and delete VaultFilterLabel
* [EC-14] remove changes to workspace file
* [EC-14] remove deprecated service from jslib module
* [EC-14] remove any remaining files from common code
* [EC-14] consolidate vault filter components into components folder
* [EC-14] simplify method call
* [EC-14] refactor the vault filter service
- orgs now have observable property
- BehaviorSubjects have been migrated to ReplaySubjects if they don't need starting value
- added unit tests
- fix small error when selecting org badge of personal vault
- renamed some properties
* [EC-14] replace mergeMap with switchMap in vault filter service
* [EC-14] early return to prevent nesting
* [EC-14] clean up filterCollections method
* [EC-14] use isDeleted helper in html
* [EC-14] add jsdoc comments to ServiceUtils
* [EC-14] fix linter
* [EC-14] use array.slice instead of setting length
* Update apps/web/src/app/vault/vault-filter/services/vault-filter.service.ts
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [EC-14] add missing high level jsdoc description
* [EC-14] fix storybook absolute imports
* [EC-14] delete vault-shared.module
* [EC-14] change search placeholder text to getter and add missing strings
* [EC-14] remove two way binding from search text in vault filter
* [EC-14] removed all binding from search text and just use input event
* [EC-14] remove async from apply vault filter
* [EC-14] remove circular observable calls in vault filter service
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* [EC-14] move collapsed nodes to vault filter section
* [EC-14] deconstruct filter section inside component
* [EC-14] fix merge conflicts and introduce refactored organization service to vault filter service
* [EC-14] remove mutation from filter builders
* [EC-14] fix styling on buildFolderTree
* [EC-14] remove leftover folder-filters reference and use ternary for collapse icon
* [EC-14] remove unecessary checks
* [EC-14] stop rebuilding filters when the organization changes
* [EC-14] Move subscription out of setter in vault filter section
* [EC-14] remove extra policy service methods from vault filter service
* [EC-14] remove new methods from old vault-filter.service
* [EC-14] Use vault filter service in vault components
* [EC-14] reload collections from vault now that we have vault filter service
* [EC-14] remove currentFilterCollections in vault filter component
* [EC-14] change VaultFilterType to more specific OrganizationFilter in organization-options
* [EC-14] include org check in isNodeSelected
* [EC-14] add getters to filter function, fix storybook, and add test for All Collections
* [EC-14] show org options even if there's a personal vault policy
* [EC-14] use !"AllCollections" instead of just !null
* [EC-14] Remove extra org Subject in vault filter service
* [EC-14] remove null check from vault search text
* [EC-14] replace store/build names with set/get. Remove extra call to setOrganizationFilter
* [EC-14] add take(1) to subscribe in test
* [EC-14] move init logic in org vault filter component to ngOnInit
* [EC-14] Fix linter
* [EC-14] revert change to vault filter model
* [EC-14] be specific about ignoring All Collections
* [EC-14] move observable init logic to beforeEach in test
* [EC-14] make buildAllFilters return something to reduce side effects
Signed-off-by: Jacob Fink <jfink@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* [EC-97] Organization Billing Language / RxJS Warnings (#3688)
* [EC-97] Update copy to use the word members in a few places
* [EC-97] Cleanup RxJS warnings and unused properties in org billing components
* [EC-599] Access Selector Component (#3717)
* Add Access Selector Component and Stories
* Cherry pick FormSelectionList
* Fix some problems caused from cherry-pick
* Fix some Web module problems caused from cherry-pick
* Move AccessSelector out of the root components directory.
Move UserType pipe to AccessSelectorModule
* Fix broken member access selector story
* Add organization feature module
* Undo changes to messages.json
* Fix messages.json
* Remove redundant CommonModule
* [EC-599] Fix avatar/icon sizing
* [EC-599] Remove padding in permission column
* [EC-599] Make FormSelectionList operations immutable
* [EC-599] Integrate the multi-select component
* [EC-599] Handle readonly/access all edge cases
* [EC-599] Add initial unit tests
Also cleans up public interface for the AccessSelectorComponent. Fixes a bug found during unit test creation.
* [EC-599] Include item name in control labels
* [EC-599] Cleanup member email display
* [EC-599] Review suggestions
- Change PermissionMode to Enum
- Rename permControl to permissionControl to be more clear
- Rename FormSelectionList file to kebab case.
- Move permission row boolean logic to named function for readability
* [EC-599] Cleanup AccessSelectorComponent tests
- Clarify test states
- Add tests for column rendering
- Add tests for permission mode
- Add id to column headers for testing
- Fix small permissionControl bug found during testing
* [EC-599] Add FormSelectionList unit tests
* [EC-599] Fix unit test and linter
* [EC-599] Update Enums to Pascal case
* [EC-599] Undo change to Enum values
* [EC-7] fix: broken build
* [EC-646] Org Admin Vault Refresh November Release Prep (#3913)
* [EC-646] Remove links from Manage component
These links are no longer necessary as they are now located in the new OAVR tabs.
* [EC-646] Re-introduce the canAccessManageTab helper
* [EC-646] Re-introduce /manage route in Organization routing module
- Add the parent /manage route
- Add child routes for collections, people, and groups
* [EC-646] Adjust Org admin tabs
Re-introduce the Manage tab and remove Groups and Members tabs.
* [EC-646] Change Members title back to People
* [EC-646] Move missing billing components
Some billing components were in the org settings module and needed to be moved the org billing module
* [EC-646] Fix import file upload button
-Update to use click event handler and tailwind class to hide input. Avoids inline styles/js blocked by CSP
- Fix broken async pipe
* [EC-646] Fix groups and people page overflow
Remove the container and page-content wrapper as the pages are no longer on their own tab
* [EC-646] Change People to Members
Change the text regarding managing members from People to Members to more closely follow changes coming later in the OAVR. Also update the URL to use /manage/members
* [EC-646] Cherry-pick ae39afe to fix tab text color
* [EC-646] Fix org routing permissions helpers
- Add canAccessVaultTab helper
- Update canAccessOrgAdmin include check for vault tab access
- Simplify canManageCollections
* [EC-646] Fix Manage tab conditional logic
- Add *ngIf condition for rendering Manage tab
- Re-introduce dynamic route for Manage tab
* Revert "[EC-14] Refactor vault filter (#3440)" (#3926)
This reverts commit 4d83b81d82.
* Remove old reference to bit-submit-button that no longer exists (#3927)
* [EC-593] Top align event logs row content (#3813)
* [EC-593] Top align event log row contents
* [EC-593] Prevent event log timestamp from wrapping
* [EC-593] Add alignContent input to bitRow directive
* [EC-593] Remove ineffective inline styles (CSP)
* [EC-593] Remove templated tailwind classes
Tailwind minimizes the bundled stylesheet by removing classes that aren't used in code. Using a string template for the classes causes those classes to be ignored.
* [EC-593] Introduce alignContent input to table story
* [EC-657] Hide Billing History and Payment Method for selfhosted orgs (#3935)
Signed-off-by: Jacob Fink <jfink@bitwarden.com>
Co-authored-by: Vincent Salucci <vincesalucci21@gmail.com>
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Jake Fink <jfink@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* Added focus to master password field on browser client
* Added focus to master password field on desktop client
* fixed focus on master password when enter is pressed
* more css changes
* add icon button hover
* Update apps/browser/src/popup/scss/box.scss
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Update apps/desktop/src/scss/box.scss
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* feedback updates
* restore desktop pseudo rule
* update to include some variable fixes and deletions
* updates per oscar
* feedback updates
more universal variable, adjusted box padding (per Kyle), and aligned footer text
* changes per product design
added border for selects, border around generator, and hover for solarizeddark
* add more helper text space below for visual separation
* group new variable
* login page button fix
Dflinn found an odd margin on the login page
* Revert "Merge branch 'master' into browser-ext-ui-update-test"
This reverts commit b8007102f9, reversing
changes made to 246768cb12.
* fix button height
* revert file changes
* test adjustments
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
* community PR reviewed, Update search cancel button to be visible in all themes
* community PR reviewed, Update search cancel button to be visible in all themes 2
* [SG-163] Two step login flow web (#3648)
* two step login flow
* moved code from old branch and reafctored
* fixed review comments
* [SG-164] Two Step Login Flow - Browser (#3793)
* Add new messages
* Remove SSO button from home component
* Change create account button to text
* Add top padding to create account link
* Add email input to HomeComponent
* Add continue button to email input
* Add form to home component
* Retreive email from state service
* Redirect to login after submit
* Add error message for invalid email
* Remove email input from login component
* Remove loggingInTo from under MP input
* Style the MP hint link
* Add self hosted domain to email form
* Made the mp hint link bold
* Add the new login button
* Style app-private-mode-warning in its component
* Bitwarden -> Login text change
* Remove the old login button
* Cancel -> Close text change
* Add avatar to login header
* Login -> LoginWithMasterPassword text change
* Add SSO button to login screen
* Add not you button
* Allow all clients to use the email query param on the login component
* Introduct HomeGuard
* Clear remembered email when clicking Not You
* Make remember email opt-in
* Use formGroup.patchValue instead of directly patching individual controls
* [SG-165] Desktop login flow changes (#3814)
* two step login flow
* moved code from old branch and reafctored
* fixed review comments
* Make toggleValidateEmail in base class public
* Add desktop login messages
* Desktop login flow changes
* Fix known device api error
* Only submit if email has been validated
* Clear remembered email when switching accounts
* Fix merge issue
* Add 'login with another device' button
* Remove 'log in with another device' button for now
* Pin login pag content to top instead of center justified
* Leave email if 'Not you?' is clicked
* Continue when enter is hit on email input
Co-authored-by: gbubemismith <gsmithwalter@gmail.com>
* [SG-750] and [SG-751] Web two step login bug fixes (#3843)
* Continue when enter is hit on email input
* Mark email input as touched on 'continue' so field is validated
* disable login with device on self-hosted (#3895)
* [SG-753] Keep email after hint component is launched in browser (#3883)
* Keep email after hint component is launched in browser
* Use query params instead of state for consistency
* Send email and rememberEmail to home component on navigation (#3897)
* removed avatar and close button from the password screen (#3901)
* [SG-781] Remove extra login page and remove rememberEmail code (#3902)
* Remove browser home guard
* Always remember email for browser
* Remove login landing page button
* [SG-782] Add login service to streamline login form data persistence (#3911)
* Add login service and abstraction
* Inject login service into apps
* Inject and use new service in login component
* Use service in hint component to prefill email
* Add method in LoginService to clear service values
* Add LoginService to two-factor component to clear values
* make login.service variables private
Co-authored-by: Gbubemi Smith <gsmith@bitwarden.com>
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>
Co-authored-by: gbubemismith <gsmithwalter@gmail.com>
* Add item decryption to encryptService
* Create multithreadEncryptService subclass to handle web workers
* Create encryption web worker
* Refactor cipherService to use new interface
* Update dependencies
* feat(browser): implement theming for notification bar
* refactor(browser): split notification bar function
* refactor(browser): use own method for getCurrentTheme
* chore(browser): add close.svg file as an asset
this file is embedded in apps/browser/src/notification/bar.html
* feat(browser): change textContrast color on primary buttons
* feat(browser): use dedicated color variable for close button
* feat(browser): use textColor for close button
* feat(browser): implement styling for select fields
* feat(browser): improve close button styling, add hover effect
* PS-976 - when user has cipher readonly permissions, prevent user from editing cipher fields and make separate api call that only updates Favorite and Folder values
* PS-976 - in the readonly edit cipher view, hide non-operable buttons and display select values as readonly input text
* PS-976 - update failing test
* PS-976 - split cipher saveWithServer call into Create and Update calls
* PS-976 - replace property with function call to get the card expiration month for the readonly view
* MM-976 - when user has readonly permissions hide "delete" button on View Item view, hide generate username/password buttons on Edit Item view
* PS-976 - rename cipherPartialRequest file to align with new naming convention
* Add test cases from previous PR https://github.com/bitwarden/jslib/pull/547
* Install tldts as replacement for tldjs
* Use tldts for hostname and domain retrieval/validation
* Remove usage of old tldjs.noop-implementation
* Add handling of about protocol
* Remove usage of tldEndingRegex and use tldts check instead
* Uninstall @types/tldjs and tldjs
* Updated package-lock.json
* Fix accessibility cookie check
* Rename loginUriView.spec to login-uri-view.spec
* Add test for getDomain failing file links
* getHostName - Return null when given, data, about or file links
* Do not autofill if sandboxed
`self.origin` is 'null' if inside a frame with sandboxed csp or iframe tag
* Update apps/browser/src/content/autofill.js
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Record changes in autofill.js
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* updated content to sentence case
* updated 2fa verbs to match web vault PR
* title case Social Security
* sentence cased missed strings
* fixed 'work' typo on generator strings
* sentence cased Copy username
* updated missed menu options to sentence case
* Add translations for en and fi to test with
* Fix file select not being translated
* Add more translations for en and fi to test with
* Update permission labels to locale version
* Revert forms.scss file
* Revert changes
* Specify file selector button type
Co-authored-by: Daniel James Smith <djsmith@web.de>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Update Web styles and CSP to support MultiSelect component
- Include the MultiSelect module in the CL barrel file of exports
- Import the MultiSelect scss into the Web styles.scss
- Add the necessary sha256 hash to webpack CSP policy to support ngSelect inline styles
* Undo removal of 127.0.0.1 from webpack CSP
* Initial - add folder id to popup item view
* Add folder service to view component
* Move folder info higher in the item view as proper box
* Add folder name handling to component
* Add folder field to browser view
* Add folder field to desktop view
* Make folder field draggable
following the merging of https://github.com/bitwarden/clients/pull/3321 also make the folder field draggable
* Use `<label>` and readonly `<input>`
In anticipation of https://github.com/bitwarden/clients/pull/3485 being merged
* Changes from review
- change input name to `folderName`, match it in the `for` attribute on the `<label>`
- add an `if` check before querying folder names
* Match `name` to `id`
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* updated title case to sentence case
also added grammatical improvement to confirmation messages
* capitalized 'vault'
also updated the term personal vault to individual vault
* capitalized 'send'
* capitalized 'provider'
also caught some straggling lowercase 'vaults'
* sentence case 'organizations,' 'owners', and 'admins'
* updated more casing to sentence
* lowercase vault
* Updated Premium to title case
* fixed typos
* Fixed typos and removed 'disable'
* updated two-step login terms
* Fixed missed sentence casing
* Fixed missed sentence case
* lowercased groups
fixed other missed sentence case items as well
* fixe membership casing
* uppercase plan casing
addressed other comments from Fred.
* casing on billing sync and trash
* uppercase Social Security
* fixed single sign-on casing
fixed Enterprise policy casing
* merging in master
* replaced enabled
* fixed typos
Co-authored-by: Patrick <94560851+patrick-bitwarden@users.noreply.github.com>
* Add needed factories for AuthService
WIP: Allow console logs
* Add badge updates
* Init by listener
* Improve tab identification
* Define MV3 background init
* Init services in factories.
Requires conversion of all factories to promises.
We need to initialize in factory since the requester of a service
doesn't necessarily know all dependencies for that service. The only
alternative is to create an out parameter for a
generated init function, which isn't ideal.
* Improve badge setting
* Use `update-badge` in mv2 and mv3
Separates menu and badge updates
* Use update-badge everywhere
* Use BrowserApi where possible
* Update factories
* Merge duplicated methods
* Continue using private mode messager for now
* Add static platform determination.
* Break down methods and extract BrowserApi Concerns
* Prefer strict equals
* Init two-factor service in factory
* Use globalThis types
* Prefer `globalThis`
* Use Window type definition updated with Opera
Co-authored-by: Justin Baur <justindbaur@users.noreply.github.com>
* Distinguish Opera from Safari
Opera includes Gecko, Chrome, Safari, and Opera in its user agent. We need to make sure that
we're not in Opera prior to testing Safari.
* Update import
* Initialize search-service for update badge context
* Build all browser MV3 artifacts
only uploading Chrome, Edge and Opera artifacts for now, as those support manifest V3
Also corrects build artifact to lower case.
* Remove individual dist
Co-authored-by: Justin Baur <justindbaur@users.noreply.github.com>
Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
* Add generate command
* Add JSDoc
* Minor improvements
* Remove unneeded comment
* Make some properties optional
* Remove main.background.ts changes
* One more
* Lint
* Make all but length optional
* Address PR feedback
* Move generate command code to command
* Address PR feedback
* Use new alarm scheme
* Let feature handle state keys
Moves to a feature folder and creates clipboard-module level state
handler functions.
StateService is being paired down to storage routing, so we are handling storage
specifics in-module.
Co-authored-by: Justin Baur <justindbaur@users.noreply.github.com>
Co-authored-by: Daniel Smith <djsmith85@users.noreply.github.com>
* Missed some changes
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
Co-authored-by: Justin Baur <justindbaur@users.noreply.github.com>
Co-authored-by: Daniel Smith <djsmith85@users.noreply.github.com>
* Add CreationDate to common libs
* Add CreationDate to Browser
* Add CreationDate to CLI
* Add CreationDate to Desktop
* Add CreationDate to Web
* Update tests
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
Copy updated. Transition browser strings to use sentence case for all UI elements, except the following terms:
• Branded Names: Provider(s) + Provider Portal, Send(s) + Send, Directory Connector
• Plan Names: Premium, Families, Teams, Enterprise
* Add windows to platform utils service
Note, this will result in conflicts with several in-flight PRs, but is necessary for following commits.
* Add necessary background service factories
* Simplify autofill command
* Remove noop event service
* Added abstractions for PolicyApiService and PolicyService
* Added implementations for PolicyApiService and PolicyService
* Updated all references to new PolicyApiService and PolicyService
* Deleted old PolicyService abstraction and implementation
* Fixed CLI import path for policy.service
* Fixed main.background.ts policyApiService dependency for policyService
* Ran prettier
* Updated policy-api.service with the correct imports
* [EC-377] Removed methods from StateService that read policies
* [EC-377] Updated policy service getAll method to use observable collection
* [EC-377] Added first unit tests for policy service
* [EC-377] Added more unit tests for Policy Service
* [EC-376] Sorted methods order in PolicyApiService
* [EC-376] Removed unused clearCache method from PolicyService
* [EC-376] Added upsert method to PolicyService
* [EC-376] PolicyApiService putPolicy method now upserts data to PolicyService
* [EC-377] Removed tests for deleted clearCache method
* [EC-377] Added unit test for PolicyService.upsert
* [EC-377] Updated references to state service observables
* [EC-377] Removed getAll method from PolicyService and refactored components to use observable collection
* [EC-377] Updated components to use concatMap instead of async subscribe
* [EC-377] Removed getPolicyForOrganization from policyApiService
* [EC-377] Updated policyAppliesToUser to return observable collection
* [EC-377] Changed policyService.policyAppliesToUser to return observable
* [EC-377] Fixed browser settings.component.ts getting vault timeout
* Updated people.component.ts to get ResetPassword policy through a subscription
* [EC-377] Changed passwordGenerationService.getOptions to return observable
* [EC-377] Fixed CLI generate.command.ts getting enforcePasswordGeneratorPoliciesOnOptions
* [EC-377] Fixed eslint errors on rxjs
* [EC-377] Reverted changes on passwordGeneration.service and vaultTimeout.service
* [EC-377] Removed eslint disable on web/vault/add-edit-component
* [EC-377] Changed AccountData.policies to TemporaryDataEncryption
* [EC-377] Updated import.component to be reactive to policyAppliesToUser$
* [EC-377] Updated importBlockedByPolicy$
* [EC-377] Fixed missing rename
* [EC-377] Updated policyService.masterPasswordPolicyOptions to return observable
* [EC-377] Fixed vaultTimeout imports from merge
* [EC-377] Reverted call to passwordGenerationService.getOptions
* [EC-377] Reverted call to enforcePasswordGeneratorPoliciesOnOptions
* [EC-377] Removed unneeded ngOnDestroy
* Apply suggestions from code review
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* [EC-377] Fixed login.component.ts and register.component.ts
* [EC-377] Updated PolicyService to update vaultTimeout
* [EC-377] Updated PolicyService dependencies
* [EC-377] Renamed policyAppliesToUser to policyAppliesToActiveUser
* [EC-377] VaultTimeoutSettings service now gets the vault timeout directly instead of using observables
* [EC-377] Fixed unit tests by removing unneeded vaultTimeoutSettingsService
* [EC-377] Set getDecryptedPolicies and setDecryptedPolicies as deprecated
* [EC-377] Set PolicyService.getAll as deprecated and updated to use prototype.hasOwnProperty
* [EC-565] Reverted unintended change to vaultTimeoutSettings that was causing a bug to not display the correct vault timeout
* [EC-377] Removed unneeded destroy$ from preferences.component.ts
* [EC-377] Fixed policy.service.ts import of OrganizationService
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: mimartin12 <77340197+mimartin12@users.noreply.github.com>
* Trim everything at the end of decrypted payload before parsing
* Clarify comment
* Use char code check for nulls
* Extract trim code to function
* make char codes constants
* Fix async subscribe
* Revert "[PS-1066] Browser and Desktop - SSO User does not see Update Master Password screen after Owner does a Admin Password Reset (#3207)"
This reverts commit 0eda418591.
* Make totp countdown `aria-hidden`, add copy of countdown as `sr-only` inside totp button, only make it conditionally "exist" on parent focus
* Make exact same changes to desktop totp
* Tweak copy button accessible name approach
instead of `aria-label`, which overrides the content of the button and, because JAWS has trouble announcing the live region in the desktop app, results in JAWS not announcing ANY countdown at all, this at least announces the current countdown number when the button receives focus in JAWS
* Add `aria-atomic="true"`
avoid JAWS/Firefox only announcing the specific digit that updates, rather than the number as a whole
* Update, run prettier, lint
* Remove orphaned jslibs
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add build command for ee
* Add config for ee
* Add build workflow for ee
* Change build pipeline for web ee
* Fix name of workflow in trigger
* Build ee image in web build workflow
* Fix name on matrix
* FIx name of the artifact
* Comment out zip extract
* Add zip extract
* All listing dir before unzip
* Add pwd
* Comment out unzipping
* Fix
* Add matrix instead of two stages
* Remove build web ee workflow
* Fix name
* Update imports
* Implement observables in a few places
* Add tests
* Get all clients working
* Use _destroy
* Address PR feedback
* Address PR feedback
* Address feedback
* passwordless login page redesign
* passwordless login page redesign
* restyled login form to use tailwind
* restyled login form to use tailwind
* moved texts on login device template to locales
* made reactive form changes for clients
* added request model
* made more changes
* added implmentation to auth request api
* fixed refrencing issue
* renamed model property
* Added resend notification functionality
* Added new file
* login with device first draft
* login with device first draft
* login with device first draft
* login with device first draft
* connection to anonymous hub
* connection to anonymous hub
* refactored confirm login response
* removed comment
* cleaned up login
* changed uptyped form builder
* changed uptyped form builder
* [SG-168] Update login strategy with passwordless login credentials.
* [SG-168] Removed logs. Changed inputs for passwordless logic strategy. Removed tokenRequestPasswordless it is using the same as password.
* code cleanup
* code cleanup
* removed login with device from self hosted
* fixed PR comments
* added module for login
* fixed post request bug
* added feature flag
* added feature flag
* added feature flag
Co-authored-by: André Bispo <abispo@bitwarden.com>
* [SG-523] Base test runner app for native messages (#3269)
* Base test runner app for native messages
* Remove default test script
* Add case for canceled status
* Modify to allow usage of libs crypto services and functions
* Small adjustments
* Handshake request (#3277)
* Handshake request
* Fix capitalization
* Update info text
* lock node-ipc to 9.2.1
* [SG-569] Native Messaging settings bug (#3285)
* Fix bug where updating setting wasn't starting the native messaging listener
* Update test runner error message
* [SG-532] Implement Status command in Native Messaging Service (#3310)
* Status command start
* Refactor ipc test service and add status command
* fixed linter errors
* Move types into a model file
* Cleanup and comments
* Fix auth status condition
* Remove .vscode settings file. Fix this in a separate work item
* Add active field to status response
* Extract native messaging types into their own files
* Remove experimental decorators
* Turn off no console lint rule for the test runner
* Casing fix
* Models import casing fixes
* Remove in progress file (merge error)
* Move models to their own folder and add index.ts
* Remove file that got un-deleted
* Remove file that will be added in separate command
* Fix imports that got borked
* [SG-533] Implement bw-credential-retrieval (#3334)
* Status command start
* Refactor ipc test service and add status command
* fixed linter errors
* Move types into a model file
* Cleanup and comments
* Fix auth status condition
* Remove .vscode settings file. Fix this in a separate work item
* Implement bw-credential-retrieval
* Add active field to status response
* Extract native messaging types into their own files
* Remove experimental decorators
* Turn off no console lint rule for the test runner
* Casing fix
* Models import casing fixes
* Add error handling for passing a bad public key to handshake
* [SG-534] and [SG-535] Implement Credential Create and Update commands (#3342)
* Status command start
* Refactor ipc test service and add status command
* fixed linter errors
* Move types into a model file
* Cleanup and comments
* Fix auth status condition
* Remove .vscode settings file. Fix this in a separate work item
* Implement bw-credential-retrieval
* Add active field to status response
* Add bw-credential-create
* Better response handling in test runner
* Extract native messaging types into their own files
* Remove experimental decorators
* Turn off no console lint rule for the test runner
* Casing fix
* Models import casing fixes
* bw-cipher-create move type into its own file
* Use LogUtils for all logging
* Implement bw-credential-update
* Give naming conventions for types
* Rename file correctly
* Update handleEncyptedMessage with EncString changes
* [SG-626] Fix Desktop app not showing updated credentials from native messages (#3380)
* Add MessagingService to send messages on login create and update
* Add `not-active-user` error to create and update and other refactors
* [SG-536] Implement bw-generate-password (#3370)
* implement bw-generate-password
* Fix merge conflict resolution errors
* Update apps/desktop/native-messaging-test-runner/src/bw-generate-password.ts
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
* Logging improvements
* Add NativeMessagingVersion enum
* Add version check in NativeMessagingHandler
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
* Refactor account status checks and check for locked state in generate command (#3461)
* Add feawture flag to show/hide ddg setting (#3506)
* [SG-649] Add confirmation dialog and tweak shared key retrieval (#3451)
* Add confirmation dialog when completing handshake
* Copy updates for dialog
* HandshakeResponse type fixes
* Add longer timeout for handshake command
* [SG-663] RefactorNativeMessagingHandlerService and strengthen typing (#3551)
* NativeMessageHandlerService refactor and additional types
* Return empty array if no uri to retrieve command
* Move commands from test runner into a separate folder
* Fix bug where confirmation dialog messes with styling
* Enable DDG feature
* Fix generated password not saving to history
* Take credentialId as parameter to update
* Add applicationName to handshake payload
* Add warning text to confirmation modal
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
* Clean up dangling behaviorSubject
* Handle null in utils
* fix null check
* Await promises, even in async functions
* Add to/fromJSON methods to State and Accounts
This is needed since all storage in manifest v3 is key-value-pair-based
and session storage of most data is actually serialized into an
encrypted string.
* Simplify AccountKeys json parsing
* Fix account key (de)serialization
* Remove unused DecodedToken state
* Correct filename typo
* Simplify keys `toJSON` tests
* Explain AccountKeys `toJSON` return type
* Remove unnecessary `any`s
* Remove unique ArrayBuffer serialization
* Initialize items in MemoryStorageService
* Revert "Fix account key (de)serialization"
This reverts commit b1dffb5c2c, which was breaking serializations
* Move fromJSON to owning object
* Add DeepJsonify type
* Use Records for storage
* Add new Account Settings to serialized data
* Fix failing serialization tests
* Extract complex type conversion to helper methods
* Remove unnecessary decorator
* Return null from json deserializers
* Remove unnecessary decorators
* Remove obsolete test
* Use type-fest `Jsonify` formatting rules for external library
* Update jsonify comment
Co-authored-by: @eliykat
* Remove erroneous comment
* Fix unintended deep-jsonify changes
* Fix prettierignore
* Fix formatting of deep-jsonify.ts
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* fixing the bug ps-1319 by using ellipsis pipe which deafultg 25 character length
* pass 20 as the limit length instead default 25
Co-authored-by: dynwee <onwudiweokeke@gmail.com>
* Fix repository url to point to the clients repo
* Fix missing description in snapcraft.yml
* Nuspec: Fix links to point to clients repo
* Nuspec: Use the correct brand icon(same as desktop)
* Nuspec:Update description based on other stores (browser)
* PS-1111 Added prefix "Vault:" for accessibility to vault selector items
* improved html readability
* PS-1111 Added more screen reader accessibility data to the Vault selector on Desktop and Web clients
* PS-1111 removed duplicated aria-label
* PS-1111 Removed unnecessary aria-label attribute
* PS-1111 Changed browser vault item accessibility title from span to button
* [refactor] Isolate form validation logic
* [refactor] Relocate a few input scrubbing lines
* [refactor] Isolate RegisterRequest object construction logic
* [refactor] Isolate account registration logic
* [refactor] Isolate login logic
* [fix] Check for captchas during login from trial initiation
* [fix] Avoid a duplicated toast if the account was already created
* Removed logic for keyboard shortcuts specific to Vivaldi
* Removed shortcut.ts and related parts
* Removed dependency on mousetrap
* Safari: Remove sidebar_action and_execute_sidebar_action from manifest.json
* Rebuilt package-lock.json
* Fixed merge issue from pulling master
* Add structure to display server version on browser
* Add getConfig to State Service interface
* Clean up settings component code
* Switch to ServerConfig, use Observables in the ConfigService, and more
* Fix runtime error
* Sm 90 addison (#3275)
* Use await instead of then
* Rename stateServerConfig -> storedServerConfig
* Move config validation logic to the model
* Use implied check for undefined
* Rename getStateServicerServerConfig -> buildServerConfig
* Rename getApiServiceServerConfig -> pollServerConfig
* Build server config in async
* small fixes and add last seen text
* Move config server to /config folder
* Update with concatMap and other changes
* Config project updates
* Rename fileds to convention and remove unneeded migration
* Update libs/common/src/services/state.service.ts
Update based on Oscar's recommendation
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
* Update options for Oscar's rec
* Rename abstractions to abstracitons
* Fix null issues and add options
* Combine classes into one file, per Oscar's rec
* Add null checking
* Fix dependency issue
* Add null checks, await, and fix date issue
* Remove unneeded null check
* In progress commit, unsuitable for for more than dev env, just backing up changes made with Oscar
* Fix temp code to force last seen state
* Add localization and escapes in the browser about section
* Call complete on destroy subject rather than unsubscribe
* use mediumDate and formatDate for the last seen date messaging
* Add ThirdPartyServerName in example
* Add deprecated note per Oscar's comment
* [SM-90] Change to using a modal for browser about (#3417)
* Fix inconsistent constructor null checking
* ServerConfig can be null, fixes this
* Switch to call super first, as required
* remove unneeded null checks
* Remove null checks from server-config.data.ts class
* Update via PR comments and add back needed null check in server conf obj
* Remove type annotation from serverConfig$
* Update self-hosted to be <small> per design decision
* Re-fetch config every hour
* Make third party server version <small> and change wording per Oscar's PR comment
* Add expiresSoon function and re-fetch if the serverConfig will expire soon (older than 18 hours)
* Fix misaligned small third party server message text
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Allowing whitespace to wrap solves the issue of long link/button text awkwardly breaking out of controls
Widening desktop "pages" prevents some unnecessary wrapping in places like the "Create account" button on the login screen, whose content is slightly wider than it should be (but this is currently masked by the `nowrap`)
Closes https://github.com/bitwarden/clients/issues/2620
* CL-7 Begin Implementing Avatar
* add figma design to parameters
* rework size property
* Update Figma file to correct component
* remove circle input (avatar will always be a circle)
* adjust sizing and limit inputs
* Setup color input and functionality
* Add border option
* fix bug duplicating classes
* Update size for large avatar
* Remove unnecessary class
* Fix typo
* Remove 'dynamic' input (Avatar will now regenerate on changes by default)
* Use Tailwind class instead of an arbitrary value
* Remove gravatars (deprecated, see SG-434)
* Rename methods to a more accurate name
* Rework classList() getter method
* Remove unnecessary logic and services
* Make properties private, and rename for better clarity
* Move sanitizer logic to the TS code rather than the template
* Rework and move function to a common static class in Utils
* Rename 'data' to 'text' for clarity
* Rework classList implementation
* Remove email since we removed gravatars
* Remove template
* set color based on color, id, or text input
* rework generate method
* add explicit null/undefined check
* remove comment
Co-authored-by: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
* [EC-512] feat: create new icon class
* [EC-512] feat: implement protected svgIcon function
* [EC-512] feat: use new icon class in component
* [EC-512] feat: integrate new icons in application
* [EC-512] fix: linting
* [EC-512] chore: move report icons to where they are used
* [EC-512] chore: add export type explanation
* Register Arabic language with native name
* Register Arabic language for web vault
* Register Arabic language for browser
* Register Arabic language for desktop
* Rough draft of Export/Import changes w/ password encryption
* fix for encrypted export changes
* Create launch.json
* Updates to export logic modal user secret prompt
* Updates to error handling
* renaming the component for checking the user secret to a name that is more clear about what it accomplishes
* Fixing lint errors
* Adding a comment
* Suggested changes from CR
* Suggested changes from CR
* Making suggested changes
* removing unnecessary properties
* changes suggested
* Fix
* Updating error messages
* Removing unecessary launch.json file commit
* running lint, removing commented code
* removing launch.json
* Updates to remove the userVerificationPromptService
* updates
* Removing unused import, running npm prettier/lint
* Changes to use Form Fields
* Updates
* updates requested by Matt
* Update apps/web/src/app/tools/import-export/export.component.ts
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Suggested Changes from PR
* Fix after merge from Master
* changes to styling
* Removing unused code and cleanup
* Update libs/angular/src/components/user-verification-prompt.component.ts
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Update apps/web/src/locales/en/messages.json
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Changes suggested by Thomas R
* Merging master into branch
* Revert "Merging master into branch"
This reverts commit eb2cdffe49.
* Requested changes and improvements
* merging master into feature branch
* Revert "merging master into feature branch"
This reverts commit e287715251.
* Suggested Changes
* changes
* requested changes
* Requested changes
* removing comments, fixing code
* reducing copied code
* fixing bug
* fixing bug
* changes
* WIP
* Thomas's requested changes
* adding back missing spaces
* change needed after the merge from master into feature branch
* prettier + lint
* Updating the EncryptedExportType Import
* Fixing build errors
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* Move FilePasswordPrompt to ImportExportModule
Also remove base class
Also remove duplicate service providers
* Run prettier
* Suggested Changes from Thomas
* only require filePassword and confirmFilePassword if it's type is FileEncrypted
* Update to only enable the field when submitting a file password encrypted file
* Requested changes, moving logic to web
* undoing change to bit button
* Refactor to process file-encrypted imports in main import.component
* Refactor confirm file password check
* Remove UserVerificationPromptService
* Address CodeScene feedback
* Updates to disable the required file password field when needed
* Subscribe to reactive form changes to adjust validators
* style changes requested by suhkleen
* Delete duplicate classes
* Fixing storybook issue
* Updating copy for encrypted export
Co-authored-by: CarleyDiaz-Bitwarden <103955722+CarleyDiaz-Bitwarden@users.noreply.github.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* Extract into new VaultTimeoutSettingsService
* Ensure new service is instantiated and registered for DI
* Create vaultTimeoutSettingsServiceFactory
* Fix VaultTimeoutServiceFactory
* Remove any and use void instead
* Move vaultTimeoutAbstraction into it's own folder
* Move vaultTimeout service into it's own folder
* Added vaultTimeoutServiceFactory and it's missing dependencies
* Add more factories
Revert main.background factory usage.
We could still do this, but factories must init their services and so need
to be async, which is not compatible with initializing in constructors
* Fix conflicts
* Rough draft of Export/Import changes w/ password encryption
* fix for encrypted export changes
* Create launch.json
* Updates to export logic modal user secret prompt
* Updates to error handling
* renaming the component for checking the user secret to a name that is more clear about what it accomplishes
* Fixing lint errors
* Adding a comment
* Suggested changes from CR
* Suggested changes from CR
* Making suggested changes
* removing unnecessary properties
* changes suggested
* Fix
* Updating error messages
* Removing unecessary launch.json file commit
* running lint, removing commented code
* removing launch.json
* Updates to remove the userVerificationPromptService
* updates
* Removing unused import, running npm prettier/lint
* Changes to use Form Fields
* Updates
* updates requested by Matt
* Update apps/web/src/app/tools/import-export/export.component.ts
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Suggested Changes from PR
* Fix after merge from Master
* changes to styling
* Removing unused code and cleanup
* Update libs/angular/src/components/user-verification-prompt.component.ts
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Update apps/web/src/locales/en/messages.json
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Changes suggested by Thomas R
* Merging master into branch
* Revert "Merging master into branch"
This reverts commit eb2cdffe49.
* Requested changes and improvements
* merging master into feature branch
* Revert "merging master into feature branch"
This reverts commit e287715251.
* Suggested Changes
* changes
* requested changes
* Requested changes
* removing comments, fixing code
* reducing copied code
* fixing bug
* fixing bug
* changes
* WIP
* Thomas's requested changes
* adding back missing spaces
* change needed after the merge from master into feature branch
* prettier + lint
* Updating the EncryptedExportType Import
* Fixing build errors
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* Move FilePasswordPrompt to ImportExportModule
Also remove base class
Also remove duplicate service providers
* Run prettier
* Suggested Changes from Thomas
* only require filePassword and confirmFilePassword if it's type is FileEncrypted
* Update to only enable the field when submitting a file password encrypted file
* Requested changes, moving logic to web
* undoing change to bit button
* Refactor to process file-encrypted imports in main import.component
* Refactor confirm file password check
* Remove UserVerificationPromptService
* Address CodeScene feedback
* Updates to disable the required file password field when needed
* Subscribe to reactive form changes to adjust validators
* style changes requested by suhkleen
* Delete duplicate classes
Co-authored-by: CarleyDiaz-Bitwarden <103955722+CarleyDiaz-Bitwarden@users.noreply.github.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <eliykat@users.noreply.github.com>
* Remove cast to any as Utils.gobal got typed with #3131
* BitwardenFileUploadService: Remove unneeded dependency
* Remove allowSoftLock from vaultTimeoutService
* ImportService: Remove dependency on PlatformUtilsSvc
* Add `role="group"` and accName to URI and custom field groups (browser)
Provides more context when editing fields (to understand what the remove, options, etc buttons are all about)
* Add `aria-describedby` to custom field value fields (browser)
provides further context other than the generic "Value" label
* Add `role="group"` and accName to URI and custom field groups, add `aria-describedby` to custom field value fields (desktop)
* Add `role="group"` and accName to URI and custom field groups, add `aria-describedby` to custom field value fields (web)
* Use `attr.aria-label` instead of `appA11yTitle`
don't need/want the tooltips appearing everywhere
* Register basque language with native name
* Register basque language for web vault
* Register basque language for browser
* Register basque language for desktop
* Create service factories
* Add onInstall hook to service worker
* Add factory helper and common options structure
* Use factories in main.background
* simplify common factory options
* Split factory service cache and options.
Improve factory method base type handling.
* Add dev flag for managed environment.
* Change box-headers from generic `<div>` to semantic headings, tweak heading styles
Essentially, a late port to desktop of aspects from https://github.com/bitwarden/clients/pull/2223 (which I hadn't realised at the time also affected the desktop app)
* Change box headers in modals to `<h1>`s
* Fix/normalise modals
* Harmonise modal dialog headings, use `aria-labelledby`
* Remove appBlurClick throughout the popup code
`appBlurClick` leads to focus being lost/reset for assistive technology users. It should not be necessary in any case - if focus does need to move after an action, explicitly set it somewhere programmatically using `focus()` rather than relying on browser heuristics
* Remove now redundant blur-click directive
* Add extra margin for desktop settings expanded header buttons
* Only change box-header-expandable background on `:focus-visible` not `:focus`
Avoids having the background colour "stick" when clicking with the mouse until you click somewhere else
* Create sessions sync structure
* Add observing to session-syncer
* Do not run syncer logic in decorator tests
* Extract test constants
* Change Observables to BehaviorSubject
* Move sendMessage to static method in BrowserApi
* Implement session sync
* only watch in manifest v3
* Use session sync on folder service
* Add array observable sync
* Bypass cache on update from message
* Create feature and dev flags for browser
* Protect development-only methods with decorator
* Improve todo comments for long-term residency
* Use class properties in init
* Do not reuse mocks
* Use json (de)serialization patterns
* Fix failing session storage in dev environment
* Split up complex EncString constructor
* Default false for decrypted session storage
* Try removing hydrate EncString method
* PR review
* PR test review
* Replace Permissions enum and helper methods with callbacks
* Remove scim feature flag
* Check if org has feature enabled as part of canManage checks
* Pin jest-mock-extended at v2.0.6 to fix compilation error
* Create base jest.config file
* Fix various tests that were broken
* Add maxWorkers to jest config
* Undo change to testEnvironment
* Enable tsconfig.spec.json
* Work on background service worker.
* Work on shortcuts
* Work on supporting service worker
* Put new background behind version check
* Fix build
* Use new storage service
* create commands from crypto service (#2995)
* Work on service worker autofill
* Got basic autofill working
* Final touches
* Work on tests
* Revert some changes
* Add modifications
* Remove unused ciphers for now
* Cleanup
* Address PR feedback
* Update lock file
* Update noop service
* Add chrome type
* Handle "/" in branch names
Updates web workflow to handle the `/` in branch names when it's a PR.
* Remove any
Co-authored-by: Jake Fink <jfink@bitwarden.com>
Co-authored-by: Micaiah Martin <77340197+mimartin12@users.noreply.github.com>
* Change subscription to rely on observables and not on BehaviourSubject
* Ensure OnDestroy is added to AppComponent
* Fix check for no active accounts to redirect to the login page instead of lock
* Change subscription handling on SearchBarService
* Fix naming convention: Observables should have a $ suffix
* Remove obsolete linter hint
* Fix activeAccountUnlocked getting exposed as Observable but is instantiated as BehaviourSubject
* [SG-416] Changed UI for TOTP codes on free plan and added link to get Premium. On browser, changed back action of premium.component in order to reuse on cipher details.
* [SSG-416] PR Fix
* [SSG-416] fix formatting
* [SSG-416] Updated desktop free plan OTP UI
* [SSG-416] noticed a bad div tag making file changes erratic
* [SG-416] fixed label
* [SSG-416] Fix formatting
* [SSG-416] Changed bootstrap classes to tailwind
* [SSG-416] Added premium and upgrade badge back. Muted placeholder totp code colors and button.
* [SSG-416] Change learn more to upgrade label on get premium modal. Fixed navigation for premium.
* [SSG-416] Removed unused image file.
* [SG-416] Changed browser "Premium subscription required" text to be all hyperlink.
* [SG-416] Fixed missing resource on browser
* [SG-416] Code format with lint
* moved password strength to libs
* refactored password strength component
* made changes on desktop and browser to reuse component
* resolved suggestions from PR review
* shared module restructure
* shared module restructure
* Fixed no warning prompt on reset password
* SG-519 setting new password warning prompt fix
* removed any and added type
* Move Web's SharedModule to /app/shared/
This commit relocates `SharedModule` from `/app/modules` to `/app/shared` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference `SharedModule`.
* Move /modules/pipes to /shared/pipes
This commit relocates `PipesModule` from `/app/modules` to `/app/shared` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference `PipesModule`.
* Move LooseComponentsModule to /shared/
This commit relocates `LooseComponentsModule` from `/app/modules` to `/app/shared` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference `LooseComponentsModule`.
* Move VerticalStepperModule to /shared/
This commit relocates `VerticalStepperModule` from `/app/modules` to `/app/shared` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference `VerticalStepperModule`.
* Move TrialInitiationModule to /shared/
This commit relocates `TrialInitiationModule` & `RegisterFormModule` from `/app/modules` to `/app/shared` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference `TrialInitiationModule` or `RegisterFormModule`.
* Move /modules/organization to /organization
This commit relocates all modules in `/app/modules/organization` to `/app/organization` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference the moved modules.
* Move /modules/vault/ to /vault
This commit relocates the IndividualVaultModule to `/app/modules/vault`, and the OrganizationVaultModule to `/app/organization/vault` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference the moved modules.
* Move VaultFiltersModule to /vault
This commit relocates the `VaultFilterModule` to `/app/vault/vault-filter`, and the OrganizationVaultFilterComponent to `/app/organization/vault/vault-filter` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference the moved modules.
* Remove the /modules/ folder from desktop
This commit relocates the `VaultFilterModule` to `/app/vault/vault-filter`, and the OrganizationVaultFilterComponent to `/app/organization/vault/vault-filter` to
align with [ADR #11](https://adr.bitwarden.com/decisions/0011-angular-folder-structure)
All other changes are just to adjust imports that reference the moved modules.
* Move Libs' VaultFiltersComponent to /vault/
This commit moves the lib's logic for `VaultFiltersModule` from
`/modules/` to `/vault/`
All other changes are just to adjust imports that reference the moved
files.
* Rename VaultModule -> SharedVaultModule
* Rename IndividualVaultModule -> VaultModule
* Rename OrganizationVaultModule -> VaultModule
* Rename OrganizationVaultFilterComponent
Rename OrganizationVaultFilterComponent to VaultFilterComponent
* Seperate the two VaultFilterComponents
This commit seperate the `OrganizationVaultFilterComponent` from the `VaultFilerModule`, which is only used by the individual vault.
A `VaultFilterSharedModule` was created to declare shared components and provide shared services between the two implementations.
This was done to align with best practices for NgModules.
* [r] Move VerticalStepperModule to /account/
More specifically, /account/trial/
* [r] Declare PaymentComponent in LooseComponentsModule
`PaymentComponent` is not reused across domains and should not be
declared in `SharedModule`.
I've moved it to `LooseComponentsModule` for now, but later it will need
to be exported from a `SettingsModule`.
* [r] Declare TaxInfoComponent in LooseComponentsModule
* [r] Reloacte Pipes out of /shared/
* [r] Extract locales out of SharedModule
* [r] Add documentation to shared module
* [r] Cleanup imports
* [r] Use an index.ts file for /shared/
* [r] Add eslint rule restricting access to /shared/
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* Add managed_schema
* Add note on login page which server you are logging into.
* Implement it
* Remove caching logic since it seems unecessary
* Add error
* Handle error in hasManagedEnvironment
* Fix compile
* Added abstractions for PolicyApiService and PolicyService
* Added implementations for PolicyApiService and PolicyService
* Updated all references to new PolicyApiService and PolicyService
* Deleted old PolicyService abstraction and implementation
* Fixed CLI import path for policy.service
* Fixed main.background.ts policyApiService dependency for policyService
* Updated policy-api.service with the correct imports
* [EC-376] Sorted methods order in PolicyApiService
* [EC-376] Removed unused clearCache method from PolicyService
* [EC-376] Added upsert method to PolicyService
* [EC-376] PolicyApiService putPolicy method now upserts data to PolicyService
* Removed check for getBiometricLocked
It always returned false even when no biometrics were used.
* Remove the other check for getBiometricsLocked
* Ensure that biometricFingerprintValidation is reset, when biometrics are disabled
* Removed getBiometricsLocked and setBiometricsLocked
With nothing in the codebase reading the state of getBiometricsLocked, I've removed all places where it was set or saved.
* Refactor execution of reload into a separate method
* Conditonally pass the window object to `BrowserApi.reloadExtension`
* Clarify in comment, that the PIN has to be set with ask for Master Password on restart
* Ensure the process reload is executed on logout
* Use accounts instead of lastActive == null to determine a reload on logout
* Moved identical logic from desktop and browser into system.service
* Simplified check for refresh to handle no accounts found, logout, lock with lastActive longer than 5 seconds
* Inconsiquential change to allow a draft PR
* Serve blocks requests from browsers by default
Option is provided to override this behavior for backwards
compatibility.
* Revert "Inconsiquential change to allow a draft PR"
This reverts commit 0f51344c35.
* added a refresh token to avoid the time out issue
* validating for forcePasswordReset for web extension
* checking for forcePasswordReset to know the successRoute to nagivate to
* changes after running prettier
* removing the old implementation and making changes for getForcePasswordReset
* making chnages to lock.component in desktop project for forcePasswordReset
Co-authored-by: dynwee <onwudiweokeke@gmail.com>
* Configure jest for web
* attempt to fix linter fule preventing angular core imports
* trial initiation tests
* small trial initiation component fix
* Small naming fix in tests
* moved password strength to libs
* refactored password strength component
* made changes on desktop and browser to reuse component
* resolved suggestions from PR review
* shared module restructure
* shared module restructure
* [EC-317] feat: add delete account section in settings
* [EC-317] feat: add new delete account modal
* [EC-317] feat: add ability to replace top-most modal
* [EC-317] chore: remove unecessary lint ignore
* [EC-317] fix: so delete account is closed if export vault is opened
* [EC-317] feat: inital delete account design without i18n
* [EC-317] feat: disabled but basic working delete functionality
* [EC-317] feat: implement according to new design
* [EC-317] feat: use translations
* [EC-317] feat: implement working deletion
* [EC-317] feat: add loading state and error messages
* [EC-317] feat: add menu bar item
* [EC-317] feat: update form to support typed reactive forms
* [EC-317] chore: update translation text after design review
* [EC-317] feat: move deletion logic to service
* [EC-317] refactor: update web deletion
* [EC-317] feat: disable submit if secret is empty
* [EC-317] fix: handle errors in components as well
* [EC-317] fix: use abstraction as interface
* [EC-317] refactor: extract deleteAccount from api service
* [EC-317] fix: typo in translations
* [EC-317] chore: rename to accountApiService
* Added properties "userCount", "seats" and "plan" to ProviderOrganizationResponse
* Added text message "numberOfUsers"
* Updated provider clients component with new columns
* Removed never used dependency
* Changed userCount to non nullable number
* Added condition on the component to only show seats number if not null
* Changed view condition to an explicit check
* Fix incorrect h2/button nesting, wrap expand/collapse controls around their text and remove unnecessary `appA11yTitle`s, expand `appA11yTitle` where needed to give more context, fix broken `aria-pressed` attributes, tweak styling
* Remove orphaned jslibs
* Remove `appBlurClick` from browser extension controls
* Remove last remaining `appBlurClick` from desktop app controls
* Change any straggler `<a>` links to buttons where appropriate (where they don't open a browser window)
* Add missing `type="button"` to some of the desktop buttons
* Update and run prettier, linter
* Remove orphaned jslibs
* modify the submit function to validate only the newly/modified domains
* changes after running prettier
Co-authored-by: dynwee <onwudiweokeke@gmail.com>
* Added organizationId to EventData and EventRequest
* Added EventType Organization_ClientExportedVault
* Sending organizationId on Organization Export event
* Checking that the user belongs to the organization
* Added organizationExportResponse model
* Added API method to get Organization vault export data
* Updated getOrganizationDecryptedExport to use new API method
* Require specifying a tab in doAutoFill options to ensure only the desired tab is filled
* Specify well defined type for added tab properties
* Replace new tabToAutoFill property with parameter
* chore: remove superfluous default
* fix: translations
* feat: dont update auto biometric but hide the option
* feat: hide auto biometrics if biometrics are disabled
* refactor: make updateBiometric easier to read and add bug note
* chore: add comment about bug getting resolved
* refactor: merge two if-cases
* update electron
* downgrade electron-builder
* update electron target in electron-builder
* accept compatible versions in electron-builder
* remove ^ from electron version
* keep electron-builder at exact version
* [PS-713] Fix locale search bug
* [PS-713] Add new locales to start at 1 char search
* [PS-713] Switch to ReplaySubject and other edits from PR comments
* PS-713: Add destroy to other sub and make locale inline a const
* PS-713: Use firstValueFrom instead of takeUntil
* PS-713: get this.locale asynchronously
Co-authored-by: Colton Hurst <churst@bitwarden.com>
* Changed policies dialog “enabled” checkboxes title to “Turn on”
* Changed policies “Enabled” badge text to “On”
* Moved master password reset policy up to 3rd row
* Changed the wording on the Single-Sign-On page
* Updated policies page content
* Master-password component now uses new title text
* Two-factor-auth component now uses new title text
* Updated personal-ownership model checkbox text
* Updated texts for send options policy
* Updated the single-sign-on policy description
* Create reusable organization info component
* remove extra import
* Use observable for form value changes
* Remove unnecessary null checks
* Refactor reactive controls
* feat: add unassigned collection to decrypted collections
* feat: add support for unassigned in individual vault
* fix: dont activate collection when not selected
* fix: remove collection selection completely when pruning
* feat: prune collection selection if selecting my vault
* fix: filter and only show organization ciphers when unassigned collection is selected
* fix: only show unassigned for admins
* feat: add unassigned logic to organizational vault buildFilter
* refactor: move buildFilter to VaultFilterModel
* chore: add buildFilter tests
* fix: bugs in filtering logic
* refactor: use VaultFilter.buildFilter on desktop
* chore: group and reword tests for better readability
* feat: add additional test
* fix: connect unassigned collection to organization
* fix: test by adding missing
* chore: tweak test group naming
* fix: change undefined to null to better reflect real values
* [refactor] Introduce a file download service
* [refactor] Point platformUtilsService.saveFile() callers to fileDownloadService.download() instead
* [refactor] Remove platformUtilsService.saveFile()
* [fix] Force send attachments to always download and never open
* [fix] Remove the window property from FileDownloadRequest
* [fix] Move FileDownloadRequest to /abstractions/fileDownload
* [fix] Simplify FileDownloadRequest to a type
* [fix] Move BrowserApi.saveFile logic into BrowserFileDownloadService
* [fix] Use proper blob types for file downloads
* [fix] forceDownload -> downloadMethod on FileDownloadRequest
* [fix] Remove fileType from FileDownloadRequest
* [fix] Make fileType private
* Desktop: suppress user-select for most interface elements
* Better way to target .box-footer
make it non-selectable everywhere (to avoid missing stragglers) but explicitly make it selectable in the `app-vault-view` (so we can select the "Updated: ..." footer text)
* Prettier
* Remove orphaned jslibs
* Use abstract methods and generics in StorageService
* Prepend `Abstract` to abstract classes
* Create session browser storage service
* Use memory storage service for state memory
* Inject memory storage service
* Maintain filename extensions to help ide formatting
* Preserve state if it's still in memory
* Use jslib's memory storage service
* linter
* Create prototypes on stored objects
* standardize package scripts
* Add type safety to `withPrototype` decorators
* webpack notify manifest version
* Fix desktop
* linter
* Fix script
* Improve prototye application
* do not change prototype if it already matches desired
* fix error with object values prototype application
* Handle null state
* Apply prototypes to browser-specific state
* Add angular language server to recommended extensions
* Improve browser state service tests
* Start testing state Service
* Fix abstract returns
* Move test setup files to not be picked up by default glob matchers
* Add key generation service
* Add low-dependency encrypt service
* Back crypto service with encrypt service.
We'll want to work items that don't require state over to encrypt service
* Add new storage service and tests
* Properly init more stored values
* Fix reload issues when state service is recovering state from session storage
Co-authored-by: Thomas Avery <Thomas-Avery@users.noreply.github.com>
Co-authored-by: Justin Baur <admin@justinbaur.com>
* Simplify encrypt service
* Do not log mac failures for local-backed session storage
* `content` changed to `main` in #2245
* Fix CLI
* Remove loggin
* PR feedback
* Merge remote-tracking branch 'origin/master' into add-memory-storage-to-state-service
* Fix desktop
* Fix decrypt method signature
* Minify if not development
* Key is required
Co-authored-by: Thomas Avery <Thomas-Avery@users.noreply.github.com>
Co-authored-by: Justin Baur <admin@justinbaur.com>
* regression bug fix on custom timeout switch for the browser
* regression bug fix on custom timeout switch for the browser
* locale key fix
* suggestion fixes
* feat(browser): Update auto biometrics copy
* refactor(common): remove TotpService.isAutoCopyEnabled and use state directly
The TotpService was just taking the value from StateService and forwarding it, making it depend on state service.
All services that depended on the TotpService.isAutoCopyEnable flag also depended on StateService.
This therefore simplifies things by using StateService directly.
* feat(browser): update auto totp copy
* feat(browser): update add login notification copy
* feat(browser): update change password notification copy
* feat(browser): update context menu copy
* feat(browser): update show cards current tab copy
* feat(browser): update show identities current tab copy
* feat(browser): update enable favicon copy
* feat(browser): update badge counter copy
* feat(browser): update auto-fill copy
* feat(desktop): update auto biometrics prompt copy
* feat(desktop): update favicon copy
* feat(desktop): adjust copy
* feat(web): update favicons copy
* feat(web): adjust copy
* feat(web): update preference settings to sentence case
* feat(browser): update settings and options page to sentence case
* feat(desktop): update settings to sentence case
* feat(web): update copy
* feat(desktop): update copy
* Ignore jest for workspaces without tests (for now)
* Add jest as recommended extension
* Set eslint and prettier file paths
We can't do this on a multi-folder workspace level because the
path depths are not identical between folders
* fix tsconfig extends for
* Simplify bitwarden-licensed web tsconfig
This tsconfig isn't needed to build, since we do that through webpack
and the web client. It's only needed as hints to IDEs
* Remove unintended change
* linter
In the ciphers list we show a badge for organization ownership that can be clicked to filter the vault by the organization in question. This expansion does not work for items labeled "Me". Click these badges filters by "My Vault" but doesn't expand the filter list.
This commit corrects this behavior so the "Me" badges expand the organization filters when clicked. It does so by simply moving the line that checks for filter expansion out of a conditional that expects an organization, and instead does it any time an organization filter is changed.
https://bitwarden.atlassian.net/browse/SG-293?focusedCommentId=13459&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13459
* PS-589 Added Device Verification section for enable/disable the feature of 2FA email on new device login and the api calls for the new endpoint
* PS-589 prettier fix
* PS-589 Fix import typo because of caps
* PS-589 Improved button to use bitButton directive and loading to have the ngIf on the 2fa setup component
* Add loading spinner to emergency access page
* Update options menu to use new triple-dot menu
* Fix broken save button spinner
* Use bitButton directive
* Prettier fix
* Add option for beta channels in package.json for electron
* Change placement of build settings
* Add version
* Revert "Add version"
This reverts commit 2e09cc7d5e.
* Add electron version to package.json
* Move build to higher level
* Add upload beta autoupdate
* Revert version
* Updating the release workflow with the new channels
* restrict GitHub Release to only 'latest'
* fixing electron-builder configuration
* version bump test
* fixing words
* Commenting out the npm cache in the windows build job
* Adding back in the caching for the future
* Revert "version bump test"
This reverts commit b732d00841.
Co-authored-by: Joseph Flinn <joseph.s.flinn@gmail.com>
* Disable the ability to open infinite popouts in the browser
* fixing lint error
* Adding padding
* Updating code to use ngIf instead of show for the app-pop-out
* Clearing the search bar when switching accounts
* Fixing Lint Issues and Prettier
* Updating the message to use switchAccount instead of a new message name "clearSearchBarText"
* Updating to use Observable on activeAccount
* adding back line
* adding back line
* Adding OnInit OnDestroy
- following recent change in structure, with `<app-vault-ciphers>`, the flex styles were one level too high. retargets the selector to the first child `<div>`
* Update so the image for the clear search button is visible in all themes
* Whitespace updates
* changes from master
* Revert "changes from master"
This reverts commit 33ccee3d9181b9442000a22dfc17d1422a4948d9.
* fixing linting issue with header.scss
* Initial org filter work
* update jslib
* Move filter to below cipher length check
* don't show vault filter in personal or org folder
* Use family icon for families org
* jslib and auth guard updates
* lint fixes
* rename GroupingsComponent to VaultFilterComponent
* fix no folder showing all items
* Add checks for PersonalOwnership policy
* update css class names
* lint fixes
* cleanup
* Some final cleanup
* import order lint fix
* remove unused import
* Use smaller icon for chevron
* Update src/popup/vault/organization-filter.component.ts
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
* Update src/popup/vault/organization-filter.component.ts
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
* fix lint error
* remove extra localizations
* rename orgFilter -> vaultSelect
* Rename orgFilterService to VaultSelectService
* lint fixes
* combine vault select service with vault filter service
* Use base vault filter service methods
* Use VaultFilter model and other small fixes
* lint fixes
* Final restructuring pass
* Update jslib and remove extra function
* Remove extra imports
* remove space
* Remove vaultFilterService from background services
* Update jslib to latest on feature branch
* merge fix
* update jslib
* [feat] Implement EUVR for desktop
Should contain only https://github.com/bitwarden/desktop/pull/1487, with merge resolutions and style fixes
* [fix] Delete unused GroupingsComponentTemplate
* [dep] Update jslib
Co-authored-by: Addison Beck <addisonbeck1@gmail.com>
* Change send list controls to buttons
make them keyboard focusable/operable
* Fix width/display of sends
* Make `.row-btn.disabled` also apply to natively `disabled` buttons without need for class
* Change accessible name for send group to use the send's name, not generic "Edit item" title