├── .eslintrc.json ├── .github ├── dependabot.yml └── workflows │ ├── appstore-build-publish.yml │ ├── dependabot-approve-merge.yml │ ├── fixup.yml │ ├── lint-eslint-when-unrelated.yml │ ├── lint-eslint.yml │ ├── lint-info-xml.yml │ ├── lint-php-cs.yml │ ├── lint-php.yml │ ├── lint-stylelint.yml │ ├── node.yml │ ├── npm-audit-fix.yml │ ├── phpunit-mysql.yml │ ├── pr-feedback.yml │ ├── psalm.yml │ ├── reuse.yml │ ├── update-nextcloud-ocp-approve-merge.yml │ └── update-nextcloud-ocp.yml ├── .gitignore ├── .l10nignore ├── .nextcloudignore ├── .php-cs-fixer.dist.php ├── .stylelintrc.cjs ├── .tx └── config ├── AUTHORS.md ├── CHANGELOG.md ├── COPYING ├── LICENSES ├── AGPL-3.0-only.txt ├── AGPL-3.0-or-later.txt ├── Apache-2.0.txt ├── CC0-1.0.txt └── MIT.txt ├── README.md ├── REUSE.toml ├── appinfo └── info.xml ├── composer.json ├── composer.lock ├── img ├── app.svg └── screenshots │ ├── settings.png │ ├── settings.png.license │ ├── users.png │ └── users.png.license ├── krankerl.toml ├── l10n ├── .gitkeep ├── ar.js ├── ar.json ├── cs.js ├── cs.json ├── da.js ├── da.json ├── de.js ├── de.json ├── de_DE.js ├── de_DE.json ├── el.js ├── el.json ├── en_GB.js ├── en_GB.json ├── es.js ├── es.json ├── eu.js ├── eu.json ├── fr.js ├── fr.json ├── ga.js ├── ga.json ├── gl.js ├── gl.json ├── nb.js ├── nb.json ├── pt_BR.js ├── pt_BR.json ├── sk.js ├── sk.json ├── sl.js ├── sl.json ├── sr.js ├── sr.json ├── tr.js ├── tr.json ├── ug.js ├── ug.json ├── zh_CN.js ├── zh_CN.json ├── zh_HK.js ├── zh_HK.json ├── zh_TW.js └── zh_TW.json ├── lib ├── AppInfo │ └── Application.php ├── Command │ └── GroupAdminsToLdap.php ├── LDAPConnect.php ├── LDAPGroupManager.php ├── LDAPUserManager.php ├── Listener │ ├── GroupBackendRegisteredListener.php │ └── UserBackendRegisteredListener.php ├── Service │ └── Configuration.php └── Settings │ └── Admin.php ├── package-lock.json ├── package.json ├── psalm.xml ├── rector.php ├── release.sh ├── src ├── components │ └── AdminSettings.vue ├── main-settings.js └── mixins │ └── i10n.js ├── templates └── settings-admin.php ├── tests ├── integration │ ├── composer.json │ ├── config │ │ └── behat.yml │ ├── features │ │ ├── bootstrap │ │ │ ├── BasicStructure.php │ │ │ ├── FeatureContext.php │ │ │ └── LDAPContext.php │ │ └── user.feature │ └── run.sh ├── psalm-baseline.xml └── stubs │ └── stub.phpstub ├── vendor-bin ├── cs-fixer │ ├── composer.json │ └── composer.lock ├── psalm │ ├── composer.json │ └── composer.lock └── rector │ ├── composer.json │ └── composer.lock └── vite.config.js /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@nextcloud" 4 | ], 5 | "globals": { 6 | "__dirname": "readonly" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | version: 2 4 | updates: 5 | - package-ecosystem: composer 6 | directory: "/" 7 | schedule: 8 | interval: weekly 9 | day: saturday 10 | time: "03:00" 11 | timezone: Europe/Paris 12 | open-pull-requests-limit: 10 13 | labels: 14 | - 3. to review 15 | - dependencies 16 | - package-ecosystem: npm 17 | directory: "/" 18 | schedule: 19 | interval: weekly 20 | day: saturday 21 | time: "03:00" 22 | timezone: Europe/Paris 23 | open-pull-requests-limit: 10 24 | ignore: 25 | - dependency-name: webpack 26 | versions: 27 | - 5.19.0 28 | - 5.21.0 29 | - 5.21.2 30 | - 5.23.0 31 | - 5.24.2 32 | - 5.24.3 33 | - 5.25.0 34 | - 5.27.0 35 | - 5.28.0 36 | - 5.30.0 37 | - 5.31.2 38 | - 5.35.1 39 | - dependency-name: css-loader 40 | versions: 41 | - 5.0.2 42 | - 5.1.0 43 | - 5.1.1 44 | - 5.1.2 45 | - 5.1.3 46 | - 5.2.0 47 | - 5.2.1 48 | - dependency-name: "@babel/core" 49 | versions: 50 | - 7.12.13 51 | - 7.12.16 52 | - 7.12.17 53 | - 7.13.10 54 | - 7.13.13 55 | - 7.13.14 56 | - 7.13.15 57 | - 7.13.8 58 | - dependency-name: "@nextcloud/vue" 59 | versions: 60 | - 3.6.0 61 | - 3.7.0 62 | - 3.7.2 63 | - 3.8.0 64 | - dependency-name: "@babel/preset-env" 65 | versions: 66 | - 7.12.13 67 | - 7.12.16 68 | - 7.12.17 69 | - 7.13.10 70 | - 7.13.12 71 | - 7.13.8 72 | - 7.13.9 73 | - dependency-name: webpack-cli 74 | versions: 75 | - 4.5.0 76 | -------------------------------------------------------------------------------- /.github/workflows/dependabot-approve-merge.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Dependabot 10 | 11 | on: 12 | pull_request_target: # zizmor: ignore[dangerous-triggers] 13 | branches: 14 | - main 15 | - master 16 | - stable* 17 | 18 | permissions: 19 | contents: read 20 | 21 | concurrency: 22 | group: dependabot-approve-merge-${{ github.head_ref || github.run_id }} 23 | cancel-in-progress: true 24 | 25 | jobs: 26 | auto-approve-merge: 27 | if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]' 28 | runs-on: ubuntu-latest-low 29 | permissions: 30 | # for hmarr/auto-approve-action to approve PRs 31 | pull-requests: write 32 | 33 | steps: 34 | - name: Disabled on forks 35 | if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} 36 | run: | 37 | echo 'Can not approve PRs from forks' 38 | exit 1 39 | 40 | # GitHub actions bot approve 41 | - uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2 42 | with: 43 | github-token: ${{ secrets.GITHUB_TOKEN }} 44 | 45 | # Nextcloud bot approve and merge request 46 | - uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2 47 | with: 48 | target: minor 49 | github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }} 50 | -------------------------------------------------------------------------------- /.github/workflows/fixup.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Block fixup and squash commits 10 | 11 | on: 12 | pull_request: 13 | types: [opened, ready_for_review, reopened, synchronize] 14 | 15 | permissions: 16 | contents: read 17 | 18 | concurrency: 19 | group: fixup-${{ github.head_ref || github.run_id }} 20 | cancel-in-progress: true 21 | 22 | jobs: 23 | commit-message-check: 24 | if: github.event.pull_request.draft == false 25 | 26 | permissions: 27 | pull-requests: write 28 | name: Block fixup and squash commits 29 | 30 | runs-on: ubuntu-latest-low 31 | 32 | steps: 33 | - name: Run check 34 | uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2 35 | with: 36 | repo-token: ${{ secrets.GITHUB_TOKEN }} 37 | -------------------------------------------------------------------------------- /.github/workflows/lint-eslint-when-unrelated.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # Use lint-eslint together with lint-eslint-when-unrelated to make eslint a required check for GitHub actions 7 | # https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks 8 | # 9 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 10 | # SPDX-License-Identifier: MIT 11 | 12 | name: Lint eslint 13 | 14 | on: 15 | pull_request: 16 | paths-ignore: 17 | - '.github/workflows/**' 18 | - 'src/**' 19 | - 'appinfo/info.xml' 20 | - 'package.json' 21 | - 'package-lock.json' 22 | - 'tsconfig.json' 23 | - '.eslintrc.*' 24 | - '.eslintignore' 25 | - '**.js' 26 | - '**.ts' 27 | - '**.vue' 28 | 29 | permissions: 30 | contents: read 31 | 32 | jobs: 33 | lint: 34 | permissions: 35 | contents: none 36 | 37 | runs-on: ubuntu-latest 38 | 39 | name: eslint 40 | 41 | steps: 42 | - run: 'echo "No eslint required"' 43 | -------------------------------------------------------------------------------- /.github/workflows/lint-eslint.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Lint eslint 10 | 11 | on: pull_request 12 | 13 | permissions: 14 | contents: read 15 | 16 | concurrency: 17 | group: lint-eslint-${{ github.head_ref || github.run_id }} 18 | cancel-in-progress: true 19 | 20 | jobs: 21 | changes: 22 | runs-on: ubuntu-latest-low 23 | permissions: 24 | contents: read 25 | pull-requests: read 26 | 27 | outputs: 28 | src: ${{ steps.changes.outputs.src}} 29 | 30 | steps: 31 | - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 32 | id: changes 33 | continue-on-error: true 34 | with: 35 | filters: | 36 | src: 37 | - '.github/workflows/**' 38 | - 'src/**' 39 | - 'appinfo/info.xml' 40 | - 'package.json' 41 | - 'package-lock.json' 42 | - 'tsconfig.json' 43 | - '.eslintrc.*' 44 | - '.eslintignore' 45 | - '**.js' 46 | - '**.ts' 47 | - '**.vue' 48 | 49 | lint: 50 | runs-on: ubuntu-latest 51 | 52 | needs: changes 53 | if: needs.changes.outputs.src != 'false' 54 | 55 | name: NPM lint 56 | 57 | steps: 58 | - name: Checkout 59 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 60 | with: 61 | persist-credentials: false 62 | 63 | - name: Read package.json node and npm engines version 64 | uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 65 | id: versions 66 | with: 67 | fallbackNode: '^20' 68 | fallbackNpm: '^10' 69 | 70 | - name: Set up node ${{ steps.versions.outputs.nodeVersion }} 71 | uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 72 | with: 73 | node-version: ${{ steps.versions.outputs.nodeVersion }} 74 | 75 | - name: Set up npm ${{ steps.versions.outputs.npmVersion }} 76 | run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' 77 | 78 | - name: Install dependencies 79 | env: 80 | CYPRESS_INSTALL_BINARY: 0 81 | PUPPETEER_SKIP_DOWNLOAD: true 82 | run: npm ci 83 | 84 | - name: Lint 85 | run: npm run lint 86 | 87 | summary: 88 | permissions: 89 | contents: none 90 | runs-on: ubuntu-latest-low 91 | needs: [changes, lint] 92 | 93 | if: always() 94 | 95 | # This is the summary, we just avoid to rename it so that branch protection rules still match 96 | name: eslint 97 | 98 | steps: 99 | - name: Summary status 100 | run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi 101 | -------------------------------------------------------------------------------- /.github/workflows/lint-info-xml.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Lint info.xml 10 | 11 | on: pull_request 12 | 13 | permissions: 14 | contents: read 15 | 16 | concurrency: 17 | group: lint-info-xml-${{ github.head_ref || github.run_id }} 18 | cancel-in-progress: true 19 | 20 | jobs: 21 | xml-linters: 22 | runs-on: ubuntu-latest-low 23 | 24 | name: info.xml lint 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 28 | with: 29 | persist-credentials: false 30 | 31 | - name: Download schema 32 | run: wget https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/api/v1/release/info.xsd 33 | 34 | - name: Lint info.xml 35 | uses: ChristophWurst/xmllint-action@36f2a302f84f8c83fceea0b9c59e1eb4a616d3c1 # v1.2 36 | with: 37 | xml-file: ./appinfo/info.xml 38 | xml-schema-file: ./info.xsd 39 | -------------------------------------------------------------------------------- /.github/workflows/lint-php-cs.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Lint php-cs 10 | 11 | on: pull_request 12 | 13 | permissions: 14 | contents: read 15 | 16 | concurrency: 17 | group: lint-php-cs-${{ github.head_ref || github.run_id }} 18 | cancel-in-progress: true 19 | 20 | jobs: 21 | lint: 22 | runs-on: ubuntu-latest 23 | 24 | name: php-cs 25 | 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 29 | with: 30 | persist-credentials: false 31 | 32 | - name: Get php version 33 | id: versions 34 | uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1 35 | 36 | - name: Set up php${{ steps.versions.outputs.php-min }} 37 | uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1 38 | with: 39 | php-version: ${{ steps.versions.outputs.php-min }} 40 | extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, ldap 41 | coverage: none 42 | ini-file: development 43 | env: 44 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 45 | 46 | - name: Install dependencies 47 | run: | 48 | composer remove nextcloud/ocp --dev 49 | composer i 50 | 51 | - name: Lint 52 | run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 ) 53 | -------------------------------------------------------------------------------- /.github/workflows/lint-php.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Lint php 10 | 11 | on: pull_request 12 | 13 | permissions: 14 | contents: read 15 | 16 | concurrency: 17 | group: lint-php-${{ github.head_ref || github.run_id }} 18 | cancel-in-progress: true 19 | 20 | jobs: 21 | matrix: 22 | runs-on: ubuntu-latest-low 23 | outputs: 24 | php-versions: ${{ steps.versions.outputs.php-versions }} 25 | steps: 26 | - name: Checkout app 27 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 28 | with: 29 | persist-credentials: false 30 | 31 | - name: Get version matrix 32 | id: versions 33 | uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0 34 | 35 | php-lint: 36 | runs-on: ubuntu-latest 37 | needs: matrix 38 | strategy: 39 | matrix: 40 | php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}} 41 | 42 | name: php-lint 43 | 44 | steps: 45 | - name: Checkout 46 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 47 | with: 48 | persist-credentials: false 49 | 50 | - name: Set up php ${{ matrix.php-versions }} 51 | uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1 52 | with: 53 | php-version: ${{ matrix.php-versions }} 54 | extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, ldap 55 | coverage: none 56 | ini-file: development 57 | env: 58 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 59 | 60 | - name: Lint 61 | run: composer run lint 62 | 63 | summary: 64 | permissions: 65 | contents: none 66 | runs-on: ubuntu-latest-low 67 | needs: php-lint 68 | 69 | if: always() 70 | 71 | name: php-lint-summary 72 | 73 | steps: 74 | - name: Summary status 75 | run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi 76 | -------------------------------------------------------------------------------- /.github/workflows/lint-stylelint.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Lint stylelint 10 | 11 | on: pull_request 12 | 13 | permissions: 14 | contents: read 15 | 16 | concurrency: 17 | group: lint-stylelint-${{ github.head_ref || github.run_id }} 18 | cancel-in-progress: true 19 | 20 | jobs: 21 | lint: 22 | runs-on: ubuntu-latest 23 | 24 | name: stylelint 25 | 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 29 | with: 30 | persist-credentials: false 31 | 32 | - name: Read package.json node and npm engines version 33 | uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 34 | id: versions 35 | with: 36 | fallbackNode: '^20' 37 | fallbackNpm: '^10' 38 | 39 | - name: Set up node ${{ steps.versions.outputs.nodeVersion }} 40 | uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 41 | with: 42 | node-version: ${{ steps.versions.outputs.nodeVersion }} 43 | 44 | - name: Set up npm ${{ steps.versions.outputs.npmVersion }} 45 | run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' 46 | 47 | - name: Install dependencies 48 | env: 49 | CYPRESS_INSTALL_BINARY: 0 50 | run: npm ci 51 | 52 | - name: Lint 53 | run: npm run stylelint 54 | -------------------------------------------------------------------------------- /.github/workflows/node.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Node 10 | 11 | on: pull_request 12 | 13 | permissions: 14 | contents: read 15 | 16 | concurrency: 17 | group: node-${{ github.head_ref || github.run_id }} 18 | cancel-in-progress: true 19 | 20 | jobs: 21 | changes: 22 | runs-on: ubuntu-latest-low 23 | permissions: 24 | contents: read 25 | pull-requests: read 26 | 27 | outputs: 28 | src: ${{ steps.changes.outputs.src}} 29 | 30 | steps: 31 | - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 32 | id: changes 33 | continue-on-error: true 34 | with: 35 | filters: | 36 | src: 37 | - '.github/workflows/**' 38 | - 'src/**' 39 | - 'appinfo/info.xml' 40 | - 'package.json' 41 | - 'package-lock.json' 42 | - 'tsconfig.json' 43 | - '**.js' 44 | - '**.ts' 45 | - '**.vue' 46 | 47 | build: 48 | runs-on: ubuntu-latest 49 | 50 | needs: changes 51 | if: needs.changes.outputs.src != 'false' 52 | 53 | name: NPM build 54 | steps: 55 | - name: Checkout 56 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 57 | with: 58 | persist-credentials: false 59 | 60 | - name: Read package.json node and npm engines version 61 | uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 62 | id: versions 63 | with: 64 | fallbackNode: '^20' 65 | fallbackNpm: '^10' 66 | 67 | - name: Set up node ${{ steps.versions.outputs.nodeVersion }} 68 | uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 69 | with: 70 | node-version: ${{ steps.versions.outputs.nodeVersion }} 71 | 72 | - name: Set up npm ${{ steps.versions.outputs.npmVersion }} 73 | run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' 74 | 75 | - name: Install dependencies & build 76 | env: 77 | CYPRESS_INSTALL_BINARY: 0 78 | PUPPETEER_SKIP_DOWNLOAD: true 79 | run: | 80 | npm ci 81 | npm run build --if-present 82 | 83 | - name: Check webpack build changes 84 | run: | 85 | bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)" 86 | 87 | - name: Show changes on failure 88 | if: failure() 89 | run: | 90 | git status 91 | git --no-pager diff 92 | exit 1 # make it red to grab attention 93 | 94 | summary: 95 | permissions: 96 | contents: none 97 | runs-on: ubuntu-latest-low 98 | needs: [changes, build] 99 | 100 | if: always() 101 | 102 | # This is the summary, we just avoid to rename it so that branch protection rules still match 103 | name: node 104 | 105 | steps: 106 | - name: Summary status 107 | run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi 108 | -------------------------------------------------------------------------------- /.github/workflows/npm-audit-fix.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Npm audit fix and compile 10 | 11 | on: 12 | workflow_dispatch: 13 | schedule: 14 | # At 2:30 on Sundays 15 | - cron: '30 2 * * 0' 16 | 17 | permissions: 18 | contents: read 19 | 20 | jobs: 21 | build: 22 | runs-on: ubuntu-latest 23 | 24 | strategy: 25 | fail-fast: false 26 | matrix: 27 | branches: ['main', 'master', 'stable31', 'stable30', 'stable29'] 28 | 29 | name: npm-audit-fix-${{ matrix.branches }} 30 | 31 | steps: 32 | - name: Checkout 33 | id: checkout 34 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 35 | with: 36 | persist-credentials: false 37 | ref: ${{ matrix.branches }} 38 | continue-on-error: true 39 | 40 | - name: Read package.json node and npm engines version 41 | uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 42 | id: versions 43 | with: 44 | fallbackNode: '^20' 45 | fallbackNpm: '^10' 46 | 47 | - name: Set up node ${{ steps.versions.outputs.nodeVersion }} 48 | uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 49 | with: 50 | node-version: ${{ steps.versions.outputs.nodeVersion }} 51 | 52 | - name: Set up npm ${{ steps.versions.outputs.npmVersion }} 53 | run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' 54 | 55 | - name: Fix npm audit 56 | id: npm-audit 57 | uses: nextcloud-libraries/npm-audit-action@2a60bd2e79cc77f2cc4d9a3fe40f1a69896f3a87 # v0.1.0 58 | 59 | - name: Run npm ci and npm run build 60 | if: steps.checkout.outcome == 'success' 61 | env: 62 | CYPRESS_INSTALL_BINARY: 0 63 | run: | 64 | npm ci 65 | npm run build --if-present 66 | 67 | - name: Create Pull Request 68 | if: steps.checkout.outcome == 'success' 69 | uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5 70 | with: 71 | token: ${{ secrets.COMMAND_BOT_PAT }} 72 | commit-message: 'fix(deps): Fix npm audit' 73 | committer: GitHub 74 | author: nextcloud-command 75 | signoff: true 76 | branch: automated/noid/${{ matrix.branches }}-fix-npm-audit 77 | title: '[${{ matrix.branches }}] Fix npm audit' 78 | body: ${{ steps.npm-audit.outputs.markdown }} 79 | labels: | 80 | dependencies 81 | 3. to review 82 | -------------------------------------------------------------------------------- /.github/workflows/pr-feedback.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | 6 | # SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-FileCopyrightText: 2023 Marcel Klehr 8 | # SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com> 9 | # SPDX-FileCopyrightText: 2023 Daniel Kesselberg 10 | # SPDX-FileCopyrightText: 2023 Florian Steffens 11 | # SPDX-License-Identifier: MIT 12 | 13 | name: 'Ask for feedback on PRs' 14 | on: 15 | schedule: 16 | - cron: '30 1 * * *' 17 | 18 | permissions: 19 | contents: read 20 | pull-requests: write 21 | 22 | jobs: 23 | pr-feedback: 24 | if: ${{ github.repository_owner == 'nextcloud' }} 25 | runs-on: ubuntu-latest 26 | steps: 27 | - name: The get-github-handles-from-website action 28 | uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1 29 | id: scrape 30 | with: 31 | website: 'https://nextcloud.com/team/' 32 | 33 | - name: Get blocklist 34 | id: blocklist 35 | run: | 36 | blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -) 37 | echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT" 38 | 39 | - uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main 40 | with: 41 | feedback-message: | 42 | Hello there, 43 | Thank you so much for taking the time and effort to create a pull request to our Nextcloud project. 44 | 45 | We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. 46 | 47 | Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 48 | 49 | Thank you for contributing to Nextcloud and we hope to hear from you soon! 50 | 51 | (If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).) 52 | days-before-feedback: 14 53 | start-date: '2024-04-30' 54 | exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}' 55 | exempt-bots: true 56 | -------------------------------------------------------------------------------- /.github/workflows/psalm.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Static analysis 10 | 11 | on: pull_request 12 | 13 | concurrency: 14 | group: psalm-${{ github.head_ref || github.run_id }} 15 | cancel-in-progress: true 16 | 17 | permissions: 18 | contents: read 19 | 20 | jobs: 21 | static-analysis: 22 | runs-on: ubuntu-latest 23 | 24 | name: static-psalm-analysis 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 28 | with: 29 | persist-credentials: false 30 | 31 | - name: Get php version 32 | id: versions 33 | uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1 34 | 35 | - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml 36 | run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml 37 | 38 | - name: Set up php${{ steps.versions.outputs.php-available }} 39 | uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1 40 | with: 41 | php-version: ${{ steps.versions.outputs.php-available }} 42 | extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, ldap 43 | coverage: none 44 | ini-file: development 45 | # Temporary workaround for missing pcntl_* in PHP 8.3 46 | ini-values: disable_functions= 47 | env: 48 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 49 | 50 | - name: Install dependencies 51 | run: | 52 | composer remove nextcloud/ocp --dev 53 | composer i 54 | 55 | - name: Install nextcloud/ocp 56 | run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies 57 | 58 | - name: Run coding standards check 59 | run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github 60 | -------------------------------------------------------------------------------- /.github/workflows/reuse.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | 6 | # SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. 7 | # 8 | # SPDX-License-Identifier: CC0-1.0 9 | 10 | name: REUSE Compliance Check 11 | 12 | on: [pull_request] 13 | 14 | permissions: 15 | contents: read 16 | 17 | jobs: 18 | reuse-compliance-check: 19 | runs-on: ubuntu-latest 20 | steps: 21 | - name: Checkout 22 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 23 | with: 24 | persist-credentials: false 25 | 26 | - name: REUSE Compliance Check 27 | uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0 28 | -------------------------------------------------------------------------------- /.github/workflows/update-nextcloud-ocp-approve-merge.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Auto approve nextcloud/ocp 10 | 11 | on: 12 | pull_request_target: # zizmor: ignore[dangerous-triggers] 13 | branches: 14 | - main 15 | - master 16 | - stable* 17 | 18 | permissions: 19 | contents: read 20 | 21 | concurrency: 22 | group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }} 23 | cancel-in-progress: true 24 | 25 | jobs: 26 | auto-approve-merge: 27 | if: github.actor == 'nextcloud-command' 28 | runs-on: ubuntu-latest-low 29 | permissions: 30 | # for hmarr/auto-approve-action to approve PRs 31 | pull-requests: write 32 | # for alexwilson/enable-github-automerge-action to approve PRs 33 | contents: write 34 | 35 | steps: 36 | - name: Disabled on forks 37 | if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} 38 | run: | 39 | echo 'Can not approve PRs from forks' 40 | exit 1 41 | 42 | - uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0 43 | id: branchname 44 | with: 45 | repo-token: ${{ secrets.GITHUB_TOKEN }} 46 | 47 | # GitHub actions bot approve 48 | - uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2 49 | if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp') 50 | with: 51 | github-token: ${{ secrets.GITHUB_TOKEN }} 52 | 53 | # Enable GitHub auto merge 54 | - name: Auto merge 55 | uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0 56 | if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp') 57 | with: 58 | github-token: ${{ secrets.GITHUB_TOKEN }} 59 | -------------------------------------------------------------------------------- /.github/workflows/update-nextcloud-ocp.yml: -------------------------------------------------------------------------------- 1 | # This workflow is provided via the organization template repository 2 | # 3 | # https://github.com/nextcloud/.github 4 | # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization 5 | # 6 | # SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors 7 | # SPDX-License-Identifier: MIT 8 | 9 | name: Update nextcloud/ocp 10 | 11 | on: 12 | workflow_dispatch: 13 | schedule: 14 | - cron: "5 2 * * 0" 15 | 16 | permissions: 17 | contents: read 18 | 19 | jobs: 20 | update-nextcloud-ocp: 21 | runs-on: ubuntu-latest 22 | 23 | strategy: 24 | fail-fast: false 25 | matrix: 26 | branches: ['main', 'master', 'stable31', 'stable30', 'stable29'] 27 | 28 | name: update-nextcloud-ocp-${{ matrix.branches }} 29 | 30 | steps: 31 | - id: checkout 32 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 33 | with: 34 | persist-credentials: false 35 | ref: ${{ matrix.branches }} 36 | submodules: true 37 | continue-on-error: true 38 | 39 | - name: Set up php8.2 40 | if: steps.checkout.outcome == 'success' 41 | uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1 42 | with: 43 | php-version: 8.2 44 | # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation 45 | extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite 46 | coverage: none 47 | env: 48 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 49 | 50 | - name: Read codeowners 51 | if: steps.checkout.outcome == 'success' 52 | id: codeowners 53 | run: | 54 | grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT 55 | continue-on-error: true 56 | 57 | - name: Composer install 58 | if: steps.checkout.outcome == 'success' 59 | run: composer install 60 | 61 | - name: Composer update nextcloud/ocp 62 | id: update_branch 63 | if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }} 64 | run: composer require --dev 'nextcloud/ocp:dev-${{ matrix.branches }}' 65 | 66 | - name: Raise on issue on failure 67 | uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0 68 | if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }} 69 | with: 70 | token: ${{ secrets.GITHUB_TOKEN }} 71 | title: 'Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}' 72 | body: 'Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}' 73 | 74 | - name: Composer update nextcloud/ocp 75 | id: update_main 76 | if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }} 77 | run: composer require --dev nextcloud/ocp:dev-master 78 | 79 | - name: Raise on issue on failure 80 | uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0 81 | if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }} 82 | with: 83 | token: ${{ secrets.GITHUB_TOKEN }} 84 | title: 'Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}' 85 | body: 'Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}' 86 | 87 | - name: Reset checkout 3rdparty 88 | if: steps.checkout.outcome == 'success' 89 | run: | 90 | git clean -f 3rdparty 91 | git checkout 3rdparty 92 | continue-on-error: true 93 | 94 | - name: Reset checkout vendor 95 | if: steps.checkout.outcome == 'success' 96 | run: | 97 | git clean -f vendor 98 | git checkout vendor 99 | continue-on-error: true 100 | 101 | - name: Reset checkout vendor-bin 102 | if: steps.checkout.outcome == 'success' 103 | run: | 104 | git clean -f vendor-bin 105 | git checkout vendor-bin 106 | continue-on-error: true 107 | 108 | - name: Create Pull Request 109 | if: steps.checkout.outcome == 'success' 110 | uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5 111 | with: 112 | token: ${{ secrets.COMMAND_BOT_PAT }} 113 | commit-message: 'chore(dev-deps): Bump nextcloud/ocp package' 114 | committer: GitHub 115 | author: nextcloud-command 116 | signoff: true 117 | branch: 'automated/noid/${{ matrix.branches }}-update-nextcloud-ocp' 118 | title: '[${{ matrix.branches }}] Update nextcloud/ocp dependency' 119 | body: | 120 | Auto-generated update of [nextcloud/ocp](https://github.com/nextcloud-deps/ocp/) dependency 121 | labels: | 122 | dependencies 123 | 3. to review 124 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | css/ 4 | js/ 5 | node_modules/ 6 | 7 | /vendor/ 8 | /build/ 9 | 10 | /tests/integration/vendor/ 11 | /tests/integration/composer.lock 12 | 13 | .php-cs-fixer.cache 14 | -------------------------------------------------------------------------------- /.l10nignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | js/ 4 | vendor/ 5 | node_modules/ 6 | -------------------------------------------------------------------------------- /.nextcloudignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | .git 4 | .github 5 | src 6 | tests 7 | node_modules 8 | .codecov.yml 9 | .drone.yml 10 | .eslintignore 11 | .eslintrc.js 12 | .github 13 | .gitignore 14 | .nextcloudignore 15 | .stylelintrc.js 16 | .travis.yml 17 | babel.config.js 18 | composer.json 19 | composer.lock 20 | krankerl.toml 21 | package.json 22 | package-lock.json 23 | README.md 24 | webpack.js 25 | img/screenshots 26 | psalm.xml 27 | -------------------------------------------------------------------------------- /.php-cs-fixer.dist.php: -------------------------------------------------------------------------------- 1 | getFinder() 15 | ->notPath('build') 16 | ->notPath('l10n') 17 | ->notPath('src') 18 | ->notPath('vendor') 19 | ->notPath('node_modules') 20 | ->in(__DIR__); 21 | return $config; 22 | -------------------------------------------------------------------------------- /.stylelintrc.cjs: -------------------------------------------------------------------------------- 1 | /** 2 | * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors 3 | * SPDX-License-Identifier: AGPL-3.0-or-later 4 | */ 5 | 6 | const stylelintConfig = require('@nextcloud/stylelint-config') 7 | 8 | module.exports = stylelintConfig -------------------------------------------------------------------------------- /.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | lang_map = hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs, fi_FI: fi 4 | 5 | [o:nextcloud:p:nextcloud:r:ldap_write_support] 6 | file_filter = translationfiles//ldap_write_support.po 7 | source_file = translationfiles/templates/ldap_write_support.pot 8 | source_lang = en 9 | type = PO 10 | 11 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | 5 | # Authors 6 | 7 | - Alan Tygel 8 | - Alban Bedel 9 | - André Luís Monteiro 10 | - Andy Scherzinger 11 | - Arthur Schiwon 12 | - Christoph Wurst 13 | - Côme Chilliet 14 | - Daniel Calviño Sánchez 15 | - Daniel Klaffenbach 16 | - Ferdinand Thiessen 17 | - Filis Futsarov 18 | - Gary Kim 19 | - Joas Schilling 20 | - John Molakvoæ 21 | - Julius Härtl 22 | - Lukas Reschke 23 | - Morris Jobke 24 | - Pytal <24800714+Pytal@users.noreply.github.com> 25 | - rakekniven <2069590+rakekniven@users.noreply.github.com> 26 | - Robin Appelman 27 | - Roeland Jago Douma 28 | - Sergio Bertolin 29 | - Thomas Müller 30 | - Sascha Wiswedel 31 | - Vincent Petry 32 | - Vinicius Brand 33 | - vivacarvajalito 34 | - EITA Cooperative 35 | - Nextcloud GmbH 36 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 5 | # 1.12.0 - 20 Aug 2024 6 | 7 | - Support for Nextcloud 30 8 | 9 | # 1.11.0 - 07 Mar 2024 10 | 11 | - Support Nextcloud 29 12 | - Migrated to vite 13 | 14 | # 1.10.0 - 19 Dec 2023 15 | 16 | Compatibility with Nextcloud 28 17 | 18 | # 1.9.0 - 15 May 2023 19 | 20 | Compatibility with Nextcloud 27 21 | 22 | # 1.8.0 - 20 Apr 2023 23 | 24 | - Nextcloud 26 support 25 | 26 | # 1.7.0 - 02 Nov 2022 27 | 28 | * Nextcloud 25 support 29 | * Use LDAP passwd exop to set password of new users nextcloud/ldap_write_support#503 30 | * Modernize javascript code nextcloud/ldap_write_support#519 31 | * supply uri to ldap_connect nextcloud/ldap_write_support#524 32 | * PHP 8.1 support nextcloud/ldap_write_support#517 33 | 34 | # 1.6.0 - 02 Nov 2022 35 | 36 | * Nextcloud 24 support 37 | * Modernize javascript code [#520](https://github.com/nextcloud/ldap_write_support/issues/520) 38 | * supply uri to ldap_connect [#525](https://github.com/nextcloud/ldap_write_support/issues/525) 39 | * PHP 8.1 support [#518](https://github.com/nextcloud/ldap_write_support/issues/518) 40 | 41 | # 1.4.0 - 15 Jul 2021 42 | 43 | https://github.com/nextcloud-releases/ldap_write_support/releases/tag/v1.4.0 44 | 45 | # 1.3.0 - 29 Jan 2021 46 | 47 | * Nextcloud 21 support 48 | 49 | # 1.2.1 - 29 Jan 2021 50 | 51 | * dependency updates 52 | 53 | # 1.2.0 - 13 Nov 2020 54 | 55 | * [ldap_write_support#144](https://github.com/nextcloud/ldap_write_support/pull/144) Fix account creation with the registration app 56 | * [ldap_write_support#146](https://github.com/nextcloud/ldap_write_support/pull/146) Fix new account template 57 | * [ldap_write_support#165](https://github.com/nextcloud/ldap_write_support/pull/165) Update tests and bump max version 58 | * [ldap_write_support#178](https://github.com/nextcloud/ldap_write_support/pull/178) Do not use custom DI object names for user_ldap 59 | * [ldap_write_support#189](https://github.com/nextcloud/ldap_write_support/pull/189) Update LDAPUserManager.php error in split with ':' 60 | * [ldap_write_support#190](https://github.com/nextcloud/ldap_write_support/pull/190) Do not trigger loading of user_ldap if it is alreay loaded 61 | * [ldap_write_support#205](https://github.com/nextcloud/ldap_write_support/pull/205) Implements ibootstrap and cleans up code 62 | * [ldap_write_support#234](https://github.com/nextcloud/ldap_write_support/pull/234) Works around calling occ issue on integration tests by relying on APi 63 | * depndency updates 64 | 65 | # 1.1.0 - 17 Jan 2020 66 | 67 | ## Added 68 | 69 | * Nextcloud 18 compatibility 70 | 71 | ## Changed 72 | 73 | * ensure app is instantiated just once [#72](https://github.com/nextcloud/ldap_write_support/issues/72) 74 | * updated dependencies 75 | 76 | # 1.0.2 - 19 Jul 2019 77 | 78 | ## Added 79 | 80 | * use password exop (for NC 16) when it makes sense [#27](https://github.com/nextcloud/ldap_write_support/issues/27) 81 | 82 | ## Fixed 83 | 84 | * does not execute any group actions when they are disabled by backend [#28](https://github.com/nextcloud/ldap_write_support/issues/28) 85 | 86 | # 1.0.1 - 28 Jun 2019 87 | 88 | ## Fixes 89 | 90 | * do not log success as error, fixes [#3](https://github.com/nextcloud/ldap_write_support/issues/3) 91 | * clear error message when acting admin is not from LDAP despite requirement 92 | * fallback to the general base if user or group base was not set. Fixes [#4](https://github.com/nextcloud/ldap_write_support/issues/4) 93 | 94 | # 1.0.0 - 27 Jun 2019 95 | 96 | * Initial release 97 | -------------------------------------------------------------------------------- /LICENSES/MIT.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 6 | # 👥🖎 LDAP Write Support 7 | 8 | [![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/ldap_write_support)](https://api.reuse.software/info/github.com/nextcloud/ldap_write_support) 9 | 10 | Manage your LDAP directory from within Nextcloud. 11 | 12 | ![](img/screenshots/settings.png) 13 | 14 | * 📇 **Create records:** add new users and groups 15 | * 📛 **Update details:** display name, email address and avatars 16 | * ⚙️ **Integrated**: works in the known Nextcloud users page 17 | * 📜 **Templates** configure an LDAP user template LDIF once 18 | 19 | ## Installation 20 | 21 | This app requires the LDAP backend being enabled and configured, since it is a plugin to it. Find it on the app store! 22 | 23 | ## Beware of the dog 24 | 25 | * Due to the internal workings of Nextcloud in provisioning users and groups, the user has to meet the LDAP filter criteria upon creation. At this point of time only the username and password are known. 26 | * When creating groups, and empty record of `groupOfNames` is created. 27 | 28 | ## 🏗 Development setup 29 | 30 | 1. ☁ Clone this app into the `apps` folder of your Nextcloud: `git clone https://github.com/nextcloud/ldap_write_support.git` 31 | 2. 👩‍💻 In the folder of the app, run the command `npm i` to install dependencies and `npm run build` to build the Javascript 32 | 3. ✅ Enable the app through the app management of your Nextcloud 33 | 4. 🎉 Partytime! Help fix [some issues](https://github.com/nextcloud/ldap_write_support/issues) and [review pull requests](https://github.com/nextcloud/ldap_write_support/pulls) 👍 34 | -------------------------------------------------------------------------------- /REUSE.toml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | version = 1 4 | SPDX-PackageName = "ldap_write_support" 5 | SPDX-PackageSupplier = "Nextcloud " 6 | SPDX-PackageDownloadLocation = "https://github.com/nextcloud/ldap_write_support" 7 | 8 | [[annotations]] 9 | path = ["l10n/**.js", "l10n/**.json"] 10 | precedence = "aggregate" 11 | SPDX-FileCopyrightText = "2018 Nextcloud translators" 12 | SPDX-License-Identifier = "AGPL-3.0-or-later" 13 | 14 | [[annotations]] 15 | path = ["composer.json", "composer.lock", "package-lock.json", "package.json", "tests/integration/composer.json"] 16 | precedence = "aggregate" 17 | SPDX-FileCopyrightText = "2019 Nextcloud translators" 18 | SPDX-License-Identifier = "AGPL-3.0-or-later" 19 | 20 | [[annotations]] 21 | path = [".tx/config", ".eslintrc.json", "vendor-bin/cs-fixer/composer.json", "vendor-bin/cs-fixer/composer.lock", "vendor-bin/psalm/composer.json", "vendor-bin/psalm/composer.lock", "vendor-bin/rector/composer.json", "vendor-bin/rector/composer.lock"] 22 | precedence = "aggregate" 23 | SPDX-FileCopyrightText = "2024 Nextcloud GmbH and Nextcloud contributors" 24 | SPDX-License-Identifier = "AGPL-3.0-or-later" 25 | 26 | [[annotations]] 27 | path = "img/app.svg" 28 | precedence = "aggregate" 29 | SPDX-FileCopyrightText = "2018-2024 Google LLC" 30 | SPDX-License-Identifier = "Apache-2.0" 31 | -------------------------------------------------------------------------------- /appinfo/info.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 9 | ldap_write_support 10 | Write support for LDAP 11 | Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud 12 | 19 | 1.14.0 20 | agpl 21 | Alan Freihof Tygel 22 | Arthur Schiwon 23 | LdapWriteSupport 24 | integration 25 | organization 26 | tools 27 | https://github.com/nextcloud/ldap_write_support/issues 28 | https://github.com/nextcloud/ldap_write_support 29 | https://raw.githubusercontent.com/nextcloud/ldap_write_support/master/img/screenshots/settings.png 30 | https://raw.githubusercontent.com/nextcloud/ldap_write_support/master/img/screenshots/users.png 31 | 32 | ldap 33 | 34 | 35 | 36 | OCA\LdapWriteSupport\Command\GroupAdminsToLdap 37 | 38 | 39 | OCA\LdapWriteSupport\Settings\Admin 40 | 41 | 42 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextcloud/ldap_write_support", 3 | "type": "project", 4 | "require-dev": { 5 | "nextcloud/ocp": "dev-master", 6 | "bamarni/composer-bin-plugin": "^1.8" 7 | }, 8 | "scripts": { 9 | "post-install-cmd": [ 10 | "[ $COMPOSER_DEV_MODE -eq 0 ] || composer bin all install --ansi" 11 | ], 12 | "post-update-cmd": [ 13 | "[ $COMPOSER_DEV_MODE -eq 0 ] || composer bin all update --ansi" 14 | ], 15 | "cs:fix": "php-cs-fixer fix", 16 | "cs:check": "php-cs-fixer fix --dry-run --diff", 17 | "lint": "find . -name \\*.php -not -path './vendor/*' -not -path './build/*' -not -path './node_modules/*' -print0 | xargs -0 -n1 php -l", 18 | "psalm": "psalm", 19 | "psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType", 20 | "psalm:update-baseline": "psalm --threads=1 --update-baseline", 21 | "test:integration": "cd tests/integration && ./run.sh" 22 | }, 23 | "license": "AGPLv3", 24 | "authors": [ 25 | { 26 | "name": "Arthur Schiwon", 27 | "email": "blizzz@arthur-schiwon.de" 28 | } 29 | ], 30 | "config": { 31 | "platform": { 32 | "php": "8.1" 33 | }, 34 | "allow-plugins": { 35 | "bamarni/composer-bin-plugin": true 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /img/app.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/screenshots/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nextcloud/ldap_write_support/e00dcf0980733e81c4ce7d1883fcb74b2b8eca22/img/screenshots/settings.png -------------------------------------------------------------------------------- /img/screenshots/settings.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | -------------------------------------------------------------------------------- /img/screenshots/users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nextcloud/ldap_write_support/e00dcf0980733e81c4ce7d1883fcb74b2b8eca22/img/screenshots/users.png -------------------------------------------------------------------------------- /img/screenshots/users.png.license: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | -------------------------------------------------------------------------------- /krankerl.toml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors 2 | # SPDX-License-Identifier: AGPL-3.0-or-later 3 | [package] 4 | before_cmds = [ 5 | "npm ci", 6 | "npm run build" 7 | ] 8 | -------------------------------------------------------------------------------- /l10n/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nextcloud/ldap_write_support/e00dcf0980733e81c4ce7d1883fcb74b2b8eca22/l10n/.gitkeep -------------------------------------------------------------------------------- /l10n/ar.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "تعذّر إيجاد مدخل LDAP المطلوب", 5 | "DisplayName change rejected" : "تمّ رفض تغيير اسم العرض", 6 | "Write support for LDAP" : "دعم الكتابة إلى LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "إضافة دعم إنشاء، و جلب، و حذف المستخدمين و المجموعات من LDAP عبر نكست كلاود", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "يعمل دعم الكتابة لـ LDAP على إثراء واجهة LDAP الخلفية بإمكانيات إدارة الدليل من نكست كلاود مثل: \n* إنشاء وتحرير وحذف المستخدمين \n* إنشاء وتعديل العضويات وحذف المجموعات \n* منع الرجوع إلى الواجهة الخلفية لقاعدة البيانات المحلية (اختياري) \n* إنشاء مُعرِّف المستخدم ID تلقائيًا (اختياري) \n* والمزيد ...", 9 | "Failed to set user template." : "تعذّر تعيين قالب المستخدِم", 10 | "Failed to set switch." : "تعذّر تعيين التبديل.", 11 | "Writing" : "الكتابة", 12 | "Switches" : "تبديلات", 13 | "Prevent fallback to other backends when creating users or groups." : "منع الرجوع إلى الواجهات الخلفية الأخرى عند إنشاء مستخدمين أو مجموعات.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "لإنشاء مستخدمين، يجب توفير المدير (أو المشرف الفرعي) بواسطة LDAP", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "يجب إنشاء معرف مستخدم عشوائي، أي لا يتم توفيره بواسطة المدير (أو المدير الفرعي).", 16 | "An LDAP user must have an email address set." : "كل مستخدم في LDAP، يجب أن يكون له عنوان بريد إلكتروني.", 17 | "Allow users to set their avatar" : "السماح لكل مستخدم بتعيين صورة الملف الشخصي الرمزية الخاصة به", 18 | "Allow users to set their password" : "تمكين المستخدِمين من تعيين كلمات مرورهم", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "إذا كان الخادم لا يدعم عملية تعديل كلمة المرور الموسعة، فاستعمل `unicodePwd` بدلاً عن سِمة `userPassword` لتعيين كلمة المرور", 20 | "Use the `unicodePwd` attribute for setting the user password" : "استعمل السِّمة `unicodePwd` لتعيين كلمة مرور المستخدِم", 21 | "User template" : "قالب المستخدِم", 22 | "LDIF template for creating users. Following placeholders may be used" : "قالب LDIF لإنشاء المستخدمين. يمكن استخدام العناصر النائبة placeholders التالية", 23 | "the user id provided by the (sub)admin" : "مُعرِّف المستخدم المُعطى من قِبَل المدير (أو المدير الفرعي).", 24 | "the password provided by the (sub)admin" : "كلمة المرور المعطاة من قِبَل المدير (أو المدير الفرعي)", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "خلية LDAP node الخاصة بالمدير(أو المدير الفرعي) أو قاعدة المستخدمين user base التي تم تكوينها" 26 | }, 27 | "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); 28 | -------------------------------------------------------------------------------- /l10n/ar.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "تعذّر إيجاد مدخل LDAP المطلوب", 3 | "DisplayName change rejected" : "تمّ رفض تغيير اسم العرض", 4 | "Write support for LDAP" : "دعم الكتابة إلى LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "إضافة دعم إنشاء، و جلب، و حذف المستخدمين و المجموعات من LDAP عبر نكست كلاود", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "يعمل دعم الكتابة لـ LDAP على إثراء واجهة LDAP الخلفية بإمكانيات إدارة الدليل من نكست كلاود مثل: \n* إنشاء وتحرير وحذف المستخدمين \n* إنشاء وتعديل العضويات وحذف المجموعات \n* منع الرجوع إلى الواجهة الخلفية لقاعدة البيانات المحلية (اختياري) \n* إنشاء مُعرِّف المستخدم ID تلقائيًا (اختياري) \n* والمزيد ...", 7 | "Failed to set user template." : "تعذّر تعيين قالب المستخدِم", 8 | "Failed to set switch." : "تعذّر تعيين التبديل.", 9 | "Writing" : "الكتابة", 10 | "Switches" : "تبديلات", 11 | "Prevent fallback to other backends when creating users or groups." : "منع الرجوع إلى الواجهات الخلفية الأخرى عند إنشاء مستخدمين أو مجموعات.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "لإنشاء مستخدمين، يجب توفير المدير (أو المشرف الفرعي) بواسطة LDAP", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "يجب إنشاء معرف مستخدم عشوائي، أي لا يتم توفيره بواسطة المدير (أو المدير الفرعي).", 14 | "An LDAP user must have an email address set." : "كل مستخدم في LDAP، يجب أن يكون له عنوان بريد إلكتروني.", 15 | "Allow users to set their avatar" : "السماح لكل مستخدم بتعيين صورة الملف الشخصي الرمزية الخاصة به", 16 | "Allow users to set their password" : "تمكين المستخدِمين من تعيين كلمات مرورهم", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "إذا كان الخادم لا يدعم عملية تعديل كلمة المرور الموسعة، فاستعمل `unicodePwd` بدلاً عن سِمة `userPassword` لتعيين كلمة المرور", 18 | "Use the `unicodePwd` attribute for setting the user password" : "استعمل السِّمة `unicodePwd` لتعيين كلمة مرور المستخدِم", 19 | "User template" : "قالب المستخدِم", 20 | "LDIF template for creating users. Following placeholders may be used" : "قالب LDIF لإنشاء المستخدمين. يمكن استخدام العناصر النائبة placeholders التالية", 21 | "the user id provided by the (sub)admin" : "مُعرِّف المستخدم المُعطى من قِبَل المدير (أو المدير الفرعي).", 22 | "the password provided by the (sub)admin" : "كلمة المرور المعطاة من قِبَل المدير (أو المدير الفرعي)", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "خلية LDAP node الخاصة بالمدير(أو المدير الفرعي) أو قاعدة المستخدمين user base التي تم تكوينها" 24 | },"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" 25 | } -------------------------------------------------------------------------------- /l10n/cs.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Nepodařilo se najít související LDAP položku", 5 | "DisplayName change rejected" : "Změna DisplayName zamítnuta", 6 | "Write support for LDAP" : "Podpora pro zápis do LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Přidává podporu pro vytváření, manipulaci s a mazání uživatelů a skupin v LDAP z Nextcloud", 8 | "Failed to set user template." : "Nepodařilo se nastavit šablonu uživatele.", 9 | "Failed to set switch." : "Nepodařilo se nastavit přepínač.", 10 | "Writing" : "Zapisování", 11 | "Switches" : "Přepínače", 12 | "Prevent fallback to other backends when creating users or groups." : "Při vytváření uživatelů nebo skupin bránit náhradnímu zpracování ostatními podpůrnými vrstvami.", 13 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Aby bylo možné vytvářet uživatele, je třeba, aby LDAP poskytovalo příslušného (dílčího) správce.", 14 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Je třeba vytvořit náhodný identifikátor uživatele, tj. aby nebyl poskytnut (dílčím) správcem.", 15 | "An LDAP user must have an email address set." : "Je třeba, aby uživatel z LDAP měl zadanou e-mailovou adresu.", 16 | "Allow users to set their avatar" : "Umožnit uživatelům nastavit svůj zástupný obrázek", 17 | "Allow users to set their password" : "Umožnit uživatelů nastavit si své heslo", 18 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Pokud server nepodporuje rozšířenou operaci změny hesla, použijte pro nastavení hesla `unicodePwd` namísto `userPassword`", 19 | "Use the `unicodePwd` attribute for setting the user password" : "Pro nastavení hesla uživatele použít atribut `unicodePwd`", 20 | "User template" : "Šablona uživatele", 21 | "LDIF template for creating users. Following placeholders may be used" : "LDIF šablona pro vytváření uživatelů. Je možné použít následující zástupná vyjádření", 22 | "the user id provided by the (sub)admin" : "identif. uživatele poskytnutý (dílčím) správcem", 23 | "the password provided by the (sub)admin" : "heslo poskytnuté (dílčím) správcem", 24 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP uzel příslušného (dílčího) správce nebo nastavená uživatelská základna" 25 | }, 26 | "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); 27 | -------------------------------------------------------------------------------- /l10n/cs.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Nepodařilo se najít související LDAP položku", 3 | "DisplayName change rejected" : "Změna DisplayName zamítnuta", 4 | "Write support for LDAP" : "Podpora pro zápis do LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Přidává podporu pro vytváření, manipulaci s a mazání uživatelů a skupin v LDAP z Nextcloud", 6 | "Failed to set user template." : "Nepodařilo se nastavit šablonu uživatele.", 7 | "Failed to set switch." : "Nepodařilo se nastavit přepínač.", 8 | "Writing" : "Zapisování", 9 | "Switches" : "Přepínače", 10 | "Prevent fallback to other backends when creating users or groups." : "Při vytváření uživatelů nebo skupin bránit náhradnímu zpracování ostatními podpůrnými vrstvami.", 11 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Aby bylo možné vytvářet uživatele, je třeba, aby LDAP poskytovalo příslušného (dílčího) správce.", 12 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Je třeba vytvořit náhodný identifikátor uživatele, tj. aby nebyl poskytnut (dílčím) správcem.", 13 | "An LDAP user must have an email address set." : "Je třeba, aby uživatel z LDAP měl zadanou e-mailovou adresu.", 14 | "Allow users to set their avatar" : "Umožnit uživatelům nastavit svůj zástupný obrázek", 15 | "Allow users to set their password" : "Umožnit uživatelů nastavit si své heslo", 16 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Pokud server nepodporuje rozšířenou operaci změny hesla, použijte pro nastavení hesla `unicodePwd` namísto `userPassword`", 17 | "Use the `unicodePwd` attribute for setting the user password" : "Pro nastavení hesla uživatele použít atribut `unicodePwd`", 18 | "User template" : "Šablona uživatele", 19 | "LDIF template for creating users. Following placeholders may be used" : "LDIF šablona pro vytváření uživatelů. Je možné použít následující zástupná vyjádření", 20 | "the user id provided by the (sub)admin" : "identif. uživatele poskytnutý (dílčím) správcem", 21 | "the password provided by the (sub)admin" : "heslo poskytnuté (dílčím) správcem", 22 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP uzel příslušného (dílčího) správce nebo nastavená uživatelská základna" 23 | },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" 24 | } -------------------------------------------------------------------------------- /l10n/da.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Kunne ikke finde relateret LDAP-post", 5 | "DisplayName change rejected" : "Ændring af displaynavn blev afvist", 6 | "Write support for LDAP" : "Skriv support til LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Tilføjer understøttelse til at oprette, manipulere og slette brugere og grupper på LDAP via Nextcloud", 8 | "Failed to set user template." : "Kunne ikke indstille brugerskabelon.", 9 | "Failed to set switch." : "Kunne ikke indstille switch.", 10 | "Writing" : "Skriver", 11 | "Switches" : "Switches", 12 | "Prevent fallback to other backends when creating users or groups." : "Undgå fallbacks til andre backends, når du opretter brugere eller grupper.", 13 | "To create users, the acting (sub)admin has to be provided by LDAP." : "For at oprette brugere skal den fungerende (under) administrator stilles til rådighed af LDAP.", 14 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Der skal genereres et tilfældigt bruger-id, det vil sige, at det ikke er leveret af (under) administratoren.", 15 | "An LDAP user must have an email address set." : "En LDAP-bruger skal have en e-mailadresse indstillet.", 16 | "Allow users to set their avatar" : "Tillad brugere at indstille deres avatar", 17 | "User template" : "Bruger skabelon", 18 | "LDIF template for creating users. Following placeholders may be used" : "LDIF skabelon til oprettelse af brugere. Følgende pladsholdere kan bruges", 19 | "the user id provided by the (sub)admin" : "det bruger-id, der er angivet af (under) administratoren", 20 | "the password provided by the (sub)admin" : "adgangskoden leveret af (under) administratoren", 21 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP-noden for den fungerende (under) administrator eller den konfigurerede brugerbase" 22 | }, 23 | "nplurals=2; plural=(n != 1);"); 24 | -------------------------------------------------------------------------------- /l10n/da.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Kunne ikke finde relateret LDAP-post", 3 | "DisplayName change rejected" : "Ændring af displaynavn blev afvist", 4 | "Write support for LDAP" : "Skriv support til LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Tilføjer understøttelse til at oprette, manipulere og slette brugere og grupper på LDAP via Nextcloud", 6 | "Failed to set user template." : "Kunne ikke indstille brugerskabelon.", 7 | "Failed to set switch." : "Kunne ikke indstille switch.", 8 | "Writing" : "Skriver", 9 | "Switches" : "Switches", 10 | "Prevent fallback to other backends when creating users or groups." : "Undgå fallbacks til andre backends, når du opretter brugere eller grupper.", 11 | "To create users, the acting (sub)admin has to be provided by LDAP." : "For at oprette brugere skal den fungerende (under) administrator stilles til rådighed af LDAP.", 12 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Der skal genereres et tilfældigt bruger-id, det vil sige, at det ikke er leveret af (under) administratoren.", 13 | "An LDAP user must have an email address set." : "En LDAP-bruger skal have en e-mailadresse indstillet.", 14 | "Allow users to set their avatar" : "Tillad brugere at indstille deres avatar", 15 | "User template" : "Bruger skabelon", 16 | "LDIF template for creating users. Following placeholders may be used" : "LDIF skabelon til oprettelse af brugere. Følgende pladsholdere kan bruges", 17 | "the user id provided by the (sub)admin" : "det bruger-id, der er angivet af (under) administratoren", 18 | "the password provided by the (sub)admin" : "adgangskoden leveret af (under) administratoren", 19 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP-noden for den fungerende (under) administrator eller den konfigurerede brugerbase" 20 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 21 | } -------------------------------------------------------------------------------- /l10n/de.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Zugehöriger LDAP-Eintrag wurde nicht gefunden", 5 | "DisplayName change rejected" : "Änderung des Anzeigenamens abgelehnt", 6 | "Write support for LDAP" : "Schreibunterstützung für LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Fügt Unterstützung für das Erstellen, Bearbeiten und Löschen von Benutzern und Gruppen auf LDAP über Nextcloud hinzu", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Die Schreibunterstützung für LDAP erweitert das LDAP-Backend um Funktionen zur Verwaltung des Verzeichnisses von Nextcloud aus.\n* Benutzer erstellen, bearbeiten und löschen\n* Mitgliedschaften erstellen, ändern und Gruppen löschen\n* Fallback auf das lokale Datenbank-Backend verhindern (optional)\n* Automatisch eine Benutzer-ID generieren (optional)\n* und weitere Verhaltensschalter", 9 | "Failed to set user template." : "Benutzervorlage konnte nicht festgelegt werden.", 10 | "Failed to set switch." : "Schalter konnte gesetzt werden.", 11 | "Writing" : "Schreiben", 12 | "Switches" : "Schalter", 13 | "Prevent fallback to other backends when creating users or groups." : "Beim Erstellen von Konten oder Gruppen den Rückgriff auf andere Backends verhindern.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Um Benutzer anzulegen, muss die amtierende (Sub-)Administration über LDAP bereitgestellt werden.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Es muss eine zufällige Konto-ID generiert werden, d. h. sie darf nicht von der (Sub-)Administration bereitgestellt werden.", 16 | "An LDAP user must have an email address set." : "Für ein LDAP-Konto muss eine E-Mail-Adresse eingerichtet sein.", 17 | "Allow users to set their avatar" : "Personen können ihren Avatar festlegen", 18 | "Allow users to set their password" : "Personen können ihr Passwort selbst festlegen", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Wenn der Server den erweiterten Vorgang \"Passwort ändern\" nicht unterstützt, verwende zum Festlegen des Passworts das Attribut `unicodePwd` anstelle des Attributs `userPassword`.", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Attribut `unicodePwd` verwenden, um das Kontenkennwort festzulegen", 21 | "User template" : "Benutzervorlage", 22 | "LDIF template for creating users. Following placeholders may be used" : "LDIF-Vorlage für die Erstellung von Konten. Folgende Platzhalter können verwendet werden", 23 | "the user id provided by the (sub)admin" : "die von der (Sub-)Administration bereitgestellte Konto-ID", 24 | "the password provided by the (sub)admin" : "das von der (Sub-)Administration bereitgestellte Passwort", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "der LDAP-Knoten der amtierenden (Sub-)Administration oder der konfigurierten Benutzerbasis" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/de.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Zugehöriger LDAP-Eintrag wurde nicht gefunden", 3 | "DisplayName change rejected" : "Änderung des Anzeigenamens abgelehnt", 4 | "Write support for LDAP" : "Schreibunterstützung für LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Fügt Unterstützung für das Erstellen, Bearbeiten und Löschen von Benutzern und Gruppen auf LDAP über Nextcloud hinzu", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Die Schreibunterstützung für LDAP erweitert das LDAP-Backend um Funktionen zur Verwaltung des Verzeichnisses von Nextcloud aus.\n* Benutzer erstellen, bearbeiten und löschen\n* Mitgliedschaften erstellen, ändern und Gruppen löschen\n* Fallback auf das lokale Datenbank-Backend verhindern (optional)\n* Automatisch eine Benutzer-ID generieren (optional)\n* und weitere Verhaltensschalter", 7 | "Failed to set user template." : "Benutzervorlage konnte nicht festgelegt werden.", 8 | "Failed to set switch." : "Schalter konnte gesetzt werden.", 9 | "Writing" : "Schreiben", 10 | "Switches" : "Schalter", 11 | "Prevent fallback to other backends when creating users or groups." : "Beim Erstellen von Konten oder Gruppen den Rückgriff auf andere Backends verhindern.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Um Benutzer anzulegen, muss die amtierende (Sub-)Administration über LDAP bereitgestellt werden.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Es muss eine zufällige Konto-ID generiert werden, d. h. sie darf nicht von der (Sub-)Administration bereitgestellt werden.", 14 | "An LDAP user must have an email address set." : "Für ein LDAP-Konto muss eine E-Mail-Adresse eingerichtet sein.", 15 | "Allow users to set their avatar" : "Personen können ihren Avatar festlegen", 16 | "Allow users to set their password" : "Personen können ihr Passwort selbst festlegen", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Wenn der Server den erweiterten Vorgang \"Passwort ändern\" nicht unterstützt, verwende zum Festlegen des Passworts das Attribut `unicodePwd` anstelle des Attributs `userPassword`.", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Attribut `unicodePwd` verwenden, um das Kontenkennwort festzulegen", 19 | "User template" : "Benutzervorlage", 20 | "LDIF template for creating users. Following placeholders may be used" : "LDIF-Vorlage für die Erstellung von Konten. Folgende Platzhalter können verwendet werden", 21 | "the user id provided by the (sub)admin" : "die von der (Sub-)Administration bereitgestellte Konto-ID", 22 | "the password provided by the (sub)admin" : "das von der (Sub-)Administration bereitgestellte Passwort", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "der LDAP-Knoten der amtierenden (Sub-)Administration oder der konfigurierten Benutzerbasis" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/de_DE.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Zugehöriger LDAP-Eintrag wurde nicht gefunden", 5 | "DisplayName change rejected" : "Änderung des Anzeigenamens abgelehnt", 6 | "Write support for LDAP" : "Schreibunterstützung für LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Fügt Unterstützung für das Erstellen, Bearbeiten und Löschen von Benutzern und Gruppen auf LDAP über Nextcloud hinzu", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Die Schreibunterstützung für LDAP erweitert das LDAP-Backend um Funktionen zur Verwaltung des Verzeichnisses von Nextcloud aus.\n* Benutzer erstellen, bearbeiten und löschen\n* Mitgliedschaften erstellen, ändern und Gruppen löschen\n* Fallback auf das lokale Datenbank-Backend verhindern (optional)\n* Automatisch eine Benutzer-ID generieren (optional)\n* und weitere Verhaltensschalter", 9 | "Failed to set user template." : "Benutzervorlage konnte nicht festgelegt werden.", 10 | "Failed to set switch." : "Schalter konnte gesetzt werden.", 11 | "Writing" : "Schreiben", 12 | "Switches" : "Schalter", 13 | "Prevent fallback to other backends when creating users or groups." : "Beim Erstellen von Benutzern oder Gruppen den Rückgriff auf andere Backends verhindern.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Um Benutzer anzulegen, muss der amtierende (Sub-)Administrator über LDAP bereitgestellt werden.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Es muss eine zufällige Benutzer-ID generiert werden, d. h. sie darf nicht vom (Sub-)Administrator bereitgestellt werden.", 16 | "An LDAP user must have an email address set." : "Für einen LDAP-Benutzer muss eine E-Mail-Adresse eingerichtet sein.", 17 | "Allow users to set their avatar" : "Benutzer können ihren Avatar festlegen", 18 | "Allow users to set their password" : "Benutzer können ihr Passwort selbst festlegen", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Wenn der Server den erweiterten Vorgang \"Passwort ändern\" nicht unterstützt, verwenden Sie zum Festlegen des Passworts das Attribut `unicodePwd` anstelle des Attributs `userPassword`.", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Attribut `unicodePwd` verwenden, um das Benutzerkennwort festzulegen", 21 | "User template" : "Benutzervorlage", 22 | "LDIF template for creating users. Following placeholders may be used" : "LDIF-Vorlage für die Erstellung von Benutzern. Folgende Platzhalter können verwendet werden", 23 | "the user id provided by the (sub)admin" : "die vom (Sub-)Administrator bereitgestellte Benutzer-ID", 24 | "the password provided by the (sub)admin" : "das vom (Sub-)Administrator bereitgestellte Passwort", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "der LDAP-Knoten des amtierenden (Sub-)Administrators oder der konfigurierten Benutzerbasis" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/de_DE.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Zugehöriger LDAP-Eintrag wurde nicht gefunden", 3 | "DisplayName change rejected" : "Änderung des Anzeigenamens abgelehnt", 4 | "Write support for LDAP" : "Schreibunterstützung für LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Fügt Unterstützung für das Erstellen, Bearbeiten und Löschen von Benutzern und Gruppen auf LDAP über Nextcloud hinzu", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Die Schreibunterstützung für LDAP erweitert das LDAP-Backend um Funktionen zur Verwaltung des Verzeichnisses von Nextcloud aus.\n* Benutzer erstellen, bearbeiten und löschen\n* Mitgliedschaften erstellen, ändern und Gruppen löschen\n* Fallback auf das lokale Datenbank-Backend verhindern (optional)\n* Automatisch eine Benutzer-ID generieren (optional)\n* und weitere Verhaltensschalter", 7 | "Failed to set user template." : "Benutzervorlage konnte nicht festgelegt werden.", 8 | "Failed to set switch." : "Schalter konnte gesetzt werden.", 9 | "Writing" : "Schreiben", 10 | "Switches" : "Schalter", 11 | "Prevent fallback to other backends when creating users or groups." : "Beim Erstellen von Benutzern oder Gruppen den Rückgriff auf andere Backends verhindern.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Um Benutzer anzulegen, muss der amtierende (Sub-)Administrator über LDAP bereitgestellt werden.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Es muss eine zufällige Benutzer-ID generiert werden, d. h. sie darf nicht vom (Sub-)Administrator bereitgestellt werden.", 14 | "An LDAP user must have an email address set." : "Für einen LDAP-Benutzer muss eine E-Mail-Adresse eingerichtet sein.", 15 | "Allow users to set their avatar" : "Benutzer können ihren Avatar festlegen", 16 | "Allow users to set their password" : "Benutzer können ihr Passwort selbst festlegen", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Wenn der Server den erweiterten Vorgang \"Passwort ändern\" nicht unterstützt, verwenden Sie zum Festlegen des Passworts das Attribut `unicodePwd` anstelle des Attributs `userPassword`.", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Attribut `unicodePwd` verwenden, um das Benutzerkennwort festzulegen", 19 | "User template" : "Benutzervorlage", 20 | "LDIF template for creating users. Following placeholders may be used" : "LDIF-Vorlage für die Erstellung von Benutzern. Folgende Platzhalter können verwendet werden", 21 | "the user id provided by the (sub)admin" : "die vom (Sub-)Administrator bereitgestellte Benutzer-ID", 22 | "the password provided by the (sub)admin" : "das vom (Sub-)Administrator bereitgestellte Passwort", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "der LDAP-Knoten des amtierenden (Sub-)Administrators oder der konfigurierten Benutzerbasis" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/el.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Δεν ήταν δυνατή η εύρεση σχετικής καταχώρησης LDAP", 5 | "DisplayName change rejected" : "Η αλλαγή του DisplayName απορρίφθηκε", 6 | "Write support for LDAP" : "Υποστήριξη εγγραφής για LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Προσθέτει υποστήριξη για δημιουργία, διαχείριση και διαγραφή χρηστών και ομάδων στο LDAP μέσω του Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Η υποστήριξη εγγραφής για LDAP εμπλουτίζει το σύστημα υποστήριξης LDAP με δυνατότητες διαχείρισης του καταλόγου από το Nextcloud.\n* δημιουργία, επεξεργασία και διαγραφή χρηστών\n* δημιουργία, τροποποίηση μελών και διαγραφή ομάδων\n* αποτροπή επιστροφής στο τοπικό backend βάσης δεδομένων (προαιρετικά)\n* αυτόματη δημιουργία αναγνωριστικού χρήστη (προαιρετικά)\n* και περισσότερους διακόπτες συμπεριφοράς", 9 | "Failed to set user template." : "Αποτυχία ορισμού προτύπου χρήστη.", 10 | "Failed to set switch." : "Αποτυχία ορισμού διακόπτη.", 11 | "Writing" : "Εγγραφή", 12 | "Switches" : "Διακόπτες", 13 | "Prevent fallback to other backends when creating users or groups." : "Αποτροπή επιστροφής σε άλλα συστήματα υποστήριξης κατά τη δημιουργία χρηστών ή ομάδων.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Για τη δημιουργία χρηστών, ο ενεργός (υπο)διαχειριστής πρέπει να παρέχεται από το LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Πρέπει να δημιουργηθεί τυχαίο αναγνωριστικό χρήστη, δηλαδή να μην παρέχεται από τον (υπο)διαχειριστή.", 16 | "An LDAP user must have an email address set." : "Ένας χρήστης LDAP πρέπει να έχει ορισμένη διεύθυνση email.", 17 | "Allow users to set their avatar" : "Να επιτρέπεται στους χρήστες να ορίζουν το avatar τους", 18 | "Allow users to set their password" : "Να επιτρέπεται στους χρήστες να ορίζουν το συνθηματικό τους", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Αν ο διακομιστής δεν υποστηρίζει την εκτεταμένη λειτουργία τροποποίησης συνθηματικού, χρησιμοποιήστε το `unicodePwd` αντί του `userPassword` για τον ορισμό του συνθηματικού", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Χρησιμοποιήστε το `unicodePwd` για τον ορισμό του συνθηματικού του χρήστη", 21 | "User template" : "Πρότυπο χρήστη", 22 | "LDIF template for creating users. Following placeholders may be used" : "Πρότυπο LDIF για τη δημιουργία χρηστών. Μπορούν να χρησιμοποιηθούν οι ακόλουθες μεταβλητές", 23 | "the user id provided by the (sub)admin" : "το αναγνωριστικό χρήστη που παρέχεται από τον (υπο)διαχειριστή", 24 | "the password provided by the (sub)admin" : "το συνθηματικό που παρέχεται από τον (υπο)διαχειριστή", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "ο κόμβος LDAP του ενεργού (υπο)διαχειριστή ή η διαμορφωμένη βάση χρηστών" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/el.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Δεν ήταν δυνατή η εύρεση σχετικής καταχώρησης LDAP", 3 | "DisplayName change rejected" : "Η αλλαγή του DisplayName απορρίφθηκε", 4 | "Write support for LDAP" : "Υποστήριξη εγγραφής για LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Προσθέτει υποστήριξη για δημιουργία, διαχείριση και διαγραφή χρηστών και ομάδων στο LDAP μέσω του Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Η υποστήριξη εγγραφής για LDAP εμπλουτίζει το σύστημα υποστήριξης LDAP με δυνατότητες διαχείρισης του καταλόγου από το Nextcloud.\n* δημιουργία, επεξεργασία και διαγραφή χρηστών\n* δημιουργία, τροποποίηση μελών και διαγραφή ομάδων\n* αποτροπή επιστροφής στο τοπικό backend βάσης δεδομένων (προαιρετικά)\n* αυτόματη δημιουργία αναγνωριστικού χρήστη (προαιρετικά)\n* και περισσότερους διακόπτες συμπεριφοράς", 7 | "Failed to set user template." : "Αποτυχία ορισμού προτύπου χρήστη.", 8 | "Failed to set switch." : "Αποτυχία ορισμού διακόπτη.", 9 | "Writing" : "Εγγραφή", 10 | "Switches" : "Διακόπτες", 11 | "Prevent fallback to other backends when creating users or groups." : "Αποτροπή επιστροφής σε άλλα συστήματα υποστήριξης κατά τη δημιουργία χρηστών ή ομάδων.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Για τη δημιουργία χρηστών, ο ενεργός (υπο)διαχειριστής πρέπει να παρέχεται από το LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Πρέπει να δημιουργηθεί τυχαίο αναγνωριστικό χρήστη, δηλαδή να μην παρέχεται από τον (υπο)διαχειριστή.", 14 | "An LDAP user must have an email address set." : "Ένας χρήστης LDAP πρέπει να έχει ορισμένη διεύθυνση email.", 15 | "Allow users to set their avatar" : "Να επιτρέπεται στους χρήστες να ορίζουν το avatar τους", 16 | "Allow users to set their password" : "Να επιτρέπεται στους χρήστες να ορίζουν το συνθηματικό τους", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Αν ο διακομιστής δεν υποστηρίζει την εκτεταμένη λειτουργία τροποποίησης συνθηματικού, χρησιμοποιήστε το `unicodePwd` αντί του `userPassword` για τον ορισμό του συνθηματικού", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Χρησιμοποιήστε το `unicodePwd` για τον ορισμό του συνθηματικού του χρήστη", 19 | "User template" : "Πρότυπο χρήστη", 20 | "LDIF template for creating users. Following placeholders may be used" : "Πρότυπο LDIF για τη δημιουργία χρηστών. Μπορούν να χρησιμοποιηθούν οι ακόλουθες μεταβλητές", 21 | "the user id provided by the (sub)admin" : "το αναγνωριστικό χρήστη που παρέχεται από τον (υπο)διαχειριστή", 22 | "the password provided by the (sub)admin" : "το συνθηματικό που παρέχεται από τον (υπο)διαχειριστή", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "ο κόμβος LDAP του ενεργού (υπο)διαχειριστή ή η διαμορφωμένη βάση χρηστών" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/en_GB.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Could not find related LDAP entry", 5 | "DisplayName change rejected" : "DisplayName change rejected", 6 | "Write support for LDAP" : "Write support for LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches", 9 | "Failed to set user template." : "Failed to set user template.", 10 | "Failed to set switch." : "Failed to set switch.", 11 | "Writing" : "Writing", 12 | "Switches" : "Switches", 13 | "Prevent fallback to other backends when creating users or groups." : "Prevent fallback to other backends when creating users or groups.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "To create users, the acting (sub)admin has to be provided by LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "A random user ID has to be generated, i.e. not being provided by the (sub)admin.", 16 | "An LDAP user must have an email address set." : "An LDAP user must have an email address set.", 17 | "Allow users to set their avatar" : "Allow users to set their avatar", 18 | "Allow users to set their password" : "Allow users to set their password", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Use the `unicodePwd` attribute for setting the user password", 21 | "User template" : "User template", 22 | "LDIF template for creating users. Following placeholders may be used" : "LDIF template for creating users. Following placeholders may be used", 23 | "the user id provided by the (sub)admin" : "the user id provided by the (sub)admin", 24 | "the password provided by the (sub)admin" : "the password provided by the (sub)admin", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "the LDAP node of the acting (sub)admin or the configured user base" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/en_GB.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Could not find related LDAP entry", 3 | "DisplayName change rejected" : "DisplayName change rejected", 4 | "Write support for LDAP" : "Write support for LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches", 7 | "Failed to set user template." : "Failed to set user template.", 8 | "Failed to set switch." : "Failed to set switch.", 9 | "Writing" : "Writing", 10 | "Switches" : "Switches", 11 | "Prevent fallback to other backends when creating users or groups." : "Prevent fallback to other backends when creating users or groups.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "To create users, the acting (sub)admin has to be provided by LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "A random user ID has to be generated, i.e. not being provided by the (sub)admin.", 14 | "An LDAP user must have an email address set." : "An LDAP user must have an email address set.", 15 | "Allow users to set their avatar" : "Allow users to set their avatar", 16 | "Allow users to set their password" : "Allow users to set their password", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Use the `unicodePwd` attribute for setting the user password", 19 | "User template" : "User template", 20 | "LDIF template for creating users. Following placeholders may be used" : "LDIF template for creating users. Following placeholders may be used", 21 | "the user id provided by the (sub)admin" : "the user id provided by the (sub)admin", 22 | "the password provided by the (sub)admin" : "the password provided by the (sub)admin", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "the LDAP node of the acting (sub)admin or the configured user base" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/es.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "No se pudo conseguir la entrada LDAP correspondinete", 5 | "DisplayName change rejected" : "Cambio al atributo DisplayName rechazado", 6 | "Write support for LDAP" : "Soporte de escritura para LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Agrega soporte para crear, manipular y eliminar usuarios y grupos en LDAP a través de Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "El soporte de escritura para LDAP enriquece al backend LDAP con la capacidad de administrar el directorio desde Nextcloud.\n* cree, edite y elimine usuarios\n* cree, modifique membresías o elimine grupos\n* evitar cualquier intento de recurrir a la base de datos local (opcional)\n* auto generar un ID de usuario (opcional)\n* y más interruptores para cambios de comportamiento", 9 | "Failed to set user template." : "Fallo al establecer la plantilla de usuario.", 10 | "Failed to set switch." : "Fallo al establecer el interruptor.", 11 | "Writing" : "Escribiendo", 12 | "Switches" : "Interruptores", 13 | "Prevent fallback to other backends when creating users or groups." : "Evitar intentar recurrir a otros backends cuando se crean usuarios o grupos.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Para crear usuarios el administrador o subadministrador debe ser provisto por LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Un ID aleatorio de usuario debe ser generado, p. ej. no está siendo proporcionado por el administrador o subadministrador.", 16 | "An LDAP user must have an email address set." : "Un usuario LDAP debe tener una dirección de correo electrónico configurada.", 17 | "Allow users to set their avatar" : "Permitir a los usuarios establecer su avatar", 18 | "Allow users to set their password" : "Permitir a los usuarios establecer su contraseña", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Si el servidor no soporta la operación extendida para cambio de contraseña, utilice el atributo `unicodePwd` en vez del atributo `userPassword` para establecer la contraseña", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Utilizar el atributo `unicodePwd` para establecer la contraseña del usuario", 21 | "User template" : "Plantilla de usuario", 22 | "LDIF template for creating users. Following placeholders may be used" : "Plantilla LDIF para creación de usuarios. Los siguientes marcadores de posición pueden ser utilizados", 23 | "the user id provided by the (sub)admin" : "el id de usuario provisto por el administrador o subadministrador", 24 | "the password provided by the (sub)admin" : "la contraseña provista por el administrador o subadministrador", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "el nodo LDAP del administrador o subadministrador que ejecuta o, la base de usuarios configurada" 26 | }, 27 | "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 28 | -------------------------------------------------------------------------------- /l10n/es.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "No se pudo conseguir la entrada LDAP correspondinete", 3 | "DisplayName change rejected" : "Cambio al atributo DisplayName rechazado", 4 | "Write support for LDAP" : "Soporte de escritura para LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Agrega soporte para crear, manipular y eliminar usuarios y grupos en LDAP a través de Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "El soporte de escritura para LDAP enriquece al backend LDAP con la capacidad de administrar el directorio desde Nextcloud.\n* cree, edite y elimine usuarios\n* cree, modifique membresías o elimine grupos\n* evitar cualquier intento de recurrir a la base de datos local (opcional)\n* auto generar un ID de usuario (opcional)\n* y más interruptores para cambios de comportamiento", 7 | "Failed to set user template." : "Fallo al establecer la plantilla de usuario.", 8 | "Failed to set switch." : "Fallo al establecer el interruptor.", 9 | "Writing" : "Escribiendo", 10 | "Switches" : "Interruptores", 11 | "Prevent fallback to other backends when creating users or groups." : "Evitar intentar recurrir a otros backends cuando se crean usuarios o grupos.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Para crear usuarios el administrador o subadministrador debe ser provisto por LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Un ID aleatorio de usuario debe ser generado, p. ej. no está siendo proporcionado por el administrador o subadministrador.", 14 | "An LDAP user must have an email address set." : "Un usuario LDAP debe tener una dirección de correo electrónico configurada.", 15 | "Allow users to set their avatar" : "Permitir a los usuarios establecer su avatar", 16 | "Allow users to set their password" : "Permitir a los usuarios establecer su contraseña", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Si el servidor no soporta la operación extendida para cambio de contraseña, utilice el atributo `unicodePwd` en vez del atributo `userPassword` para establecer la contraseña", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Utilizar el atributo `unicodePwd` para establecer la contraseña del usuario", 19 | "User template" : "Plantilla de usuario", 20 | "LDIF template for creating users. Following placeholders may be used" : "Plantilla LDIF para creación de usuarios. Los siguientes marcadores de posición pueden ser utilizados", 21 | "the user id provided by the (sub)admin" : "el id de usuario provisto por el administrador o subadministrador", 22 | "the password provided by the (sub)admin" : "la contraseña provista por el administrador o subadministrador", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "el nodo LDAP del administrador o subadministrador que ejecuta o, la base de usuarios configurada" 24 | },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 25 | } -------------------------------------------------------------------------------- /l10n/eu.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Writing" : "Idazten", 5 | "Switches" : "Etengailuak", 6 | "User template" : "Erabiltzailearen txantiloia" 7 | }, 8 | "nplurals=2; plural=(n != 1);"); 9 | -------------------------------------------------------------------------------- /l10n/eu.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Writing" : "Idazten", 3 | "Switches" : "Etengailuak", 4 | "User template" : "Erabiltzailearen txantiloia" 5 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 6 | } -------------------------------------------------------------------------------- /l10n/fr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Aucune entrée LDAP associée trouvée", 5 | "DisplayName change rejected" : "Changement de nom d’affichage refusé", 6 | "Write support for LDAP" : "Prise en charge de l’écriture pour LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Ajoute le support pour créer, manipuler et supprimer des utilisateurs et des groupes sur LDAP via Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "La prise en charge de l'écriture pour le LDAP enrichi le backend LDAP avec des possibilités pour gérer l'annuaire depuis Nextcloud.\n* créer, modifier et supprimer des utilisateur\n* créer, modifier l'appartenance et supprimer des groupes\n* empêcher le retour au backend de base de données locale (optionnel)\n* générer automatiquement un identifiant d’utilisateur (optionnel)\n* et plus de commutateurs comportementaux", 9 | "Failed to set user template." : "Échec de la définition du modèle d’utilisateur.", 10 | "Failed to set switch." : "Impossible de définir le commutateur.", 11 | "Writing" : "Écriture", 12 | "Switches" : "Commutateurs", 13 | "Prevent fallback to other backends when creating users or groups." : "Empêcher le recours à d’autres backends lors de la création d’utilisateurs ou de groupes. ", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Pour créer des utilisateurs, le (sous)administrateur suppléant doit être fourni par LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Un identifiant d’utilisateur aléatoire doit être généré, c’est-à-dire non fourni par le (sous)administrateur.", 16 | "An LDAP user must have an email address set." : "Un utilisateur LDAP doit avoir une adresse e-mail définie.", 17 | "Allow users to set their avatar" : "Permettre aux utilisateurs de définir leur avatar", 18 | "Allow users to set their password" : "Autoriser les utilisateurs à définir leur mot de passe", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Si le serveur ne prend pas en charge l'opération étendue de modification du mot de passe utilise le `unicodePwd` au lieu de l'attribut `userPassword` pour définir le mot de passe.", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Utiliser l’attribut `unicodePwd` pour définir le mot de passe de l’utilisateur", 21 | "User template" : "Modèle utilisateur", 22 | "LDIF template for creating users. Following placeholders may be used" : "Modèle LDIF pour la création d’utilisateurs. Les espaces réservés suivants peuvent être utilisés.", 23 | "the user id provided by the (sub)admin" : "L’identifiant utilisateur fourni par le (sous-)administrateur", 24 | "the password provided by the (sub)admin" : "Le mot de passe fourni par le (sous-)administrateur", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "le nœud LDAP du (sous) administrateur suppléant ou la base utilisateurs configurée" 26 | }, 27 | "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 28 | -------------------------------------------------------------------------------- /l10n/fr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Aucune entrée LDAP associée trouvée", 3 | "DisplayName change rejected" : "Changement de nom d’affichage refusé", 4 | "Write support for LDAP" : "Prise en charge de l’écriture pour LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Ajoute le support pour créer, manipuler et supprimer des utilisateurs et des groupes sur LDAP via Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "La prise en charge de l'écriture pour le LDAP enrichi le backend LDAP avec des possibilités pour gérer l'annuaire depuis Nextcloud.\n* créer, modifier et supprimer des utilisateur\n* créer, modifier l'appartenance et supprimer des groupes\n* empêcher le retour au backend de base de données locale (optionnel)\n* générer automatiquement un identifiant d’utilisateur (optionnel)\n* et plus de commutateurs comportementaux", 7 | "Failed to set user template." : "Échec de la définition du modèle d’utilisateur.", 8 | "Failed to set switch." : "Impossible de définir le commutateur.", 9 | "Writing" : "Écriture", 10 | "Switches" : "Commutateurs", 11 | "Prevent fallback to other backends when creating users or groups." : "Empêcher le recours à d’autres backends lors de la création d’utilisateurs ou de groupes. ", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Pour créer des utilisateurs, le (sous)administrateur suppléant doit être fourni par LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Un identifiant d’utilisateur aléatoire doit être généré, c’est-à-dire non fourni par le (sous)administrateur.", 14 | "An LDAP user must have an email address set." : "Un utilisateur LDAP doit avoir une adresse e-mail définie.", 15 | "Allow users to set their avatar" : "Permettre aux utilisateurs de définir leur avatar", 16 | "Allow users to set their password" : "Autoriser les utilisateurs à définir leur mot de passe", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Si le serveur ne prend pas en charge l'opération étendue de modification du mot de passe utilise le `unicodePwd` au lieu de l'attribut `userPassword` pour définir le mot de passe.", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Utiliser l’attribut `unicodePwd` pour définir le mot de passe de l’utilisateur", 19 | "User template" : "Modèle utilisateur", 20 | "LDIF template for creating users. Following placeholders may be used" : "Modèle LDIF pour la création d’utilisateurs. Les espaces réservés suivants peuvent être utilisés.", 21 | "the user id provided by the (sub)admin" : "L’identifiant utilisateur fourni par le (sous-)administrateur", 22 | "the password provided by the (sub)admin" : "Le mot de passe fourni par le (sous-)administrateur", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "le nœud LDAP du (sous) administrateur suppléant ou la base utilisateurs configurée" 24 | },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 25 | } -------------------------------------------------------------------------------- /l10n/ga.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Níorbh fhéidir an iontráil LDAP gaolmhar a aimsiú", 5 | "DisplayName change rejected" : "Diúltaíodh don athrú DisplayName", 6 | "Write support for LDAP" : "Scríobh tacaíocht do LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Cuirtear leis tacaíocht chun úsáideoirí agus grúpaí ar LDAP a chruthú, a ionramháil agus a scriosadh trí Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Saibhríonn an tacaíocht scríofa do LDAP inneall an LDAP le cumais chun an t-eolaire ó Nextcloud a bhainistiú.\n* úsáideoirí a chruthú, a chur in eagar agus a scriosadh\n* ballraíocht a chruthú, a mhodhnú agus grúpaí a scriosadh\n* cosc ​​a chur ar chúltaca chuig inneall an bhunachair shonraí áitiúil (roghnach)\n* giniúint uathoibríoch aitheantais úsáideora (roghnach)\n* agus lasca iompraíochta níos mó", 9 | "Failed to set user template." : "Theip ar an teimpléad úsáideora a shocrú.", 10 | "Failed to set switch." : "Theip ar an lasc a shocrú.", 11 | "Writing" : "Ag scríobh", 12 | "Switches" : "Lasca", 13 | "Prevent fallback to other backends when creating users or groups." : "Cosc a chur ar aisiompair eile nuair a bhíonn úsáideoirí nó grúpaí á gcruthú.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Chun úsáideoirí a chruthú, ní mór do LDAP an riarthóir gníomhach (fo) a sholáthar.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Ní mór aitheantas úsáideora randamach a ghiniúint, i.e. níl sé á sholáthar ag an (fo)riarthóir.", 16 | "An LDAP user must have an email address set." : "Ní mór go mbeadh tacar seoltaí ríomhphoist ag úsáideoir LDAP.", 17 | "Allow users to set their avatar" : "Lig d'úsáideoirí a n-avatar a shocrú", 18 | "Allow users to set their password" : "Lig d’úsáideoirí a bpasfhocal a shocrú", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Mura dtacaíonn an freastalaí leis an oibríocht leathnaithe an phasfhocail a mhionathrú úsáid an `unicodePwd` in ionad an aitreabúid `userPassword` chun an pasfhocal a shocrú", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Úsáid an aitreabúid `unicodePwd` chun an pasfhocal úsáideora a shocrú", 21 | "User template" : "Teimpléad úsáideora", 22 | "LDIF template for creating users. Following placeholders may be used" : "Teimpléad LDIF chun úsáideoirí a chruthú. Is féidir na háitsealbhóirí seo a leanas a úsáid", 23 | "the user id provided by the (sub)admin" : "an t-aitheantas úsáideora a sholáthraíonn an (fo)riarthóir", 24 | "the password provided by the (sub)admin" : "an pasfhocal a sholáthraíonn an (fo)riarthóir", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "nód LDAP an riarthóra gníomhaigh (fo) nó an bonn úsáideora cumraithe" 26 | }, 27 | "nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"); 28 | -------------------------------------------------------------------------------- /l10n/ga.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Níorbh fhéidir an iontráil LDAP gaolmhar a aimsiú", 3 | "DisplayName change rejected" : "Diúltaíodh don athrú DisplayName", 4 | "Write support for LDAP" : "Scríobh tacaíocht do LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Cuirtear leis tacaíocht chun úsáideoirí agus grúpaí ar LDAP a chruthú, a ionramháil agus a scriosadh trí Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Saibhríonn an tacaíocht scríofa do LDAP inneall an LDAP le cumais chun an t-eolaire ó Nextcloud a bhainistiú.\n* úsáideoirí a chruthú, a chur in eagar agus a scriosadh\n* ballraíocht a chruthú, a mhodhnú agus grúpaí a scriosadh\n* cosc ​​a chur ar chúltaca chuig inneall an bhunachair shonraí áitiúil (roghnach)\n* giniúint uathoibríoch aitheantais úsáideora (roghnach)\n* agus lasca iompraíochta níos mó", 7 | "Failed to set user template." : "Theip ar an teimpléad úsáideora a shocrú.", 8 | "Failed to set switch." : "Theip ar an lasc a shocrú.", 9 | "Writing" : "Ag scríobh", 10 | "Switches" : "Lasca", 11 | "Prevent fallback to other backends when creating users or groups." : "Cosc a chur ar aisiompair eile nuair a bhíonn úsáideoirí nó grúpaí á gcruthú.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Chun úsáideoirí a chruthú, ní mór do LDAP an riarthóir gníomhach (fo) a sholáthar.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Ní mór aitheantas úsáideora randamach a ghiniúint, i.e. níl sé á sholáthar ag an (fo)riarthóir.", 14 | "An LDAP user must have an email address set." : "Ní mór go mbeadh tacar seoltaí ríomhphoist ag úsáideoir LDAP.", 15 | "Allow users to set their avatar" : "Lig d'úsáideoirí a n-avatar a shocrú", 16 | "Allow users to set their password" : "Lig d’úsáideoirí a bpasfhocal a shocrú", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Mura dtacaíonn an freastalaí leis an oibríocht leathnaithe an phasfhocail a mhionathrú úsáid an `unicodePwd` in ionad an aitreabúid `userPassword` chun an pasfhocal a shocrú", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Úsáid an aitreabúid `unicodePwd` chun an pasfhocal úsáideora a shocrú", 19 | "User template" : "Teimpléad úsáideora", 20 | "LDIF template for creating users. Following placeholders may be used" : "Teimpléad LDIF chun úsáideoirí a chruthú. Is féidir na háitsealbhóirí seo a leanas a úsáid", 21 | "the user id provided by the (sub)admin" : "an t-aitheantas úsáideora a sholáthraíonn an (fo)riarthóir", 22 | "the password provided by the (sub)admin" : "an pasfhocal a sholáthraíonn an (fo)riarthóir", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "nód LDAP an riarthóra gníomhaigh (fo) nó an bonn úsáideora cumraithe" 24 | },"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" 25 | } -------------------------------------------------------------------------------- /l10n/gl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Non foi posíbel atopar a entrada LDAP relacionada", 5 | "DisplayName change rejected" : "Cambio en DisplayName rexeitado", 6 | "Write support for LDAP" : "Compatibilidade de escritura para LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Engade compatibilidade para crear, manipular e eliminar usuarios e grupos en LDAP a través de Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "A compatibilidade de escritura para LDAP mellora a infraestrutura LDAP con capacidades para xestionar o directorio desde Nextcloud.\n* crear, editar e eliminar usuarios\n* crear, modificar pertenzas e eliminar grupos\n* evitar o retorno cara a infraestrutura da base de datos local (opcional)\n* xerar automaticamente un ID de usuario (opcional)\n* e máis conmutadores de comportamento", 9 | "Failed to set user template." : "Produciuse un fallo ao definir o modelo de usuario.", 10 | "Failed to set switch." : "Produciuse un fallo ao definir o conmutador.", 11 | "Writing" : "Escribindo", 12 | "Switches" : "Conmutadores", 13 | "Prevent fallback to other backends when creating users or groups." : "Evitar o retorno a outras infraestruturas crear usuarios ou grupos.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Para crear usuarios, a (sub)admin actuante debe ser fornecida por LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Hai que xerar un ID de usuario ao chou, é dicir. non debe ser fornecido por (sub)admin.", 16 | "An LDAP user must have an email address set." : "Un usuario LDAP debe tener definido un enderezo de correo.", 17 | "Allow users to set their avatar" : "Permitirlle aos usuarios definir o seu avatar", 18 | "Allow users to set their password" : "Permitirlle aos usuarios definir o seu contrasinal", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Se o servidor non admite a operación ampliada de modificación do contrasinal, use «unicodePwd» en troques do atributo «userPassword» para axustar o contrasinal", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Use o atributo «unicodePwd» para axustar o contrasinal do usuario", 21 | "User template" : "Modelo de usuario", 22 | "LDIF template for creating users. Following placeholders may be used" : "Modelo LDIF para crear usuarios. Pódense empregar os seguintes marcadores de substitución", 23 | "the user id provided by the (sub)admin" : "o id de usuario fornecido por (sub)admin", 24 | "the password provided by the (sub)admin" : "o contrasinal fornecido por (sub)admin", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "o nodo LDAP da (sub)admin actuante ou a base de usuarios configurada" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/gl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Non foi posíbel atopar a entrada LDAP relacionada", 3 | "DisplayName change rejected" : "Cambio en DisplayName rexeitado", 4 | "Write support for LDAP" : "Compatibilidade de escritura para LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Engade compatibilidade para crear, manipular e eliminar usuarios e grupos en LDAP a través de Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "A compatibilidade de escritura para LDAP mellora a infraestrutura LDAP con capacidades para xestionar o directorio desde Nextcloud.\n* crear, editar e eliminar usuarios\n* crear, modificar pertenzas e eliminar grupos\n* evitar o retorno cara a infraestrutura da base de datos local (opcional)\n* xerar automaticamente un ID de usuario (opcional)\n* e máis conmutadores de comportamento", 7 | "Failed to set user template." : "Produciuse un fallo ao definir o modelo de usuario.", 8 | "Failed to set switch." : "Produciuse un fallo ao definir o conmutador.", 9 | "Writing" : "Escribindo", 10 | "Switches" : "Conmutadores", 11 | "Prevent fallback to other backends when creating users or groups." : "Evitar o retorno a outras infraestruturas crear usuarios ou grupos.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Para crear usuarios, a (sub)admin actuante debe ser fornecida por LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Hai que xerar un ID de usuario ao chou, é dicir. non debe ser fornecido por (sub)admin.", 14 | "An LDAP user must have an email address set." : "Un usuario LDAP debe tener definido un enderezo de correo.", 15 | "Allow users to set their avatar" : "Permitirlle aos usuarios definir o seu avatar", 16 | "Allow users to set their password" : "Permitirlle aos usuarios definir o seu contrasinal", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Se o servidor non admite a operación ampliada de modificación do contrasinal, use «unicodePwd» en troques do atributo «userPassword» para axustar o contrasinal", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Use o atributo «unicodePwd» para axustar o contrasinal do usuario", 19 | "User template" : "Modelo de usuario", 20 | "LDIF template for creating users. Following placeholders may be used" : "Modelo LDIF para crear usuarios. Pódense empregar os seguintes marcadores de substitución", 21 | "the user id provided by the (sub)admin" : "o id de usuario fornecido por (sub)admin", 22 | "the password provided by the (sub)admin" : "o contrasinal fornecido por (sub)admin", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "o nodo LDAP da (sub)admin actuante ou a base de usuarios configurada" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/nb.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Kunne ikke finne relatert LDAP-oppføring", 5 | "DisplayName change rejected" : "Endring av visningsnavn avvist", 6 | "Write support for LDAP" : "Skrivestøtte for LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Legger til støtte for å opprette, manipulere og slette brukere og grupper på LDAP via Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Skrivestøtten for LDAP beriker LDAP-backenden med muligheter til å administrere katalogen fra Nextcloud.\n* opprett, rediger og slett brukere\n* opprett, endre medlemskap og slett grupper\n* forhindre tilbakefall til den lokale databasen (valgfritt)\n* generer automatisk en bruker-ID (valgfritt)\n* og flere atferdsbrytere", 9 | "Failed to set user template." : "Innstilling av brukermal feilet.", 10 | "Failed to set switch." : "Kunne ikke stille inn bryteren.", 11 | "Writing" : "Skriving", 12 | "Switches" : "Brytere", 13 | "Prevent fallback to other backends when creating users or groups." : "Forhindre tilbakefall til andre serverdeler når du oppretter brukere eller grupper.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "For å opprette brukere må fungerende (under)admin oppgis av LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "En tilfeldig bruker-ID må genereres, dvs. ikke oppgis av (under)admin.", 16 | "An LDAP user must have an email address set." : "En LDAP-bruker må ha angitt en e-postadresse.", 17 | "Allow users to set their avatar" : "Tillat brukere å angi avataren sin", 18 | "Allow users to set their password" : "Tillat brukere å angi passordet sitt", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Hvis serveren ikke støtter den utvidede endringsoperasjonen for passord, bruk 'unicodePwd' i stedet for 'userPassword'-attributtet for å angi passordet", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Bruk 'unicodePwd'-attributtet for å angi brukerpassordet", 21 | "User template" : "Brukermal", 22 | "LDIF template for creating users. Following placeholders may be used" : "LDIF-mal for å opprette brukere. Følgende plassholdere kan bli brukt", 23 | "the user id provided by the (sub)admin" : "bruker-ID-en oppgitt av (uder)admin", 24 | "the password provided by the (sub)admin" : "passordet oppgitt av (under)admin", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP-noden til fungerende (under)administrator eller den konfigurerte brukerbasen" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/nb.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Kunne ikke finne relatert LDAP-oppføring", 3 | "DisplayName change rejected" : "Endring av visningsnavn avvist", 4 | "Write support for LDAP" : "Skrivestøtte for LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Legger til støtte for å opprette, manipulere og slette brukere og grupper på LDAP via Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Skrivestøtten for LDAP beriker LDAP-backenden med muligheter til å administrere katalogen fra Nextcloud.\n* opprett, rediger og slett brukere\n* opprett, endre medlemskap og slett grupper\n* forhindre tilbakefall til den lokale databasen (valgfritt)\n* generer automatisk en bruker-ID (valgfritt)\n* og flere atferdsbrytere", 7 | "Failed to set user template." : "Innstilling av brukermal feilet.", 8 | "Failed to set switch." : "Kunne ikke stille inn bryteren.", 9 | "Writing" : "Skriving", 10 | "Switches" : "Brytere", 11 | "Prevent fallback to other backends when creating users or groups." : "Forhindre tilbakefall til andre serverdeler når du oppretter brukere eller grupper.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "For å opprette brukere må fungerende (under)admin oppgis av LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "En tilfeldig bruker-ID må genereres, dvs. ikke oppgis av (under)admin.", 14 | "An LDAP user must have an email address set." : "En LDAP-bruker må ha angitt en e-postadresse.", 15 | "Allow users to set their avatar" : "Tillat brukere å angi avataren sin", 16 | "Allow users to set their password" : "Tillat brukere å angi passordet sitt", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Hvis serveren ikke støtter den utvidede endringsoperasjonen for passord, bruk 'unicodePwd' i stedet for 'userPassword'-attributtet for å angi passordet", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Bruk 'unicodePwd'-attributtet for å angi brukerpassordet", 19 | "User template" : "Brukermal", 20 | "LDIF template for creating users. Following placeholders may be used" : "LDIF-mal for å opprette brukere. Følgende plassholdere kan bli brukt", 21 | "the user id provided by the (sub)admin" : "bruker-ID-en oppgitt av (uder)admin", 22 | "the password provided by the (sub)admin" : "passordet oppgitt av (under)admin", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP-noden til fungerende (under)administrator eller den konfigurerte brukerbasen" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/pt_BR.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Não foi possível encontrar a entrada LDAP relacionada", 5 | "DisplayName change rejected" : "Alteração de DisplayName rejeitada", 6 | "Write support for LDAP" : "Suporte de gravação para LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Adiciona suporte para criação, manipulação e exclusão de usuários e grupos no LDAP via Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "O suporte de gravação para LDAP enriquece o backend LDAP com recursos para gerenciar o diretório do Nextcloud.\n* criar, editar e excluir usuários\n* criar, modificar associações e excluir grupos\n* evitar fallback para o backend do banco de dados local (opcional)\n* automático gerar um ID de usuário (opcional)\n* e mais opções comportamentais", 9 | "Failed to set user template." : "Falha ao definir o modelo do usuário.", 10 | "Failed to set switch." : "Falha ao definir o interruptor.", 11 | "Writing" : "Escrita", 12 | "Switches" : "Comutas", 13 | "Prevent fallback to other backends when creating users or groups." : "Evite o fallback para outros back-ends ao criar usuários ou grupos.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Para criar usuários, o (sub)administrador atuante deve ser fornecido pelo LDAP.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Um ID de usuário aleatório deve ser gerado, ou seja, não fornecido pelo (sub)administrador.", 16 | "An LDAP user must have an email address set." : "Um usuário LDAP deve ter um endereço de e-mail definido.", 17 | "Allow users to set their avatar" : "Permitir que os usuários definam seu avatar", 18 | "Allow users to set their password" : "Permitir que os usuários definam suas senhas", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Se o servidor não suportar a operação estendida de modificação de senha, use o `unicodePwd` em vez do atributo `userPassword` para definir a senha", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Use o atributo `unicodePwd` para definir a senha do usuário", 21 | "User template" : "Modelo de usuário", 22 | "LDIF template for creating users. Following placeholders may be used" : "Modelo LDIF para criação de usuários. Os seguintes espaços reservados podem ser usados", 23 | "the user id provided by the (sub)admin" : "o ID do usuário fornecido pelo (sub)administrador", 24 | "the password provided by the (sub)admin" : "a senha fornecida pelo (sub)administrador", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "o nó LDAP do (sub)administrador atuante ou da base de usuários configurada" 26 | }, 27 | "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); 28 | -------------------------------------------------------------------------------- /l10n/pt_BR.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Não foi possível encontrar a entrada LDAP relacionada", 3 | "DisplayName change rejected" : "Alteração de DisplayName rejeitada", 4 | "Write support for LDAP" : "Suporte de gravação para LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Adiciona suporte para criação, manipulação e exclusão de usuários e grupos no LDAP via Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "O suporte de gravação para LDAP enriquece o backend LDAP com recursos para gerenciar o diretório do Nextcloud.\n* criar, editar e excluir usuários\n* criar, modificar associações e excluir grupos\n* evitar fallback para o backend do banco de dados local (opcional)\n* automático gerar um ID de usuário (opcional)\n* e mais opções comportamentais", 7 | "Failed to set user template." : "Falha ao definir o modelo do usuário.", 8 | "Failed to set switch." : "Falha ao definir o interruptor.", 9 | "Writing" : "Escrita", 10 | "Switches" : "Comutas", 11 | "Prevent fallback to other backends when creating users or groups." : "Evite o fallback para outros back-ends ao criar usuários ou grupos.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Para criar usuários, o (sub)administrador atuante deve ser fornecido pelo LDAP.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Um ID de usuário aleatório deve ser gerado, ou seja, não fornecido pelo (sub)administrador.", 14 | "An LDAP user must have an email address set." : "Um usuário LDAP deve ter um endereço de e-mail definido.", 15 | "Allow users to set their avatar" : "Permitir que os usuários definam seu avatar", 16 | "Allow users to set their password" : "Permitir que os usuários definam suas senhas", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Se o servidor não suportar a operação estendida de modificação de senha, use o `unicodePwd` em vez do atributo `userPassword` para definir a senha", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Use o atributo `unicodePwd` para definir a senha do usuário", 19 | "User template" : "Modelo de usuário", 20 | "LDIF template for creating users. Following placeholders may be used" : "Modelo LDIF para criação de usuários. Os seguintes espaços reservados podem ser usados", 21 | "the user id provided by the (sub)admin" : "o ID do usuário fornecido pelo (sub)administrador", 22 | "the password provided by the (sub)admin" : "a senha fornecida pelo (sub)administrador", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "o nó LDAP do (sub)administrador atuante ou da base de usuários configurada" 24 | },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" 25 | } -------------------------------------------------------------------------------- /l10n/sk.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Nepodarilo sa nájisť súvisiaci záznam LDAP", 5 | "DisplayName change rejected" : "Zmena DisplayName bola odmietnutá", 6 | "Write support for LDAP" : "Podpora zápisu pre LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Pridáva podporu pre vytváranie, manipuláciu a odstraňovanie užívateľov a skupín v LDAP cez Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Podpora zápisu pre LDAP obohacuje backend LDAP o možnosti správy adresára z Nextcloud.\n* vytvárať, upravovať a mazať užívateľov\n* vytvárať, upravovať členstvá a mazať skupiny\n* zabrániť núdzovému návratu do lokálnej databázy (voliteľné)\n* automatické generovanie ID užívateľa (voliteľné)\n* a viac možností správania", 9 | "Failed to set user template." : "Nepodarilo sa nastaviť uživateľskú šablónu.", 10 | "Failed to set switch." : "Nepodarilo sa nastaviť prepínač.", 11 | "Writing" : "Zapisovanie", 12 | "Switches" : "Prepínače", 13 | "Prevent fallback to other backends when creating users or groups." : "Pri vytváraní užívateľov alebo skupín zabrániť prechodu na iný backend.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Pre vytvorenie užívateľov musí LDAP poskytnúť zastupujúceho (sub)administrátora.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Musí byť vygenerované náhodné ID používateľa, t. j. neposkytnuté (sub)adminom.", 16 | "An LDAP user must have an email address set." : "LDAP užívateľ musí mať nastavenú e-mail adresu", 17 | "Allow users to set their avatar" : "Povoliť užívateľom nastaviť vlastného avatara", 18 | "Allow users to set their password" : "Povoliť užívateľom nastaviť vlastné heslo", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Ak server nepodporuje rozšírenú operáciu úpravy hesla, použite na nastavenie hesla atribút `unicodePwd` namiesto atribútu `userPassword`", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Pre nastavenie hesla používateľa použite atribút `unicodePwd`", 21 | "User template" : "Uživateľská šablóna", 22 | "LDIF template for creating users. Following placeholders may be used" : "Šablóna LDIF pre vytváranie užívateľov. Môžu sa použiť nasledujúce zástupné symboly", 23 | "the user id provided by the (sub)admin" : "id uživateľa poskytnuté (sub)adminom", 24 | "the password provided by the (sub)admin" : "heslo poskytnuté (sub)adminom", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "uzol LDAP príslušného (sub)admina alebo nakonfigurovanej užívateľskej základne" 26 | }, 27 | "nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"); 28 | -------------------------------------------------------------------------------- /l10n/sk.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Nepodarilo sa nájisť súvisiaci záznam LDAP", 3 | "DisplayName change rejected" : "Zmena DisplayName bola odmietnutá", 4 | "Write support for LDAP" : "Podpora zápisu pre LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Pridáva podporu pre vytváranie, manipuláciu a odstraňovanie užívateľov a skupín v LDAP cez Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Podpora zápisu pre LDAP obohacuje backend LDAP o možnosti správy adresára z Nextcloud.\n* vytvárať, upravovať a mazať užívateľov\n* vytvárať, upravovať členstvá a mazať skupiny\n* zabrániť núdzovému návratu do lokálnej databázy (voliteľné)\n* automatické generovanie ID užívateľa (voliteľné)\n* a viac možností správania", 7 | "Failed to set user template." : "Nepodarilo sa nastaviť uživateľskú šablónu.", 8 | "Failed to set switch." : "Nepodarilo sa nastaviť prepínač.", 9 | "Writing" : "Zapisovanie", 10 | "Switches" : "Prepínače", 11 | "Prevent fallback to other backends when creating users or groups." : "Pri vytváraní užívateľov alebo skupín zabrániť prechodu na iný backend.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Pre vytvorenie užívateľov musí LDAP poskytnúť zastupujúceho (sub)administrátora.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Musí byť vygenerované náhodné ID používateľa, t. j. neposkytnuté (sub)adminom.", 14 | "An LDAP user must have an email address set." : "LDAP užívateľ musí mať nastavenú e-mail adresu", 15 | "Allow users to set their avatar" : "Povoliť užívateľom nastaviť vlastného avatara", 16 | "Allow users to set their password" : "Povoliť užívateľom nastaviť vlastné heslo", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Ak server nepodporuje rozšírenú operáciu úpravy hesla, použite na nastavenie hesla atribút `unicodePwd` namiesto atribútu `userPassword`", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Pre nastavenie hesla používateľa použite atribút `unicodePwd`", 19 | "User template" : "Uživateľská šablóna", 20 | "LDIF template for creating users. Following placeholders may be used" : "Šablóna LDIF pre vytváranie užívateľov. Môžu sa použiť nasledujúce zástupné symboly", 21 | "the user id provided by the (sub)admin" : "id uživateľa poskytnuté (sub)adminom", 22 | "the password provided by the (sub)admin" : "heslo poskytnuté (sub)adminom", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "uzol LDAP príslušného (sub)admina alebo nakonfigurovanej užívateľskej základne" 24 | },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);" 25 | } -------------------------------------------------------------------------------- /l10n/sl.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Ni bilo mogoče najti povezanega LDAP vnosa", 5 | "DisplayName change rejected" : "Sprememba DisplayName je bila zavrnjena" 6 | }, 7 | "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); 8 | -------------------------------------------------------------------------------- /l10n/sl.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Ni bilo mogoče najti povezanega LDAP vnosa", 3 | "DisplayName change rejected" : "Sprememba DisplayName je bila zavrnjena" 4 | },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" 5 | } -------------------------------------------------------------------------------- /l10n/sr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "Не може да се пронађе одговарајућа LDAP ставка", 5 | "DisplayName change rejected" : "Одбијена је измена имена за приказ", 6 | "Write support for LDAP" : "Подршка уписа у LDAP", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Додаје подршку за креирање, уређивање и брисање корисника и група на LDAP из Nextcloud", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Подршка уписа у LDAP обогађује LDAP позадински механизам могућностима за управљање директоријумом из Nextcloud.\n* креирање уређивање и брисање корисника\n* креирање, измена чланства и брисање група\n* спречавање употребе позадинског механизма локалне базе података у крајњој нужди (није обавезно)\n* аутоматско генерисање ID корисника (није обавезно)\n* и још прекидача понашања", 9 | "Failed to set user template." : "Није успело постављае корисничког шаблона.", 10 | "Failed to set switch." : "Није успело постављање прекидача.", 11 | "Writing" : "Уписивање", 12 | "Switches" : "Прекидачи", 13 | "Prevent fallback to other backends when creating users or groups." : "Спречава употребу осталих позадинских механизама у крајњој нужди када се креирају корисници или групе.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Да би се креирали корисници, LDAP мора да обезбеди дејствујућег (под)админа.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Мора да се генерише насумични ID корисника, тј. не сме да га обезбеди (под)админ.", 16 | "An LDAP user must have an email address set." : "LDAP кориниск мора да има постављену и-мејл адресу.", 17 | "Allow users to set their avatar" : "Дозволи да корисници поставе свој аватар", 18 | "Allow users to set their password" : "Дозволи да корисници поставе своју лозинку", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Ако сервер не подржава проширену операцију измене лозинке, за постављање лозинке се уместо `userPassword` атрибута користи `unicodePwd`", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Користи `unicodePwd` атрибут за постављање корисничке лозинке", 21 | "User template" : "Кориснички шаблон", 22 | "LDIF template for creating users. Following placeholders may be used" : "LDIF шаблон за креирање корисника. Могу да се користе следећи чувари места", 23 | "the user id provided by the (sub)admin" : "id корисника који обезбеђује (под)админ", 24 | "the password provided by the (sub)admin" : "лозинка коју обезбеђује (под)админ", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP чвор дејствујућег (под)админа или конфигурисана база корисника" 26 | }, 27 | "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); 28 | -------------------------------------------------------------------------------- /l10n/sr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "Не може да се пронађе одговарајућа LDAP ставка", 3 | "DisplayName change rejected" : "Одбијена је измена имена за приказ", 4 | "Write support for LDAP" : "Подршка уписа у LDAP", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Додаје подршку за креирање, уређивање и брисање корисника и група на LDAP из Nextcloud", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "Подршка уписа у LDAP обогађује LDAP позадински механизам могућностима за управљање директоријумом из Nextcloud.\n* креирање уређивање и брисање корисника\n* креирање, измена чланства и брисање група\n* спречавање употребе позадинског механизма локалне базе података у крајњој нужди (није обавезно)\n* аутоматско генерисање ID корисника (није обавезно)\n* и још прекидача понашања", 7 | "Failed to set user template." : "Није успело постављае корисничког шаблона.", 8 | "Failed to set switch." : "Није успело постављање прекидача.", 9 | "Writing" : "Уписивање", 10 | "Switches" : "Прекидачи", 11 | "Prevent fallback to other backends when creating users or groups." : "Спречава употребу осталих позадинских механизама у крајњој нужди када се креирају корисници или групе.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Да би се креирали корисници, LDAP мора да обезбеди дејствујућег (под)админа.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Мора да се генерише насумични ID корисника, тј. не сме да га обезбеди (под)админ.", 14 | "An LDAP user must have an email address set." : "LDAP кориниск мора да има постављену и-мејл адресу.", 15 | "Allow users to set their avatar" : "Дозволи да корисници поставе свој аватар", 16 | "Allow users to set their password" : "Дозволи да корисници поставе своју лозинку", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Ако сервер не подржава проширену операцију измене лозинке, за постављање лозинке се уместо `userPassword` атрибута користи `unicodePwd`", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Користи `unicodePwd` атрибут за постављање корисничке лозинке", 19 | "User template" : "Кориснички шаблон", 20 | "LDIF template for creating users. Following placeholders may be used" : "LDIF шаблон за креирање корисника. Могу да се користе следећи чувари места", 21 | "the user id provided by the (sub)admin" : "id корисника који обезбеђује (под)админ", 22 | "the password provided by the (sub)admin" : "лозинка коју обезбеђује (под)админ", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "LDAP чвор дејствујућег (под)админа или конфигурисана база корисника" 24 | },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" 25 | } -------------------------------------------------------------------------------- /l10n/tr.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "İlişkili LDAP kaydı bulunamadı", 5 | "DisplayName change rejected" : "Görüntülenecek ad değişimi reddedildi", 6 | "Write support for LDAP" : "LDAP yazma desteği", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Nextcloud ile LDAP üzerinde kullanıcı ve grup oluşturma, değiştirme ve silme desteği ekler", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "LDAP için yazma desteği, dizini Nextcloud üzerinde yönetme özellikleriyle LDAP arka ucunu zenginleştirir.\n* Kullanıcı oluşturma, düzenleme ve silme\n* Üyelikleri oluşturma, değiştirme ve grupları silme\n* Yerel veri tabanı arka ucunun kullanılmasını önleme (isteğe bağlı)\n* Otomatik olarak bir kullanıcı kimliği oluşturma (isteğe bağlı)\n* ve diğer davranış anahtarları", 9 | "Failed to set user template." : "Kullanıcı kalıbı ayarlanamadı.", 10 | "Failed to set switch." : "Anahtar ayarlanamadı.", 11 | "Writing" : "Yazma", 12 | "Switches" : "Anahtarlar", 13 | "Prevent fallback to other backends when creating users or groups." : "Kullanıcı veya grup oluştururken diğer arka uçların kullanılmasını önleyin.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Kullanıcı oluşturmak için, işlemi yapacak (alt) yöneticinin LDAP tarafından sağlanması gerekir.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Rastgele bir kullanıcı kimliğinin oluşturulması gerekir, yani (alt) yönetici tarafından sağlanmamalıdır.", 16 | "An LDAP user must have an email address set." : "Bir LDAP kullanıcısının ayarlanmış bir e-posta adresi olması gerekir.", 17 | "Allow users to set their avatar" : "Kullanıcılar avatarlarını ayarlayabilsin", 18 | "Allow users to set their password" : "Kullanıcıların parolalarını ayarlayabilsin", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Sunucu, parolayı değiştirme ek işlemini desteklemiyorsa, parolayı ayarlamak için `userPassword` özniteliği yerine `unicodePwd` özniteliğini kullanın", 20 | "Use the `unicodePwd` attribute for setting the user password" : "Kullanıcı parolasını ayarlamak için `unicodePwd` özniteliğini kullanın", 21 | "User template" : "Kullanıcı kalıbı", 22 | "LDIF template for creating users. Following placeholders may be used" : "Kullanıcı oluşturmak için LDIF kalıbı. Aşağıdaki kodlar kullanılabilir", 23 | "the user id provided by the (sub)admin" : "(alt) yönetici tarafından sağlanan kullanıcı kimliği", 24 | "the password provided by the (sub)admin" : "(alt) yönetici tarafından sağlanan parola", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "işlemi yapan (alt) yöneticinin veya yapılandırılmış kullanıcı tabanının LDAP düğümü" 26 | }, 27 | "nplurals=2; plural=(n > 1);"); 28 | -------------------------------------------------------------------------------- /l10n/tr.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "İlişkili LDAP kaydı bulunamadı", 3 | "DisplayName change rejected" : "Görüntülenecek ad değişimi reddedildi", 4 | "Write support for LDAP" : "LDAP yazma desteği", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Nextcloud ile LDAP üzerinde kullanıcı ve grup oluşturma, değiştirme ve silme desteği ekler", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "LDAP için yazma desteği, dizini Nextcloud üzerinde yönetme özellikleriyle LDAP arka ucunu zenginleştirir.\n* Kullanıcı oluşturma, düzenleme ve silme\n* Üyelikleri oluşturma, değiştirme ve grupları silme\n* Yerel veri tabanı arka ucunun kullanılmasını önleme (isteğe bağlı)\n* Otomatik olarak bir kullanıcı kimliği oluşturma (isteğe bağlı)\n* ve diğer davranış anahtarları", 7 | "Failed to set user template." : "Kullanıcı kalıbı ayarlanamadı.", 8 | "Failed to set switch." : "Anahtar ayarlanamadı.", 9 | "Writing" : "Yazma", 10 | "Switches" : "Anahtarlar", 11 | "Prevent fallback to other backends when creating users or groups." : "Kullanıcı veya grup oluştururken diğer arka uçların kullanılmasını önleyin.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "Kullanıcı oluşturmak için, işlemi yapacak (alt) yöneticinin LDAP tarafından sağlanması gerekir.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "Rastgele bir kullanıcı kimliğinin oluşturulması gerekir, yani (alt) yönetici tarafından sağlanmamalıdır.", 14 | "An LDAP user must have an email address set." : "Bir LDAP kullanıcısının ayarlanmış bir e-posta adresi olması gerekir.", 15 | "Allow users to set their avatar" : "Kullanıcılar avatarlarını ayarlayabilsin", 16 | "Allow users to set their password" : "Kullanıcıların parolalarını ayarlayabilsin", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "Sunucu, parolayı değiştirme ek işlemini desteklemiyorsa, parolayı ayarlamak için `userPassword` özniteliği yerine `unicodePwd` özniteliğini kullanın", 18 | "Use the `unicodePwd` attribute for setting the user password" : "Kullanıcı parolasını ayarlamak için `unicodePwd` özniteliğini kullanın", 19 | "User template" : "Kullanıcı kalıbı", 20 | "LDIF template for creating users. Following placeholders may be used" : "Kullanıcı oluşturmak için LDIF kalıbı. Aşağıdaki kodlar kullanılabilir", 21 | "the user id provided by the (sub)admin" : "(alt) yönetici tarafından sağlanan kullanıcı kimliği", 22 | "the password provided by the (sub)admin" : "(alt) yönetici tarafından sağlanan parola", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "işlemi yapan (alt) yöneticinin veya yapılandırılmış kullanıcı tabanının LDAP düğümü" 24 | },"pluralForm" :"nplurals=2; plural=(n > 1);" 25 | } -------------------------------------------------------------------------------- /l10n/ug.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "مۇناسىۋەتلىك LDAP تۈرىنى تاپالمىدى", 5 | "DisplayName change rejected" : "DisplayName ئۆزگەرتىش رەت قىلىندى", 6 | "Write support for LDAP" : "LDAP نى قوللاشنى يېزىڭ", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Nextcloud ئارقىلىق LDAP دىكى ئىشلەتكۈچى ۋە گۇرۇپپىلارنى قۇرۇش ، كونترول قىلىش ۋە ئۆچۈرۈشنى قوللايدۇ", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "LDAP نى يېزىش قوللىشى LDAP ئارقا سۇپىسىنى Nextcloud دىن مۇندەرىجىنى باشقۇرۇش ئىقتىدارى بىلەن بېيىتىدۇ.\n* ئىشلەتكۈچى قۇرۇش ، تەھرىرلەش ۋە ئۆچۈرۈش\n* ئەزا قۇرۇش ، ئۆزگەرتىش ۋە ئۆچۈرۈش\n* يەرلىك ساندان ئارقا سۇپىسىغا قايتىپ كېتىشنىڭ ئالدىنى ئالىدۇ (ئىختىيارىي)\n* ئاپتوماتىك ھالدا ئىشلەتكۈچى كىملىكى ھاسىل قىلىدۇ (ئىختىيارىي)\n* ۋە تېخىمۇ كۆپ ھەرىكەت ئالماشتۇرۇش", 9 | "Failed to set user template." : "ئىشلەتكۈچى قېلىپىنى تەڭشەش مەغلۇب بولدى.", 10 | "Failed to set switch." : "ئالماشتۇرغۇچ مەغلۇپ بولدى.", 11 | "Writing" : "يېزىش", 12 | "Switches" : "ئالماشتۇرغۇچ", 13 | "Prevent fallback to other backends when creating users or groups." : "ئىشلەتكۈچى ياكى گۇرۇپپا قۇرغاندا باشقا ئارقا سەھنىلەرگە چۈشۈپ قېلىشنىڭ ئالدىنى ئالىدۇ.", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "ئىشلەتكۈچى قۇرۇش ئۈچۈن ، ھەرىكەتچان (تارماق) باشقۇرغۇچىنى LDAP تەمىنلىشى كېرەك.", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "ئىختىيارى ئىشلەتكۈچى كىملىكى ھاسىل قىلىنىشى كېرەك ، يەنى (تارماق) باشقۇرغۇچى تەمىنلىمەيدۇ.", 16 | "An LDAP user must have an email address set." : "LDAP ئىشلەتكۈچىنىڭ ئېلېكترونلۇق خەت ئادرېسى بولۇشى كېرەك.", 17 | "Allow users to set their avatar" : "ئىشلەتكۈچىلەرنىڭ باش سۈرىتىنى تەڭشىشىگە يول قويۇڭ", 18 | "Allow users to set their password" : "ئىشلەتكۈچىلەرنىڭ پارولىنى تەڭشىشىگە يول قويۇڭ", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "ئەگەر مۇلازىمېتىر مەخپىي نومۇرنى كېڭەيتىش مەشغۇلاتىنى قوللىمىسا ، پارول بەلگىلەش ئۈچۈن «userPassword» خاسلىقىنىڭ ئورنىغا «unicodePwd» نى ئىشلىتىڭ.", 20 | "Use the `unicodePwd` attribute for setting the user password" : "ئىشلەتكۈچى پارولىنى تەڭشەش ئۈچۈن «unicodePwd» خاسلىقىنى ئىشلىتىڭ", 21 | "User template" : "ئىشلەتكۈچى قېلىپى", 22 | "LDIF template for creating users. Following placeholders may be used" : "ئىشلەتكۈچى قۇرۇش ئۈچۈن LDIF ئەندىزىسى. تۆۋەندىكى ئورۇن ئىگىلىرىنى ئىشلىتىشكە بولىدۇ", 23 | "the user id provided by the (sub)admin" : "(تارماق) باشقۇرغۇچى تەمىنلىگەن ئىشلەتكۈچى كىملىكى", 24 | "the password provided by the (sub)admin" : "(تارماق) باشقۇرغۇچى تەمىنلىگەن پارول", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "ھەرىكەتچان (تارماق) باشقۇرغۇچىنىڭ LDAP تۈگۈنى ياكى سەپلەنگەن ئىشلەتكۈچى ئاساسى" 26 | }, 27 | "nplurals=2; plural=(n != 1);"); 28 | -------------------------------------------------------------------------------- /l10n/ug.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "مۇناسىۋەتلىك LDAP تۈرىنى تاپالمىدى", 3 | "DisplayName change rejected" : "DisplayName ئۆزگەرتىش رەت قىلىندى", 4 | "Write support for LDAP" : "LDAP نى قوللاشنى يېزىڭ", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "Nextcloud ئارقىلىق LDAP دىكى ئىشلەتكۈچى ۋە گۇرۇپپىلارنى قۇرۇش ، كونترول قىلىش ۋە ئۆچۈرۈشنى قوللايدۇ", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "LDAP نى يېزىش قوللىشى LDAP ئارقا سۇپىسىنى Nextcloud دىن مۇندەرىجىنى باشقۇرۇش ئىقتىدارى بىلەن بېيىتىدۇ.\n* ئىشلەتكۈچى قۇرۇش ، تەھرىرلەش ۋە ئۆچۈرۈش\n* ئەزا قۇرۇش ، ئۆزگەرتىش ۋە ئۆچۈرۈش\n* يەرلىك ساندان ئارقا سۇپىسىغا قايتىپ كېتىشنىڭ ئالدىنى ئالىدۇ (ئىختىيارىي)\n* ئاپتوماتىك ھالدا ئىشلەتكۈچى كىملىكى ھاسىل قىلىدۇ (ئىختىيارىي)\n* ۋە تېخىمۇ كۆپ ھەرىكەت ئالماشتۇرۇش", 7 | "Failed to set user template." : "ئىشلەتكۈچى قېلىپىنى تەڭشەش مەغلۇب بولدى.", 8 | "Failed to set switch." : "ئالماشتۇرغۇچ مەغلۇپ بولدى.", 9 | "Writing" : "يېزىش", 10 | "Switches" : "ئالماشتۇرغۇچ", 11 | "Prevent fallback to other backends when creating users or groups." : "ئىشلەتكۈچى ياكى گۇرۇپپا قۇرغاندا باشقا ئارقا سەھنىلەرگە چۈشۈپ قېلىشنىڭ ئالدىنى ئالىدۇ.", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "ئىشلەتكۈچى قۇرۇش ئۈچۈن ، ھەرىكەتچان (تارماق) باشقۇرغۇچىنى LDAP تەمىنلىشى كېرەك.", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "ئىختىيارى ئىشلەتكۈچى كىملىكى ھاسىل قىلىنىشى كېرەك ، يەنى (تارماق) باشقۇرغۇچى تەمىنلىمەيدۇ.", 14 | "An LDAP user must have an email address set." : "LDAP ئىشلەتكۈچىنىڭ ئېلېكترونلۇق خەت ئادرېسى بولۇشى كېرەك.", 15 | "Allow users to set their avatar" : "ئىشلەتكۈچىلەرنىڭ باش سۈرىتىنى تەڭشىشىگە يول قويۇڭ", 16 | "Allow users to set their password" : "ئىشلەتكۈچىلەرنىڭ پارولىنى تەڭشىشىگە يول قويۇڭ", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "ئەگەر مۇلازىمېتىر مەخپىي نومۇرنى كېڭەيتىش مەشغۇلاتىنى قوللىمىسا ، پارول بەلگىلەش ئۈچۈن «userPassword» خاسلىقىنىڭ ئورنىغا «unicodePwd» نى ئىشلىتىڭ.", 18 | "Use the `unicodePwd` attribute for setting the user password" : "ئىشلەتكۈچى پارولىنى تەڭشەش ئۈچۈن «unicodePwd» خاسلىقىنى ئىشلىتىڭ", 19 | "User template" : "ئىشلەتكۈچى قېلىپى", 20 | "LDIF template for creating users. Following placeholders may be used" : "ئىشلەتكۈچى قۇرۇش ئۈچۈن LDIF ئەندىزىسى. تۆۋەندىكى ئورۇن ئىگىلىرىنى ئىشلىتىشكە بولىدۇ", 21 | "the user id provided by the (sub)admin" : "(تارماق) باشقۇرغۇچى تەمىنلىگەن ئىشلەتكۈچى كىملىكى", 22 | "the password provided by the (sub)admin" : "(تارماق) باشقۇرغۇچى تەمىنلىگەن پارول", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "ھەرىكەتچان (تارماق) باشقۇرغۇچىنىڭ LDAP تۈگۈنى ياكى سەپلەنگەن ئىشلەتكۈچى ئاساسى" 24 | },"pluralForm" :"nplurals=2; plural=(n != 1);" 25 | } -------------------------------------------------------------------------------- /l10n/zh_CN.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "找不到相相关的 LDAP 项目", 5 | "DisplayName change rejected" : "DisplayName 更改被拒绝", 6 | "Write support for LDAP" : "LDAP 写入支持", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "通过 Nextcloud 添加在 LDAP 上创建、操作和删除用户和群组的支持", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "对 LDAP 的写入支持扩展了 LDAP 后端的功能,使其能够直接从 Nextcloud 管理目录: \n- 创建、编辑和删除用户 \n- 创建、修改成员关系及删除群组 \n- 防止回退至本地数据库后端(可选) \n- 自动生成用户 ID(可选) \n- 以及更多可配置的行为开关 ", 9 | "Failed to set user template." : "设置用户模板失败", 10 | "Failed to set switch." : "设置切换失败", 11 | "Writing" : "写入", 12 | "Switches" : "切换", 13 | "Prevent fallback to other backends when creating users or groups." : "在创建用户或群组时防止回退到其他后端。", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "要创建用户,必须由 LDAP 提供代理(子)管理员。", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "必须生成随机用户 ID,即不能由(子)管理员提供。", 16 | "An LDAP user must have an email address set." : "LDAP 用户必须设置电子邮件地址。", 17 | "Allow users to set their avatar" : "允许用户自行设置头像", 18 | "Allow users to set their password" : "允许用户自行设置密码", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "若服务器不支持修改密码扩展操作,请使用 “unicodePwd” 属性而非“userPassword”属性来设置密码。", 20 | "Use the `unicodePwd` attribute for setting the user password" : "请使用“unicodePwd”属性来设置用户密码", 21 | "User template" : "用户模板", 22 | "LDIF template for creating users. Following placeholders may be used" : "用于创建用户的 LDIF 模板,可以使用以下占位字符串", 23 | "the user id provided by the (sub)admin" : "由(子)管理员提供的用户 ID", 24 | "the password provided by the (sub)admin" : "由(子)管理员提供的密码", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "代理(子)管理员或设置的用户基础的 LDAP 节点" 26 | }, 27 | "nplurals=1; plural=0;"); 28 | -------------------------------------------------------------------------------- /l10n/zh_CN.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "找不到相相关的 LDAP 项目", 3 | "DisplayName change rejected" : "DisplayName 更改被拒绝", 4 | "Write support for LDAP" : "LDAP 写入支持", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "通过 Nextcloud 添加在 LDAP 上创建、操作和删除用户和群组的支持", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "对 LDAP 的写入支持扩展了 LDAP 后端的功能,使其能够直接从 Nextcloud 管理目录: \n- 创建、编辑和删除用户 \n- 创建、修改成员关系及删除群组 \n- 防止回退至本地数据库后端(可选) \n- 自动生成用户 ID(可选) \n- 以及更多可配置的行为开关 ", 7 | "Failed to set user template." : "设置用户模板失败", 8 | "Failed to set switch." : "设置切换失败", 9 | "Writing" : "写入", 10 | "Switches" : "切换", 11 | "Prevent fallback to other backends when creating users or groups." : "在创建用户或群组时防止回退到其他后端。", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "要创建用户,必须由 LDAP 提供代理(子)管理员。", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "必须生成随机用户 ID,即不能由(子)管理员提供。", 14 | "An LDAP user must have an email address set." : "LDAP 用户必须设置电子邮件地址。", 15 | "Allow users to set their avatar" : "允许用户自行设置头像", 16 | "Allow users to set their password" : "允许用户自行设置密码", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "若服务器不支持修改密码扩展操作,请使用 “unicodePwd” 属性而非“userPassword”属性来设置密码。", 18 | "Use the `unicodePwd` attribute for setting the user password" : "请使用“unicodePwd”属性来设置用户密码", 19 | "User template" : "用户模板", 20 | "LDIF template for creating users. Following placeholders may be used" : "用于创建用户的 LDIF 模板,可以使用以下占位字符串", 21 | "the user id provided by the (sub)admin" : "由(子)管理员提供的用户 ID", 22 | "the password provided by the (sub)admin" : "由(子)管理员提供的密码", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "代理(子)管理员或设置的用户基础的 LDAP 节点" 24 | },"pluralForm" :"nplurals=1; plural=0;" 25 | } -------------------------------------------------------------------------------- /l10n/zh_HK.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "找不到相關的 LDAP 項目記錄", 5 | "DisplayName change rejected" : "DisplayName 更改被拒絕", 6 | "Write support for LDAP" : "LDAP 寫入支援", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "透過 Nextcloud 添加對於在 LDAP 上創建、操作和刪除使用者和群組的支援", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "對 LDAP 的寫入支援豐富了 LDAP 後端的功能,使其能夠從 Nextcloud 中管理目錄。\n* 創建、編輯和刪除用戶\n* 創建、修改成員資格和刪除群組\n* 防止回退到本地數據庫後端(可選)\n* 自動生成用戶 ID(可選)\n* 及更多行為開關", 9 | "Failed to set user template." : "設置用戶模板失敗。", 10 | "Failed to set switch." : "設置切換失敗。", 11 | "Writing" : "書寫", 12 | "Switches" : "轉換", 13 | "Prevent fallback to other backends when creating users or groups." : "在創建用戶或群組時防止回退到其他後端。", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "要創建用戶,需要由 LDAP 提供 (副) 管理員。", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "必須生成一個隨機的用戶ID,即不是由 (副) 管理員提供的。", 16 | "An LDAP user must have an email address set." : "LDAP 用戶必須設置電郵地址。", 17 | "Allow users to set their avatar" : "允許用戶設置他們的虛擬化身。", 18 | "Allow users to set their password" : "允許用戶設置他們的密碼", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "如果伺服器不支援修改密碼擴展操作,請使用「unicodePwd」屬性而不是「userPassword」屬性來設定密碼", 20 | "Use the `unicodePwd` attribute for setting the user password" : "請使用「unicodePwd」屬性來設定用戶密碼", 21 | "User template" : "用戶模板", 22 | "LDIF template for creating users. Following placeholders may be used" : "用於創建用戶的LDIF模板。以下佔位符可供使用", 23 | "the user id provided by the (sub)admin" : "由(副)管理員提供的用戶 ID", 24 | "the password provided by the (sub)admin" : "由(副)管理員提供的密碼", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "執行的(副)管理員的 LDAP 節點或配置的使用者基礎" 26 | }, 27 | "nplurals=1; plural=0;"); 28 | -------------------------------------------------------------------------------- /l10n/zh_HK.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "找不到相關的 LDAP 項目記錄", 3 | "DisplayName change rejected" : "DisplayName 更改被拒絕", 4 | "Write support for LDAP" : "LDAP 寫入支援", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "透過 Nextcloud 添加對於在 LDAP 上創建、操作和刪除使用者和群組的支援", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "對 LDAP 的寫入支援豐富了 LDAP 後端的功能,使其能夠從 Nextcloud 中管理目錄。\n* 創建、編輯和刪除用戶\n* 創建、修改成員資格和刪除群組\n* 防止回退到本地數據庫後端(可選)\n* 自動生成用戶 ID(可選)\n* 及更多行為開關", 7 | "Failed to set user template." : "設置用戶模板失敗。", 8 | "Failed to set switch." : "設置切換失敗。", 9 | "Writing" : "書寫", 10 | "Switches" : "轉換", 11 | "Prevent fallback to other backends when creating users or groups." : "在創建用戶或群組時防止回退到其他後端。", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "要創建用戶,需要由 LDAP 提供 (副) 管理員。", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "必須生成一個隨機的用戶ID,即不是由 (副) 管理員提供的。", 14 | "An LDAP user must have an email address set." : "LDAP 用戶必須設置電郵地址。", 15 | "Allow users to set their avatar" : "允許用戶設置他們的虛擬化身。", 16 | "Allow users to set their password" : "允許用戶設置他們的密碼", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "如果伺服器不支援修改密碼擴展操作,請使用「unicodePwd」屬性而不是「userPassword」屬性來設定密碼", 18 | "Use the `unicodePwd` attribute for setting the user password" : "請使用「unicodePwd」屬性來設定用戶密碼", 19 | "User template" : "用戶模板", 20 | "LDIF template for creating users. Following placeholders may be used" : "用於創建用戶的LDIF模板。以下佔位符可供使用", 21 | "the user id provided by the (sub)admin" : "由(副)管理員提供的用戶 ID", 22 | "the password provided by the (sub)admin" : "由(副)管理員提供的密碼", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "執行的(副)管理員的 LDAP 節點或配置的使用者基礎" 24 | },"pluralForm" :"nplurals=1; plural=0;" 25 | } -------------------------------------------------------------------------------- /l10n/zh_TW.js: -------------------------------------------------------------------------------- 1 | OC.L10N.register( 2 | "ldap_write_support", 3 | { 4 | "Could not find related LDAP entry" : "找不到相關的 LDAP 條目", 5 | "DisplayName change rejected" : "變更 DisplayName 遭拒", 6 | "Write support for LDAP" : "LDAP 寫入支援", 7 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "新增透過 Nextcloud 在 LDAP 上建立、操作與刪除使用者及群組的支援", 8 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "對 LDAP 的寫入支援拓展了 LDAP 後端的功能,使其可以從 Nextcloud 中管理目錄。\n* 建立、編輯與刪除使用者\n* 建立、修改成員資格與刪除群組\n* 防止汰退回本機資料庫後端(選擇性)\n* 自動產生使用者 ID(選擇性)\n* 以及更多行為開關", 9 | "Failed to set user template." : "設定使用者範本失敗。", 10 | "Failed to set switch." : "設定切換失敗。", 11 | "Writing" : "寫入", 12 | "Switches" : "切換", 13 | "Prevent fallback to other backends when creating users or groups." : "在建立使用者或群組時防止汰退回其他後端。", 14 | "To create users, the acting (sub)admin has to be provided by LDAP." : "要建立使用者,必須由 LDAP 提供代理(子)管理員", 15 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "必須產生隨機使用者 ID,亦即不是由(子)管理員提供的。", 16 | "An LDAP user must have an email address set." : "LDAP 使用者必須設定電子郵件地址。", 17 | "Allow users to set their avatar" : "允許使用者設定他們的大頭照", 18 | "Allow users to set their password" : "允許使用者設定他們的密碼", 19 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "若伺服器不支援修改密碼擴充操作,請使用「unicodePwd」屬性而非「userPassword」屬性來設定密碼", 20 | "Use the `unicodePwd` attribute for setting the user password" : "請使用「unicodePwd」屬性來設定使用者密碼", 21 | "User template" : "使用者範本", 22 | "LDIF template for creating users. Following placeholders may be used" : "用於建立使用者的 LDIF 範本。可使用以下佔位字串", 23 | "the user id provided by the (sub)admin" : "由(子)管理員提供的使用者 ID", 24 | "the password provided by the (sub)admin" : "由(子)管理員提供的密碼", 25 | "the LDAP node of the acting (sub)admin or the configured user base" : "代理(子)管理員或設定的使用者基礎的 LDAP 節點" 26 | }, 27 | "nplurals=1; plural=0;"); 28 | -------------------------------------------------------------------------------- /l10n/zh_TW.json: -------------------------------------------------------------------------------- 1 | { "translations": { 2 | "Could not find related LDAP entry" : "找不到相關的 LDAP 條目", 3 | "DisplayName change rejected" : "變更 DisplayName 遭拒", 4 | "Write support for LDAP" : "LDAP 寫入支援", 5 | "Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud" : "新增透過 Nextcloud 在 LDAP 上建立、操作與刪除使用者及群組的支援", 6 | "The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches" : "對 LDAP 的寫入支援拓展了 LDAP 後端的功能,使其可以從 Nextcloud 中管理目錄。\n* 建立、編輯與刪除使用者\n* 建立、修改成員資格與刪除群組\n* 防止汰退回本機資料庫後端(選擇性)\n* 自動產生使用者 ID(選擇性)\n* 以及更多行為開關", 7 | "Failed to set user template." : "設定使用者範本失敗。", 8 | "Failed to set switch." : "設定切換失敗。", 9 | "Writing" : "寫入", 10 | "Switches" : "切換", 11 | "Prevent fallback to other backends when creating users or groups." : "在建立使用者或群組時防止汰退回其他後端。", 12 | "To create users, the acting (sub)admin has to be provided by LDAP." : "要建立使用者,必須由 LDAP 提供代理(子)管理員", 13 | "A random user ID has to be generated, i.e. not being provided by the (sub)admin." : "必須產生隨機使用者 ID,亦即不是由(子)管理員提供的。", 14 | "An LDAP user must have an email address set." : "LDAP 使用者必須設定電子郵件地址。", 15 | "Allow users to set their avatar" : "允許使用者設定他們的大頭照", 16 | "Allow users to set their password" : "允許使用者設定他們的密碼", 17 | "If the server does not support the modify password extended operation use the `unicodePwd` instead of the `userPassword` attribute for setting the password" : "若伺服器不支援修改密碼擴充操作,請使用「unicodePwd」屬性而非「userPassword」屬性來設定密碼", 18 | "Use the `unicodePwd` attribute for setting the user password" : "請使用「unicodePwd」屬性來設定使用者密碼", 19 | "User template" : "使用者範本", 20 | "LDIF template for creating users. Following placeholders may be used" : "用於建立使用者的 LDIF 範本。可使用以下佔位字串", 21 | "the user id provided by the (sub)admin" : "由(子)管理員提供的使用者 ID", 22 | "the password provided by the (sub)admin" : "由(子)管理員提供的密碼", 23 | "the LDAP node of the acting (sub)admin or the configured user base" : "代理(子)管理員或設定的使用者基礎的 LDAP 節點" 24 | },"pluralForm" :"nplurals=1; plural=0;" 25 | } -------------------------------------------------------------------------------- /lib/AppInfo/Application.php: -------------------------------------------------------------------------------- 1 | registerEventListener(UserBackendRegistered::class, UserBackendRegisteredListener::class); 28 | $context->registerEventListener(GroupBackendRegistered::class, GroupBackendRegisteredListener::class); 29 | } 30 | 31 | public function boot(IBootContext $context): void { 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /lib/Command/GroupAdminsToLdap.php: -------------------------------------------------------------------------------- 1 | 6 | * SPDX-License-Identifier: AGPL-3.0-or-later 7 | */ 8 | 9 | namespace OCA\LdapWriteSupport\Command; 10 | 11 | use Exception; 12 | use OC\SubAdmin; 13 | use OCA\User_LDAP\Group_Proxy; 14 | use OCA\User_LDAP\Helper; 15 | use OCP\IConfig; 16 | use Symfony\Component\Console\Command\Command; 17 | use Symfony\Component\Console\Input\InputInterface; 18 | use Symfony\Component\Console\Input\InputOption; 19 | use Symfony\Component\Console\Output\OutputInterface; 20 | 21 | class GroupAdminsToLdap extends Command { 22 | /** 23 | * This adds/removes group subadmins as ldap group owners 24 | */ 25 | private $simulate = false; 26 | private $verbose = false; 27 | 28 | /** @var SubAdmin */ 29 | private $subAdmin; 30 | /** @var IConfig */ 31 | private $ocConfig; 32 | /** @var Helper */ 33 | private $helper; 34 | /** @var Group_Proxy */ 35 | private $groupProxy; 36 | 37 | /** 38 | * GroupAdminsToLdap constructor. 39 | */ 40 | public function __construct( 41 | SubAdmin $subAdmin, 42 | IConfig $ocConfig, 43 | Helper $helper, 44 | Group_Proxy $groupProxy, 45 | ) { 46 | parent::__construct(); 47 | 48 | $this->subAdmin = $subAdmin; 49 | $this->ocConfig = $ocConfig; 50 | $this->helper = $helper; 51 | $this->groupProxy = $groupProxy; 52 | } 53 | 54 | protected function configure() { 55 | $this 56 | ->setName('ldap-ext:sync-group-admins') 57 | ->setDescription('syncs group admin informations to ldap') 58 | ->addOption( 59 | 'sim', 60 | null, 61 | InputOption::VALUE_NONE, 62 | 'does not change database; just simulate' 63 | ) 64 | ->addOption( 65 | 'verb', 66 | null, 67 | InputOption::VALUE_NONE, 68 | 'verbose' 69 | ) 70 | ; 71 | } 72 | 73 | protected function execute(InputInterface $input, OutputInterface $output): int { 74 | if ($input->getOption('sim')) { 75 | $this->simulate = true; 76 | } 77 | 78 | if ($input->getOption('verb')) { 79 | $this->verbose = true; 80 | } 81 | 82 | try { 83 | if ($this->simulate) { 84 | $output->writeln('SIMULATE MODE ON'); 85 | } 86 | 87 | $configPrefixes = $this->helper->getServerConfigurationPrefixes(true); 88 | 89 | if (count($configPrefixes) > 1) { 90 | throw new Exception('NOT PREPARED TO DEAL WITH MODE THAN 1 LDAP SOURCE, EXITING...'); 91 | } 92 | 93 | $access = $this->groupProxy->getLDAPAccess($configPrefixes[0]); 94 | $conn = $access->getConnection(); 95 | 96 | $allSubAdmins = $this->subAdmin->getAllSubAdmins(); 97 | 98 | $currentNCAdmins = []; 99 | foreach ($allSubAdmins as $subAdmin) { 100 | $gid = $subAdmin['group']->getGID(); 101 | if (!key_exists($gid, $currentNCAdmins)) { 102 | $currentNCAdmins[$gid] = []; 103 | } 104 | array_push($currentNCAdmins[$gid], $subAdmin['user']->getUID()); 105 | } 106 | 107 | $allLdapGroups = $access->fetchListOfGroups( 108 | $conn->ldapGroupFilter, 109 | [$conn->ldapGroupDisplayName, 'dn','member','owner'] 110 | ); 111 | 112 | $currentLDAPAdmins = []; 113 | foreach ($allLdapGroups as $ldapGroup) { 114 | $gid = $ldapGroup[$conn->ldapGroupDisplayName][0]; 115 | if (key_exists('owner', $ldapGroup)) { 116 | if (!key_exists($gid, $currentLDAPAdmins)) { 117 | $currentLDAPAdmins[$gid] = []; 118 | } 119 | foreach ($ldapGroup['owner'] as $ownerDN) { 120 | $uid = $access->getUserMapper()->getNameByDN($ownerDN); 121 | array_push($currentLDAPAdmins[$gid], $uid); 122 | } 123 | } 124 | } 125 | 126 | function diff_user_arrays($array1, $array2) { 127 | $difference = []; 128 | foreach ($array1 as $gid => $users) { 129 | if (!isset($array2[$gid]) || !is_array($array2[$gid])) { 130 | $difference[$gid] = $users; 131 | } else { 132 | $diff = array_diff($array1[$gid], $array2[$gid]); 133 | if (count($diff)) { 134 | $difference[$gid] = array_diff($array1[$gid], $array2[$gid]); 135 | } 136 | } 137 | } 138 | return $difference; 139 | } 140 | 141 | 142 | $onlyInLDAP = diff_user_arrays($currentLDAPAdmins, $currentNCAdmins); 143 | $onlyInNC = diff_user_arrays($currentNCAdmins, $currentLDAPAdmins); 144 | 145 | 146 | foreach ($onlyInNC as $gid => $users) { 147 | $groupDN = $access->getGroupMapper()->getDNByName($gid); 148 | foreach ($users as $uid) { 149 | $userDN = $access->getUserMapper()->getDNByName($uid); 150 | $entry = [ 151 | 'owner' => $userDN 152 | ]; 153 | if ($this->verbose) { 154 | $output->writeln("ADD: UID=$uid ($userDN) into GID=$gid ($groupDN)"); 155 | } 156 | if (!$this->simulate) { 157 | ldap_mod_add($conn->getConnectionResource(), $groupDN, $entry); 158 | } 159 | } 160 | } 161 | 162 | foreach ($onlyInLDAP as $gid => $users) { 163 | $groupDN = $access->getGroupMapper()->getDNByName($gid); 164 | foreach ($users as $uid) { 165 | $userDN = $access->getUserMapper()->getDNByName($uid); 166 | $entry = [ 167 | 'owner' => $userDN 168 | ]; 169 | if ($this->verbose) { 170 | $output->writeln("DEL: UID=$uid ($userDN) into GID=$gid ($groupDN)"); 171 | } 172 | if (!$this->simulate) { 173 | ldap_mod_del($conn->getConnectionResource(), $groupDN, $entry); 174 | } 175 | } 176 | } 177 | 178 | $output->writeln("As Pink Floyd says: 'This is the end....'"); 179 | } catch (Exception $e) { 180 | $output->writeln('' . $e->getMessage() . ''); 181 | return 1; 182 | } 183 | 184 | return 0; 185 | } 186 | } 187 | -------------------------------------------------------------------------------- /lib/LDAPConnect.php: -------------------------------------------------------------------------------- 1 | 6 | * SPDX-License-Identifier: AGPL-3.0-or-later 7 | */ 8 | 9 | namespace OCA\LdapWriteSupport; 10 | 11 | use LDAP\Connection; 12 | use OC\ServerNotAvailableException; 13 | use OCA\LdapWriteSupport\AppInfo\Application; 14 | use OCA\User_LDAP\Configuration; 15 | use OCA\User_LDAP\Helper; 16 | use Psr\Log\LoggerInterface; 17 | 18 | class LDAPConnect { 19 | /** @var Configuration */ 20 | private $ldapConfig; 21 | /** @var bool|null */ 22 | private $passwdSupport; 23 | 24 | public function __construct( 25 | Helper $ldapBackendHelper, 26 | private LoggerInterface $logger, 27 | ) { 28 | $this->passwdSupport = null; 29 | $ldapConfigPrefixes = $ldapBackendHelper->getServerConfigurationPrefixes(true); 30 | $prefix = array_shift($ldapConfigPrefixes); 31 | $this->ldapConfig = new Configuration($prefix); 32 | } 33 | 34 | /** 35 | * @return resource|Connection 36 | * @throws ServerNotAvailableException 37 | */ 38 | public function connect() { 39 | $ldapHost = $this->ldapConfig->ldapHost; 40 | $ldapPort = $this->ldapConfig->ldapPort; 41 | 42 | // shamelessly copied from OCA\User_LDAP\LDAP::connect() 43 | $pos = strpos($ldapHost, '://'); 44 | if ($pos === false) { 45 | $ldapHost = 'ldap://' . $ldapHost; 46 | $pos = 4; 47 | } 48 | if (!str_contains(substr($ldapHost, $pos + 1), ':') && !empty($ldapPort)) { 49 | $ldapHost .= ':' . $ldapPort; 50 | } 51 | 52 | // Connecting to LDAP - TODO: connect directly via LDAP plugin 53 | $cr = ldap_connect($ldapHost); 54 | if (!is_resource($cr) && !is_object($cr)) { 55 | $this->logger->error('Unable to connect to LDAP host {ldapHost}:{ldapPort}', 56 | [ 57 | 'app' => Application::APP_ID, 58 | 'ldapHost' => $ldapHost, 59 | 'ldapPort' => $ldapPort, 60 | ]); 61 | throw new ServerNotAvailableException('LDAP server not available'); 62 | } 63 | 64 | ldap_set_option($cr, LDAP_OPT_PROTOCOL_VERSION, 3); 65 | $this->logger->debug('Connected to LDAP host {ldapHost}:{ldapPort}', 66 | [ 67 | 'app' => Application::APP_ID, 68 | 'ldapHost' => $ldapHost, 69 | 'ldapPort' => $ldapPort, 70 | ]); 71 | return $cr; 72 | } 73 | 74 | /** 75 | * @return false|resource|Connection 76 | * @throws ServerNotAvailableException 77 | */ 78 | public function bind() { 79 | $ds = $this->connect(); 80 | $dn = $this->ldapConfig->ldapAgentName; 81 | $secret = $this->ldapConfig->ldapAgentPassword; 82 | 83 | if (!ldap_bind($ds, $dn, $secret)) { 84 | $this->logger->error('Unable to bind to LDAP server', 85 | ['app' => Application::APP_ID] 86 | ); 87 | return false; 88 | } else { 89 | $this->logger->debug('Bound to LDAP server using credentials for {dn}', [ 90 | 'app' => Application::APP_ID, 91 | 'dn' => $dn, 92 | ]); 93 | return $ds; 94 | } 95 | } 96 | 97 | /** 98 | * @return false|resource|Connection 99 | * @throws ServerNotAvailableException 100 | */ 101 | public function getLDAPConnection() { 102 | return $this->bind(); 103 | } 104 | 105 | public function getLDAPBaseUsers(): array { 106 | $bases = $this->ldapConfig->ldapBaseUsers; 107 | if (empty($bases)) { 108 | $bases = $this->ldapConfig->ldapBase; 109 | } 110 | return $bases; 111 | } 112 | 113 | public function getLDAPBaseGroups(): array { 114 | $bases = $this->ldapConfig->ldapBaseGroups; 115 | if (empty($bases)) { 116 | $bases = $this->ldapConfig->ldapBase; 117 | } 118 | return $bases; 119 | } 120 | 121 | public function getDisplayNameAttribute(): string { 122 | return $this->ldapConfig->ldapUserDisplayName; 123 | } 124 | 125 | public function groupsEnabled(): bool { 126 | $filter = trim((string)$this->ldapConfig->ldapGroupFilter); 127 | $gAssoc = trim((string)$this->ldapConfig->ldapGroupMemberAssocAttr); 128 | 129 | return $filter !== '' && $gAssoc !== ''; 130 | } 131 | 132 | public function hasPasswordPolicy(): bool { 133 | $ppDN = $this->ldapConfig->ldapDefaultPPolicyDN; 134 | return !empty($ppDN); 135 | } 136 | 137 | /** 138 | * checks whether the LDAP server supports the passwd exop 139 | * 140 | * @param Connection $connection LDAP connection to check 141 | * @return boolean either the user can or cannot 142 | */ 143 | public function hasPasswdExopSupport($connection): bool { 144 | // TODO: We should cache this by ldap prefix, but currently we have no access to it. 145 | if (is_null($this->passwdSupport)) { 146 | $ret = ldap_read($connection, '', '(objectclass=*)', ['supportedExtension']); 147 | if ($ret === false) { 148 | $this->passwdSupport = false; 149 | $this->logger->debug( 150 | 'Could not check passwd_exop support of LDAP host, host does not provide the supportedExtension entry.', 151 | [ 'app' => Application::APP_ID ] 152 | ); 153 | return false; 154 | } 155 | 156 | $ret = ldap_first_entry($connection, $ret); 157 | if ($ret === false) { 158 | $this->passwdSupport = false; 159 | $this->logger->error( 160 | 'Could not check passwd_exop support of LDAP host, host returned malformed data for the supported ldap extension entry.', 161 | [ 'app' => Application::APP_ID ] 162 | ); 163 | return false; 164 | } 165 | 166 | $values = ldap_get_values($connection, $ret, 'supportedExtension'); 167 | $this->passwdSupport = ($values !== false) && in_array(LDAP_EXOP_MODIFY_PASSWD, $values); 168 | } 169 | return $this->passwdSupport; 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /lib/Listener/GroupBackendRegisteredListener.php: -------------------------------------------------------------------------------- 1 | 19 | */ 20 | class GroupBackendRegisteredListener implements IEventListener { 21 | /** @var IAppManager */ 22 | private $appManager; 23 | 24 | public function __construct( 25 | IAppManager $appManager, 26 | private LDAPGroupManager $ldapGroupManager, 27 | ) { 28 | $this->appManager = $appManager; 29 | } 30 | 31 | /** 32 | * @inheritDoc 33 | */ 34 | public function handle(Event $event): void { 35 | if (!$event instanceof GroupBackendRegistered 36 | || !$this->appManager->isEnabledForUser('user_ldap') 37 | ) { 38 | return; 39 | } 40 | $event->getPluginManager()->register($this->ldapGroupManager); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/Listener/UserBackendRegisteredListener.php: -------------------------------------------------------------------------------- 1 | 19 | */ 20 | class UserBackendRegisteredListener implements IEventListener { 21 | /** @var IAppManager */ 22 | private $appManager; 23 | 24 | public function __construct( 25 | IAppManager $appManager, 26 | private LDAPUserManager $ldapUserManager, 27 | ) { 28 | $this->appManager = $appManager; 29 | } 30 | 31 | /** 32 | * @inheritDoc 33 | */ 34 | public function handle(Event $event): void { 35 | if (!$event instanceof UserBackendRegistered 36 | || !$this->appManager->isEnabledForUser('user_ldap') 37 | ) { 38 | return; 39 | } 40 | $event->getPluginManager()->register($this->ldapUserManager); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/Service/Configuration.php: -------------------------------------------------------------------------------- 1 | config = $config; 20 | } 21 | 22 | public function isLdapActorRequired(): bool { 23 | return $this->config->getAppValue('ldap_write_support', 'createRequireActorFromLdap', '0') === '1'; 24 | } 25 | 26 | public function isPreventFallback(): bool { 27 | return $this->config->getAppValue('ldap_write_support', 'createPreventFallback', '1') === '1'; 28 | } 29 | 30 | public function hasAvatarPermission(): bool { 31 | return $this->config->getAppValue('ldap_write_support', 'hasAvatarPermission', '1') === '1'; 32 | } 33 | 34 | public function hasPasswordPermission(): bool { 35 | return $this->config->getAppValue('ldap_write_support', 'hasPasswordPermission', '1') === '1'; 36 | } 37 | 38 | public function useUnicodePassword(): bool { 39 | return $this->config->getAppValue('ldap_write_support', 'useUnicodePassword', '0') === '1'; 40 | } 41 | 42 | public function getUserTemplate() { 43 | return $this->config->getAppValue( 44 | Application::APP_ID, 45 | 'template.user', 46 | $this->getUserTemplateDefault() 47 | ); 48 | } 49 | 50 | public function getUserTemplateDefault() { 51 | return 52 | 'dn: uid={UID},{BASE}' . PHP_EOL . 53 | 'objectClass: inetOrgPerson' . PHP_EOL . 54 | 'uid: {UID}' . PHP_EOL . 55 | 'displayName: {UID}' . PHP_EOL . 56 | 'cn: {UID}' . PHP_EOL . 57 | 'sn: {UID}'; 58 | } 59 | 60 | public function isRequireEmail(): bool { 61 | // this core settings flag is not exposed anywhere else 62 | return $this->config->getAppValue('core', 'newUser.requireEmail', 'no') === 'yes'; 63 | } 64 | 65 | public function isGenerateUserId(): bool { 66 | // this core settings flag is not exposed anywhere else 67 | return $this->config->getAppValue('core', 'newUser.generateUserID', 'no') === 'yes'; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /lib/Settings/Admin.php: -------------------------------------------------------------------------------- 1 | initialStateService = $initialStateService; 27 | } 28 | 29 | /** 30 | * @return TemplateResponse returns the instance with all parameters set, ready to be rendered 31 | * @since 9.1 32 | */ 33 | public function getForm() { 34 | $this->initialStateService->provideInitialState( 35 | 'templates', 36 | [ 37 | 'user' => $this->config->getUserTemplate(), 38 | 'userDefault' => $this->config->getUserTemplateDefault(), 39 | ] 40 | ); 41 | $this->initialStateService->provideInitialState( 42 | 'switches', 43 | [ 44 | 'createRequireActorFromLdap' => $this->config->isLdapActorRequired(), 45 | 'createPreventFallback' => $this->config->isPreventFallback(), 46 | 'hasAvatarPermission' => $this->config->hasAvatarPermission(), 47 | 'hasPasswordPermission' => $this->config->hasPasswordPermission(), 48 | 'newUserRequireEmail' => $this->config->isRequireEmail(), 49 | 'newUserGenerateUserID' => $this->config->isGenerateUserId(), 50 | 'useUnicodePassword' => $this->config->useUnicodePassword(), 51 | ] 52 | ); 53 | 54 | Util::addScript(Application::APP_ID, 'ldap_write_support-admin-settings'); 55 | Util::addStyle(Application::APP_ID, 'ldap_write_support-admin-settings'); 56 | 57 | return new TemplateResponse(Application::APP_ID, 'settings-admin'); 58 | } 59 | 60 | /** 61 | * @return string the section ID, e.g. 'sharing' 62 | * @since 9.1 63 | */ 64 | public function getSection() { 65 | return 'ldap'; 66 | } 67 | 68 | /** 69 | * @return int whether the form should be rather on the top or bottom of 70 | * the admin section. The forms are arranged in ascending order of the 71 | * priority values. It is required to return a value between 0 and 100. 72 | * 73 | * E.g.: 70 74 | * @since 9.1 75 | */ 76 | public function getPriority() { 77 | return 35; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ldap_write_support", 3 | "version": "1.14.0", 4 | "description": "Adds write support to the LDAP backend", 5 | "private": true, 6 | "author": "Arthur Schiwon", 7 | "license": "AGPL-3.0-or-later", 8 | "type": "module", 9 | "scripts": { 10 | "build": "vite --mode production build", 11 | "dev": "vite --mode development build", 12 | "lint": "eslint --ext .js,.vue src", 13 | "lint:fix": "eslint --ext .js,.vue src --fix", 14 | "stylelint": "stylelint src css", 15 | "stylelint:fix": "stylelint src css --fix" 16 | }, 17 | "browserslist": [ 18 | "extends @nextcloud/browserslist-config" 19 | ], 20 | "dependencies": { 21 | "@nextcloud/dialogs": "^6.3.0", 22 | "@nextcloud/initial-state": "^2.2.0", 23 | "@nextcloud/vue": "^8.27.0", 24 | "vue": "^2.7.16" 25 | }, 26 | "engines": { 27 | "node": "^20.0.0", 28 | "npm": "^10.0.0" 29 | }, 30 | "devDependencies": { 31 | "@nextcloud/browserslist-config": "^3.0.1", 32 | "@nextcloud/eslint-config": "^8.4.2", 33 | "@nextcloud/stylelint-config": "^3.1.0", 34 | "@nextcloud/vite-config": "^1.5.6", 35 | "vite": "^6.3.5" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /psalm.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /rector.php: -------------------------------------------------------------------------------- 1 | withPaths([ 15 | __DIR__ . '/lib', 16 | __DIR__ . '/templates', 17 | ]) 18 | ->withPhpSets(php81:true) 19 | ->withTypeCoverageLevel(0) 20 | ->withImportNames(importShortClasses: false) 21 | ->withSets([ 22 | NextcloudSets::NEXTCLOUD_27, 23 | ]); 24 | -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors 4 | # SPDX-License-Identifier: AGPL-3.0-or-later 5 | 6 | # Stop at first error 7 | set -e 8 | 9 | # Use version from changelog 10 | # version=$(head -n1 CHANGELOG.md|cut -d"v" -f2); 11 | version=$1 12 | echo "Releasing version $version"; 13 | 14 | # Ask for confirmation 15 | read -r -p "Are you sure? [y/N] " input 16 | 17 | case $input in 18 | [yY][eE][sS]|[yY]) 19 | echo "You say Yes" 20 | ;; 21 | [nN][oO]|[nN]) 22 | echo "You say No" 23 | exit 1 24 | ;; 25 | *) 26 | echo "Invalid input..." 27 | exit 1 28 | ;; 29 | esac 30 | 31 | # Ask for confirmation 32 | read -r -p "Create commit and bump package.json version? [y/N] " input 33 | 34 | case $input in 35 | [yY][eE][sS]|[yY]) 36 | echo "You say Yes" 37 | # Bump version in info.xml 38 | sed -i -E "s|^\t.+|\t$version|" appinfo/info.xml 39 | 40 | # Add changed files to git 41 | # git add CHANGELOG.md 42 | git add appinfo/info.xml 43 | 44 | # Bump npm version, commit and tag 45 | npm version --allow-same-version -f $version 46 | 47 | # Show the result 48 | git log -1 -p 49 | 50 | # Add signoff 51 | git commit --amend -s 52 | ;; 53 | *) 54 | echo "You say No" 55 | ;; 56 | esac 57 | 58 | # Ask for confirmation 59 | read -r -p "Push? [y/N] " input 60 | 61 | case $input in 62 | [yY][eE][sS]|[yY]) 63 | echo "You say Yes" 64 | # Then: 65 | git push --tags 66 | # Create release on github 67 | 68 | git push git@github.com:nextcloud-releases/ldap_write_support.git v$version 69 | # Create release on github 70 | ;; 71 | *) 72 | echo "You say No" 73 | ;; 74 | esac 75 | 76 | # Then manually: 77 | echo "Create release on github from tag on https://github.com/nextcloud/ldap_write_support/tags" 78 | echo "Create release on github from tag on https://github.com/nextcloud-releases/ldap_write_support/tags" 79 | -------------------------------------------------------------------------------- /src/components/AdminSettings.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 |