summaryrefslogtreecommitdiffstats
path: root/build/integration/openldap_features/openldap-uid-username.feature
diff options
context:
space:
mode:
Diffstat (limited to 'build/integration/openldap_features/openldap-uid-username.feature')
-rw-r--r--build/integration/openldap_features/openldap-uid-username.feature163
1 files changed, 163 insertions, 0 deletions
diff --git a/build/integration/openldap_features/openldap-uid-username.feature b/build/integration/openldap_features/openldap-uid-username.feature
new file mode 100644
index 00000000000..6793273e8c7
--- /dev/null
+++ b/build/integration/openldap_features/openldap-uid-username.feature
@@ -0,0 +1,163 @@
+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
+