nextcloud / nextcloud/passman-webextension

Browser Extensions can only login to one user at a time

Open
#359 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature request legacy-v2 needs-retriage
Dominant language
TypeScript
Stars
119
Forks
49
PR merge metrics
No merged PRs in 30d

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

I have multiple users on NextCloud using Passman, we have been creating and sharing credentials, but for business shared credentials this gets quite unwieldy. I understand there's no group vaults, so I had the bright idea of creating my own group vault by creating a shared user with a single vault and everyone just attaching and using that for the central store.

However, despite the extensions being able to load multiple accounts, they can only actually login to one at a time (whichever is first in the list), at least if they're all pointing at the same domain (I don't have another domain to try), so the multi-account thing really is only a multi-vault thing.

Steps to reproduce
  1. Create a second NextCloud User and vault
  2. Load passwords into vault
  3. Attach second user vault to browser extension alongside initial user [I use Firefox]
  4. Attempt to search credentials from both vaults in one session from browser extension OR; check the number of passwords in the database on the extension, it will have a count that matches one vault or the other
Expected behaviour

Credentials are available from both users and vaults

Actual behaviour

Only one user (and vaults) are available at a time

Server configuration

Web server: Nginx

Database: MySQL

PHP version: 8.3

Nextcloud version: 30.0.1

List of activated apps

Enabled:

  • activity: 3.0.0
  • admin_audit: 1.20.0
  • app_api: 4.0.0
  • bruteforcesettings: 3.0.0
  • calendar: 5.2.2
  • circles: 30.0.0-dev
  • cloud_federation_api: 1.13.0
  • comments: 1.20.1
  • contacts: 7.0.6
  • contactsinteraction: 1.11.0
  • dashboard: 7.10.0
  • dav: 1.31.1
  • deck: 1.14.5
  • federatedfilesharing: 1.20.0
  • federation: 1.20.0
  • files: 2.2.0
  • files_downloadlimit: 3.0.0
  • files_pdfviewer: 3.0.0
  • files_sharing: 1.22.0
  • files_trashbin: 1.20.1
  • files_versions: 1.23.0
  • firstrunwizard: 3.0.0
  • groupfolders: 18.1.2
  • logreader: 3.0.0
  • lookup_server_connector: 1.18.0
  • nextcloud_announcements: 2.0.0
  • notifications: 3.0.0
  • oauth2: 1.18.1
  • passman: 2.4.12
  • password_policy: 2.0.0
  • photos: 3.0.2
  • privacy: 2.0.0
  • provisioning_api: 1.20.0
  • recommendations: 3.0.0
  • serverinfo: 2.0.0
  • settings: 1.13.0
  • sharebymail: 1.20.0
  • support: 2.0.0
  • survey_client: 2.0.0
  • systemtags: 1.20.0
  • text: 4.1.0
  • theming: 2.5.0
  • twofactor_backupcodes: 1.19.0
  • updatenotification: 1.20.0
  • user_status: 1.10.0
  • viewer: 3.0.0
  • weather_status: 1.10.0
  • webhook_listeners: 1.1.0-dev
  • workflowengine: 2.12.0
    Disabled:
  • encryption: 2.18.0
  • files_external: 1.22.0
  • files_reminders: 1.3.0 (installed 1.2.0)
  • related_resources: 1.5.0 (installed 1.0.3)
  • suspicious_login: 8.0.0
  • twofactor_nextcloud_notification: 4.0.0
  • twofactor_totp: 12.0.0-dev
  • user_ldap: 1.21.0 (installed 1.20.0)
Nextcloud configuration

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "xxx.xxx"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "30.0.1.2",
        "overwrite.cli.url": "https:\/\/xxx.xxx",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "app_install_overwrite": [
            "user_saml"
        ],
        "mail_smtpmode": "smtp",
        "mail_smtpsecure": "tls",
        "mail_sendmailmode": "smtp",
        "mail_smtpauthtype": "LOGIN",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauth": 1,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "maintenance": false,
        "theme": "",
        "loglevel": 2
    }
}

Browser

Browser name: Firefox

Browser version: 138.01

Operating system: Windows

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files, tests, or entry points are named. Reproduce the issue in Firefox using the listed multi-user steps, then trace how the extension loads and searches credentials for accounts on one domain; done means credentials from both attached users and vaults are available in one session.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
authentication, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
40/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.