Compare commits

..

31 commits

Author SHA1 Message Date
tflidd
79ae3e9235
Merge pull request #261 from ervee/patch-1
Make NC30 compatible
2025-03-10 17:43:58 +01:00
dependabot[bot]
6d4405ecff
Merge pull request #262 from nextcloud/dependabot/composer/symfony/process-5.4.46 2024-11-06 20:51:23 +00:00
dependabot[bot]
2884c6e749
Bump symfony/process from 5.4.7 to 5.4.46
Bumps [symfony/process](https://github.com/symfony/process) from 5.4.7 to 5.4.46.
- [Release notes](https://github.com/symfony/process/releases)
- [Changelog](https://github.com/symfony/process/blob/7.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/process/compare/v5.4.7...v5.4.46)

---
updated-dependencies:
- dependency-name: symfony/process
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-06 20:47:58 +00:00
Ralf
47e8099502
Make NC30 compatible
Make the app compatible with Nextcloud 30

Signed-off-by: Ralf <ervee@moskovic.org>
2024-10-28 20:18:45 +01:00
Joas Schilling
412e397069
Merge pull request #258 from nextcloud/ci/noid/update-workflow-109
ci: Update workflows
2024-09-10 11:48:12 +02:00
Joas Schilling
8b18c65014
ci: Update workflows
[skip-ci]

Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-09-10 11:47:58 +02:00
Andy Scherzinger
514a7c5ed3
Merge pull request #257 from nextcloud/feat/workflow-auto-update-dependabot-approve-merge.yml
chore(CI): Updating dependabot-approve-merge.yml workflow from template
2024-09-02 16:15:09 +02:00
Nextcloud bot
6eb024359c chore(CI): Updating dependabot-approve-merge.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-09-02 10:59:35 +00:00
Jonas Sulzer
06bef5554d
Merge pull request #256 from nextcloud/rlz/3.4.0
🚀 RELEASE: v3.4.0
2024-07-28 10:34:04 +02:00
Jonas Sulzer
5b70ef00bb
Merge pull request #249 from nextcloud/fix/user-count
🐛 FIX: wrong user count
2024-07-28 10:33:01 +02:00
Jonas Sulzer
955c884a6b
🚀 RELEASE: v3.4.0
Signed-off-by: Jonas Sulzer <jonas@violoncello.ch>
2024-07-25 14:03:30 +02:00
Jonas Sulzer
a3da95fdaf
Merge pull request #255 from nextcloud/automated/update-workflows/default
chore: update workflows from templates
2024-07-21 17:06:48 +02:00
skjnldsv
7b92009000 chore: update workflows from templates
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-13 12:17:28 +02:00
Jonas Sulzer
3d850aa615
Merge pull request #251 from nextcloud/feat/workflow-auto-update-dependabot-approve-merge.yml
Updating dependabot-approve-merge.yml workflow from template
2024-04-27 08:16:07 +02:00
Nextcloud bot
3777fe3331 Updating dependabot-approve-merge.yml workflow from template
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-26 18:17:26 +00:00
Jonas Sulzer
b27d85a783
Merge pull request #228 from BjoKaSH/imap_log_failure_reason
Distinguish wrong credentials from other problems (IMAP)
2024-04-02 11:35:38 +02:00
Jonas Sulzer
e45b03e5b8
Merge pull request #221 from jensb/patch-1
Update README.md, add warning about fail2ban-like tools
2024-04-02 11:31:01 +02:00
Jonas Sulzer
f1430569ce
Merge pull request #229 from BjoKaSH/fix_imap_out_of_bound
Fix out-of-bound array access (IMAP)
2024-04-02 11:29:44 +02:00
Jonas Sulzer
6186795698
Merge pull request #242 from nextcloud/automated/update-workflows/default
chore: update workflows from templates
2024-04-02 11:09:40 +02:00
Jonas Sulzer
af6bf33e57
Merge pull request #248 from nextcloud/rlz/3.3.0
🚀 RELEASE: v3.3.0
2024-04-02 10:29:03 +02:00
Jonas Sulzer
0ea46a1730
🐛 FIX: wrong user count
Signed-off-by: Jonas Sulzer <jonas@violoncello.ch>
2024-03-30 01:25:04 +01:00
Jonas Sulzer
285a810b88
👌 IMPROVE: rephrase recommendation about bruteforce protection
Signed-off-by: Jonas Sulzer <jonas@violoncello.ch>
2024-03-30 00:13:15 +01:00
Jonas Sulzer
ada0fbcf52
🚀 RELEASE: v3.3.0
Signed-off-by: Jonas Sulzer <jonas@violoncello.ch>
2024-03-30 00:02:27 +01:00
skjnldsv
09dba5689e chore: update workflows from templates
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-03-08 22:02:25 +01:00
Côme Chilliet
d0e609438e
Merge pull request #238 from pierrecorsini/patch-1
Wrong class name corrected with : `\OCA\UserExternal\WebDavAuth' inst…
2024-02-29 10:07:03 +01:00
John Molakvoæ
320c90ce89
Merge pull request #241 from Glandos/patch-1 2024-02-28 11:18:07 +01:00
Glandos
430a0e6384
Add support for NC 28
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-12-22 12:52:40 +01:00
Bjoern Kahl
69483900d1 Distinguish wrong credentials from other problems (IMAP)
Verifying login data can fail for a number of reasons like temporary
connection failure to the IMAP server, Internal problems of the IMAP
server, or actually wrong username / password combination.

This change logs the reason for login failures, helping server admins to
diagnose login problems and better support their users.

Ideally, we would have an option to pass the reason upwards, so the
NextCloud login system can show appropriate errors to users attempting
to login.

Signed-off-by: Bjoern Kahl <mls@bjoern-kahl.de>
2023-11-25 21:49:19 +01:00
Bjoern Kahl
8fd2a5d06a Fix out-of-bound array access (IMAP)
The IMAP method allows user names with or without a domain part.  For
user names without a domain part, it still tries to access the (then
non-existing) domain, resulting in "Error: Undefined array key 1 at
.../nextcloud/apps/user_external/lib/IMAP.php#85" log messages.

Signed-off-by: Bjoern Kahl <mls@bjoern-kahl.de>
2023-11-25 21:46:26 +01:00
Pierre CORSINI
1aa72d73bc
Wrong class name corrected with : \OCA\UserExternal\WebDavAuth' instead of WebDAVAuth`
Signed-off-by: Pierre CORSINI <50719398+pierrecorsini@users.noreply.github.com>
2023-10-01 22:59:27 +01:00
jensb
f30f950b57
Update README.md, add warning about fail2ban-like tools
Signed-off-by: jensb <jens-github@spamfreemail.de>
2023-03-14 18:59:52 +01:00
13 changed files with 144 additions and 125 deletions

View file

@ -2,6 +2,9 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Build and publish app release
@ -9,9 +12,6 @@ on:
release:
types: [published]
env:
PHP_VERSION: 8.1
jobs:
build_and_publish:
runs-on: ubuntu-latest
@ -21,7 +21,7 @@ jobs:
steps:
- name: Check actor permission
uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2.1
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
with:
require: write
@ -32,7 +32,7 @@ jobs:
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
path: ${{ env.APP_NAME }}
@ -44,38 +44,44 @@ jobs:
expression: "//info//dependencies//nextcloud/@min-version"
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
# Continue if no package.json
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
fallbackNode: "^16"
fallbackNpm: "^7"
fallbackNode: '^20'
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.npmVersion }}
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
- name: Get php version
id: php-versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
with:
php-version: ${{ env.PHP_VERSION }}
filename: ${{ env.APP_NAME }}/appinfo/info.xml
- name: Set up php ${{ steps.php-versions.outputs.php-min }}
uses: shivammathur/setup-php@2e947f1f6932d141d076ca441d0e1e881775e95b # v2.31.0
with:
php-version: ${{ steps.php-versions.outputs.php-min }}
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check composer.json
id: check_composer
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: "${{ env.APP_NAME }}/composer.json"
@ -88,14 +94,16 @@ jobs:
- name: Build ${{ env.APP_NAME }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
env:
NODE_ENV: production
run: |
cd ${{ env.APP_NAME }}
npm ci
npm run build
npm run build --if-present
- name: Check Krankerl config
id: krankerl
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: ${{ env.APP_NAME }}/krankerl.toml
@ -121,12 +129,12 @@ jobs:
continue-on-error: true
id: server-checkout
run: |
NCVERSION=${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
unzip latest-$NCVERSION.zip
- name: Checkout server master fallback
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
submodules: true
@ -140,7 +148,7 @@ jobs:
tar -xvf ${{ env.APP_NAME }}.tar.gz
cd ../../../
# Setting up keys
echo "${{ secrets.APP_PRIVATE_KEY }}" > ${{ env.APP_NAME }}.key
echo '${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key
wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
# Signing
php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
@ -149,7 +157,7 @@ jobs:
tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
- name: Attach tarball to github release
uses: svenstaro/upload-release-action@2b9d2847a97b04d02ad5c3df2d3a27baa97ce689 # v2
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
id: attach_to_release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,51 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Rebase command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "-1"

View file

@ -2,6 +2,9 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Dependabot
@ -21,14 +24,20 @@ concurrency:
jobs:
auto-approve-merge:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]' || github.actor == 'renovate[bot]'
runs-on: ubuntu-latest-low
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
steps:
# Github actions bot approve
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not approve PRs from forks'
exit 1
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -2,6 +2,9 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Block fixup and squash commits
@ -24,10 +27,10 @@ jobs:
pull-requests: write
name: Block fixup and squash commits
runs-on: ubuntu-latest
runs-on: ubuntu-latest-low
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -2,16 +2,13 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint info.xml
on:
pull_request:
push:
branches:
- main
- master
- stable*
on: pull_request
permissions:
contents: read
@ -22,18 +19,18 @@ concurrency:
jobs:
xml-linters:
runs-on: ubuntu-latest
runs-on: ubuntu-latest-low
name: info.xml lint
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Download schema
run: wget https://raw.githubusercontent.com/nextcloud/appstore/master/nextcloudappstore/api/v1/release/info.xsd
- name: Lint info.xml
uses: ChristophWurst/xmllint-action@39155a91429af431d65fafc21fa52ba5c4f5cb71 # v1.1
uses: ChristophWurst/xmllint-action@36f2a302f84f8c83fceea0b9c59e1eb4a616d3c1 # v1.2
with:
xml-file: ./appinfo/info.xml
xml-schema-file: ./info.xsd

View file

@ -2,6 +2,9 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint php-cs
@ -22,12 +25,17 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up php
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
- name: Set up php${{ steps.versions.outputs.php-available }}
uses: shivammathur/setup-php@2e947f1f6932d141d076ca441d0e1e881775e95b # v2.31.0
with:
php-version: 8.1
php-version: ${{ steps.versions.outputs.php-available }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:

View file

@ -2,16 +2,13 @@
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Lint php
on:
pull_request:
push:
branches:
- main
- master
- stable*
on: pull_request
permissions:
contents: read
@ -21,22 +18,35 @@ concurrency:
cancel-in-progress: true
jobs:
matrix:
runs-on: ubuntu-latest-low
outputs:
php-versions: ${{ steps.versions.outputs.php-versions }}
steps:
- name: Checkout app
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
php-lint:
runs-on: ubuntu-latest
needs: matrix
strategy:
matrix:
php-versions: [ "8.0", "8.1", "8.2" ]
php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}}
name: php-lint
steps:
- name: Checkout
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
uses: shivammathur/setup-php@2e947f1f6932d141d076ca441d0e1e881775e95b # v2.31.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
@ -48,7 +58,7 @@ jobs:
summary:
permissions:
contents: none
runs-on: ubuntu-latest
runs-on: ubuntu-latest-low
needs: php-lint
if: always()

View file

@ -4,6 +4,22 @@ Starting from v3.0.0, all notable changes to this project will be documented in
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [3.4.0] -
- Fix out-of-bound array access in IMAP backend
[#229](https://github.com/nextcloud/user_external/pull/229) @BjoKaSH
- Distinguish wrong credentials from other problems in logging output for IMAP backend
[#228](https://github.com/nextcloud/user_external/pull/228) @BjoKaSH
- 🐛 FIX: wrong user count
[#249](https://github.com/nextcloud/user_external/pull/249)
- Make compatible with Nextcloud 29
[#256](https://github.com/nextcloud/user_external/pull/256)
## [3.3.0] - 2024-03-30
- Fix wrong capitalisation of `WebDavAuth` class name in readme
[#238](https://github.com/nextcloud/user_external/pull/238) @pierrecorsini
- Mark compatible with Nextcloud 28
[#241](https://github.com/nextcloud/user_external/pull/241) @Glandos
## [3.2.0] - 2023-06-13
- Fix IMAP authentication on empty mailboxes
[#164](https://github.com/nextcloud/user_external/pull/164) @tem-hth

View file

@ -18,6 +18,8 @@ If something does not work, check the log file at `nextcloud/data/nextcloud.log`
**⚠⚠ Warning:** If you are using more than one backend or especially one backend more often than once, make sure that you still have resp. get unique `uid`s in the database. ⚠⚠
**⚠⚠ Warning:** If you are using tools like fail2ban (https://www.fail2ban.org) to protect your authentication source (e.g. IMAP server), be sure to disable it for the host that runs `user_external`. Otherwise a single user failing to login too many times can practically DoS your whole Nextcloud installation because `fail2ban` will then block the Nextcloud IP address. ⚠⚠
Instead, make sure the bruteforce protection app for Nextcloud is installed and configured correctly.
FTP
---
@ -131,7 +133,7 @@ Add the following to your `config.php`:
'user_backends' => array(
array(
'class' => '\OCA\UserExternal\WebDAVAuth',
'class' => '\OCA\UserExternal\WebDavAuth',
'arguments' => array('https://example.com/webdav'),
),
),

View file

@ -16,7 +16,7 @@
Read the [documentation](https://github.com/nextcloud/user_external#readme) to learn how to configure it!
]]></description>
<version>3.2.0</version>
<version>3.5.0</version>
<licence>agpl</licence>
<author>Robin Appelman</author>
<namespace>UserExternal</namespace>
@ -33,6 +33,6 @@ Read the [documentation](https://github.com/nextcloud/user_external#readme) to l
<bugs>https://github.com/nextcloud/user_external/issues</bugs>
<repository type="git">https://github.com/nextcloud/user_external.git</repository>
<dependencies>
<nextcloud min-version="25" max-version="27" />
<nextcloud min-version="25" max-version="30" />
</dependencies>
</info>

31
composer.lock generated
View file

@ -3707,26 +3707,23 @@
},
{
"name": "symfony/polyfill-php80",
"version": "v1.25.0",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c"
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c",
"reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": ">=7.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -3770,7 +3767,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0"
"source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
},
"funding": [
{
@ -3786,7 +3783,7 @@
"type": "tidelift"
}
],
"time": "2022-03-04T08:16:47+00:00"
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php81",
@ -3869,16 +3866,16 @@
},
{
"name": "symfony/process",
"version": "v5.4.7",
"version": "v5.4.46",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb"
"reference": "01906871cb9b5e3cf872863b91aba4ec9767daf4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/38a44b2517b470a436e1c944bf9b9ba3961137fb",
"reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb",
"url": "https://api.github.com/repos/symfony/process/zipball/01906871cb9b5e3cf872863b91aba4ec9767daf4",
"reference": "01906871cb9b5e3cf872863b91aba4ec9767daf4",
"shasum": ""
},
"require": {
@ -3911,7 +3908,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v5.4.7"
"source": "https://github.com/symfony/process/tree/v5.4.46"
},
"funding": [
{
@ -3927,7 +3924,7 @@
"type": "tidelift"
}
],
"time": "2022-03-18T16:18:52+00:00"
"time": "2024-11-06T09:18:28+00:00"
},
{
"name": "symfony/service-contracts",
@ -4279,5 +4276,5 @@
"platform-overrides": {
"php": "7.3"
},
"plugin-api-version": "2.3.0"
"plugin-api-version": "2.6.0"
}

View file

@ -216,7 +216,7 @@ abstract class Base extends \OC\User\Backend {
/**
* Count the number of users.
*
* @return int|bool The number of users on success false on failure
* @return int the number of users
*/
public function countUsers() {
$connection = \OC::$server->getDatabaseConnection();
@ -228,6 +228,6 @@ abstract class Base extends \OC\User\Backend {
$users = $result->fetchColumn();
$result->closeCursor();
return $users > 0;
return $users;
}
}

View file

@ -82,7 +82,7 @@ class IMAP extends Base {
}
$groups = [];
if ($this->groupDomain && $pieces[1]) {
if ((count($pieces) > 1) && $this->groupDomain && $pieces[1]) {
$groups[] = $pieces[1];
}
@ -106,9 +106,29 @@ class IMAP extends Base {
$uid = mb_strtolower($uid);
$this->storeUser($uid, $groups);
return $uid;
} elseif ($errorcode === CURLE_COULDNT_CONNECT ||
$errorcode === CURLE_SSL_CONNECT_ERROR ||
$errorcode === 28) {
# This is not defined in PHP-8.x
# 28: CURLE_OPERATION_TIMEDOUT
\OC::$server->getLogger()->error(
'ERROR: Could not connect to imap server via curl: ' . curl_strerror($errorcode),
['app' => 'user_external']
);
} elseif ($errorcode === 9 ||
$errorcode === 67 ||
$errorcode === 94) {
# These are not defined in PHP-8.x
# 9: CURLE_REMOTE_ACCESS_DENIED
# 67: CURLE_LOGIN_DENIED
# 94: CURLE_AUTH_ERROR)
\OC::$server->getLogger()->error(
'ERROR: IMAP Login failed via curl: ' . curl_strerror($errorcode),
['app' => 'user_external']
);
} else {
\OC::$server->getLogger()->error(
'ERROR: Could not connect to imap server via curl: '.curl_error($ch),
'ERROR: IMAP server returned an error: ' . $errorcode . ' / ' . curl_strerror($errorcode),
['app' => 'user_external']
);
}