* init refactor
* Fix current user access checks
* Add in warning dialogs that are aware of other APs
* cleanup handlers; refresh sa list on removal
* Code review updates
* [SM-580] Add warning dialog for Service account People tab (#4893)
* Add warning dialog from figma
* move dialog out of access selector component; add after delete event; remove people-sa logic
* remove commented code and unused service
* Updates to work with SM-581
---------
Co-authored-by: William Martin <contact@willmartian.com>
---------
Co-authored-by: William Martin <contact@willmartian.com>
* [EC-775] feat: add compatibility layer from #4154
* [EC-775] fix: ciphers not reloading on filter change
* [EC-775] feat: add support for cipher types
* [EC-775] feat: implement organization switching
* [EC-775] feat: remove invalid folder and collection checks
Had to remove these becuase they were causing double navigations on each click.
* [EC-775] fix: fix reverse data flow race condition
vault-filter.component was pushing up old filter models which would sometimes overwrite new filter models that came from the routed filter service.
* [EC-775] fix: No folder use-case not working
* [EC-775] feat: make navigation behave like master
* [EC-775] feat: add support for trash
* [EC-775] chore: simplify findNode
* [EC-775] feat: add support for org vault
* [EC-775] feat: add support for orgId in path
* [EC-775] feat: use proper treenode constructor
* [EC-775] chore: remove unnecessary variable
* [EC-775] docs: add docs to relevant classes
* [EC-775] chore: use existing function for searching tree
* [EC-775] fix: hide "new" button in trash view
* [EC-775] feat: add explicit handling for `AllItems`
* [EC-775] fix: prune folderId when changing organization
* [EC-775] fix: properly use `undefined` instead of `null`
* [EC-775] chore: simplify setters using ternary operator
* [EC-775] feat: add static typing to `type` filter
* [EC-775] feat: use new `All` variable for collections
* [EC-775] feat: return `RouterLink` compatible link from `createRoute`
* [EC-775] feat: add ordId path support to `createRoute`
* [EC-775] fix: interpret params differently in org vault
This is needed due to how defaults used to work when using `state-in-code`. We really want to get rid of this type of logic going forward.
* [EC-775] doc: clarify `createRoute`
* [EC-775] fix: better `type` typing
* [EC-775] feat: remove support for path navigation
It's better that we circle back to this type of navigationt when we're working on the VVR and have more knowledge about how this is supposed to work.
* [EC-775] fix: refactor bridge service to improve readability
Refactor follows feedback from PR review
* Init service layer changes
* refactor service to inherit abstract
* refactor access-selector component
* update access selector in projects
* add service accounts access selector
* update i18n
* fix delete action; use useExisting in providers
* update static permissions
* service account people should be readwrite on creation
* use setter instead of observable input
* remove warning callout
* remove abstract service
* truncate name in table
* remove extra comments
* Add projects access policy page
* Add locale
* use map instead of forEach
* refactor view factories
* update SA people copy
* map list responses
* Swap to using granted policies endpoints
* Remove text-xl from icon
---------
Co-authored-by: Thomas Avery <tavery@bitwarden.com>
Co-authored-by: William Martin <contact@willmartian.com>
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
* Init service layer changes
* refactor service to inherit abstract
* refactor access-selector component
* update access selector in projects
* add service accounts access selector
* update i18n
* fix delete action; use useExisting in providers
* update static permissions
* service account people should be readwrite on creation
* use setter instead of observable input
* remove warning callout
* remove abstract service
* truncate name in table
* remove extra comments
* use map instead of forEach
* refactor view factories
* update SA people copy
* map list responses
---------
Co-authored-by: William Martin <contact@willmartian.com>
* remove added template for ngIf and rename icon directive
* fix regression in product switcher
* fix text color of bulk delete in org vault
* use ng-container for *ngIf
* Move autofillConstants to autofill folder
* Remove autofillConstants from whitelist capital
* Add vault team as code owners for autofill folder
* Update codeowners for web
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
* SM-281: Initial commit with trash component setup
* SM-281: Customize secrets list component, add ability to hard delete secrets
* SM-281: Add support for restoring secrets in SM
* SM-281: restoreSecret emit values as an array
* SM-281: Fix bug caused by mistake when doing merge conflict resolution
* SM-281: Clean up TrashService and move more functionality to TrashApiService
* Cleanup responses
* Merge TrashService and SecretService
* Remove tw-text-sm from dialogs
* Split delete into two components
* Change secrets table to have a single boolean for trash
* SM-281: Rename component to secret-hard-delete
* Remove unused organizationId
* Remove duplicate buttons
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* This commit implements the following main changes:
- Query elements by using a TreeWalker instead of `document.querySelector[All]`. The reason for this is that `querySelector[All]` doesn't traverse into elements with ShadowRoot.
- Recursively traverse into elements with `openOrClosedShadowRoot` or `Element.shadowRoot` (depending on browser support) inside TreeWalker loop.
- Use new query logic everywhere inside `autofill.js`. This also means we need to use filter functions to find elements with specific nodeNames and/or attributes instead of CSS selector strings.
- Add two new `instanceof Element` checks to prevent `Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'." errors`.
This change is fully backward compatible. If `openOrClosedShadowRoot` is not available it will always return undefined and we will never traverse into ShadowRoots just as the behavior was before this change.
* refactor: outsource recursive logic to accumulatingQueryDocAll
We don't want the `els` argument on the `queryDocAll` function because it's never used from outside the function itself. Thus the recursive logic is moved to `accumulatingQueryDocAll`.
Now `queryDocAll` creates an empty array and passes it to `accumulatingQueryDocAll` which recursively walks the document and all ShadowRoots and pushes all found nodes directly to the referenced array.
The decision to use a directly mutated array instead of `Array.concat(els)` or `Array.push(...els)` is for performance reasons. Pushing to the referenced array was 74% faster than using `Array.push` with spread operator and even 90% faster than using `Array.concat`.
Co-authored-by: Chad Miller <64046472+chadm-sq@users.noreply.github.com>
* refactor: extract input field relevance check into own function
Addresses CodeScene analysis violation "Bumpy Road Ahead" where conditional logic is checked for a nesting of 2 or deeper.
* refactor: use proper element attribute handling
- use el.type attribute instead of el.attribute.type on input elements. This makes sure we also get 'text' when type attribute is not explicitly specified
- use el.htmlFor attribute instead of el.attribute.for on label elements
- use `hasAttribute` and `getAttribute` methods instead of `attributes[]` which is discouraged by https://quirksmode.org/dom/core/#attributes
- improve readability of `isRelevantInputField`
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
Co-authored-by: Chad Miller <64046472+chadm-sq@users.noreply.github.com>
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
* SG-1083 - Refactor SSO form validation to work per EC requirements
* Move SSO component into its own folder for better folder management for future components in auth.
* Defect SG-1086 - Domain verification table: Change domain name from anchor tag to button + add title
* SG-1083 - Send null instead of empty string for sso identifier to avoid duplicate key in database issues.
* SG-1086 - Add button type to domain verification button to pass lint rules.
* Updated messages
* Implement method in platformUtils to get autofill command
* Updates to callout in current tab component
* Add autofill keyboard shortcut to autofill settings
* style updates
* Add routing animation for autofill settings
* Remove extra function
* Remove unnecessary safari logic
* Remove autofill settings transition added in another PR
* Fix callout still present after clicking 'Got it' (#4797)
---------
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
* Port browser styles for generated password from browser to desktop
* Tweak styles
as the overall styles seem to diverge quite a bit from those of the browser extension, so things like the border color etc aren't as nicely defined, and there's already padding happening on the outer container, making the extra padding superfluous
* Wrap generator up as a `.box` / `.box-content` construct
adds the nice consistent box styles, same as the following blocks of content
* Wrap `.box` around both password AND username generated blocks
* Remove panel-like style, add browser extension border style
* [EC-1031] focus on dialogs in vault
* [EC-1031] remove extra permissionMode
* [EC-1030] add focus to group dialog
* [EC-1031] undo extra changes
* Update apps/web/src/vault/app/vault/vault-items.component.html
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Remove ctor initialization in session sync
* Fix error message
* Prefer messaging over storage for syncing
We still need to use storage for instances where we open a popup or
worker and need to populate from a cache. However, in MV2, this is only
ever stored in a background service, ensuring that all data is stored in
from a long-lived context (mv2) or serialized to storage (mv3).
* Test new storage scheme
* add projects and secrets to dashboard
* add header title
* add section component
* only show latest projects and secrets
* reorganize view model; all view all link
* fix i18n; update table styles; add bitSortable to secrets table
* apply code reviews
* remove basePath input; add viewProjectEvent output
* fix style and merge issue
* fix route
* use absolute route with org id