123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- # SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- # SPDX-License-Identifier: AGPL-3.0-or-later
- Feature: LDAP
- Background:
- Given using api version "2"
- And having a valid LDAP configuration
- And modify LDAP configuration
- | ldapExpertUsernameAttr | uid |
- Scenario: Look for a expected LDAP users
- Given As an "admin"
- And sending "GET" to "/cloud/users"
- Then the OCS status code should be "200"
- And the "users" result should match
- | alice | 1 |
- | elisa | 1 |
- | ghost | 0 |
- Scenario: check default home of an LDAP user
- Given As an "admin"
- And sending "GET" to "/cloud/users/alice"
- Then the OCS status code should be "200"
- And the record's fields should match
- | storageLocation | /dev/shm/nc_int/alice |
- Scenario: check custom relative home of an LDAP user
- Given modify LDAP configuration
- | homeFolderNamingRule | sn |
- And As an "admin"
- And sending "GET" to "/cloud/users/alice"
- Then the OCS status code should be "200"
- And the record's fields should match
- | storageLocation | /dev/shm/nc_int/Alfgeirdottir |
- Scenario: check custom absolute home of an LDAP user
- Given modify LDAP configuration
- | homeFolderNamingRule | roomNumber |
- And As an "admin"
- And sending "GET" to "/cloud/users/elisa"
- Then the OCS status code should be "200"
- And the record's fields should match
- | storageLocation | /dev/shm/elisa-data |
- Scenario: Fetch all users, invoking pagination
- Given modify LDAP configuration
- | ldapBaseUsers | ou=PagingTest,dc=nextcloud,dc=ci |
- | ldapPagingSize | 2 |
- And As an "admin"
- And sending "GET" to "/cloud/users"
- Then the OCS status code should be "200"
- And the "users" result should match
- | ebba | 1 |
- | eindis | 1 |
- | fjolnir | 1 |
- | gunna | 1 |
- | juliana | 1 |
- | leo | 1 |
- | stigur | 1 |
- Scenario: Fetch all users, invoking pagination
- Given modify LDAP configuration
- | ldapBaseUsers | ou=PagingTest,dc=nextcloud,dc=ci |
- | ldapPagingSize | 2 |
- And As an "admin"
- And sending "GET" to "/cloud/users?limit=10"
- Then the OCS status code should be "200"
- And the "users" result should match
- | ebba | 1 |
- | eindis | 1 |
- | fjolnir | 1 |
- | gunna | 1 |
- | juliana | 1 |
- | leo | 1 |
- | stigur | 1 |
- Scenario: Fetch from second batch of all users, invoking pagination
- Given modify LDAP configuration
- | ldapBaseUsers | ou=PagingTest,dc=nextcloud,dc=ci |
- | ldapPagingSize | 2 |
- And As an "admin"
- And sending "GET" to "/cloud/users?limit=10&offset=2"
- Then the OCS status code should be "200"
- And the "users" result should contain "5" of
- | ebba |
- | eindis |
- | fjolnir |
- | gunna |
- | juliana |
- | leo |
- | stigur |
- Scenario: Fetch from second batch of all users, invoking pagination with two bases
- Given modify LDAP configuration
- | ldapBaseUsers | ou=PagingTest,dc=nextcloud,dc=ci;ou=PagingTestSecondBase,dc=nextcloud,dc=ci |
- | ldapPagingSize | 2 |
- And As an "admin"
- And sending "GET" to "/cloud/users?limit=10&offset=2"
- Then the OCS status code should be "200"
- And the "users" result should contain "5" of
- | ebba |
- | eindis |
- | fjolnir |
- | gunna |
- | juliana |
- | leo |
- | stigur |
- And the "users" result should contain "3" of
- | allisha |
- | dogukan |
- | lloyd |
- | priscilla |
- | shannah |
- Scenario: Fetch from second batch of all users, invoking pagination with two bases, third page
- Given modify LDAP configuration
- | ldapBaseUsers | ou=PagingTest,dc=nextcloud,dc=ci;ou=PagingTestSecondBase,dc=nextcloud,dc=ci |
- | ldapPagingSize | 2 |
- And As an "admin"
- And sending "GET" to "/cloud/users?limit=10&offset=4"
- Then the OCS status code should be "200"
- And the "users" result should contain "3" of
- | ebba |
- | eindis |
- | fjolnir |
- | gunna |
- | juliana |
- | leo |
- | stigur |
- And the "users" result should contain "1" of
- | allisha |
- | dogukan |
- | lloyd |
- | priscilla |
- | shannah |
- Scenario: Deleting an unavailable LDAP user
- Given As an "admin"
- And sending "GET" to "/cloud/users"
- And modify LDAP configuration
- | ldapUserFilter | (&(objectclass=inetorgperson)(!(uid=alice))) |
- And invoking occ with "ldap:check-user alice"
- And the command output contains the text "Clean up the user's remnants by"
- And invoking occ with "user:delete alice"
- Then the command output contains the text "The specified user was deleted"
- Scenario: Search only with group members - allowed
- Given modify LDAP configuration
- | ldapGroupFilter | cn=Orcharding |
- | ldapGroupMemberAssocAttr | member |
- | ldapBaseGroups | ou=OtherGroups,dc=nextcloud,dc=ci |
- | ldapAttributesForUserSearch | employeeNumber |
- | useMemberOfToDetectMembership | 1 |
- And parameter "shareapi_only_share_with_group_members" of app "core" is set to "yes"
- And As an "alice"
- When getting sharees for
- # "5" is part of the employee number of some LDAP records
- | search | 5 |
- | itemType | file |
- Then the OCS status code should be "200"
- And the HTTP status code should be "200"
- And "exact users" sharees returned is empty
- And "users" sharees returned are
- | Elisa | 0 | elisa |
- And "exact groups" sharees returned is empty
|