Commit Graph

131 Commits

Author SHA1 Message Date
Ralf Haferkamp
6d5637ad79 graph: Move LDAP groups related code to a separate file 2023-01-12 17:37:10 +01:00
Daniël Franke
b0cd8779a7 Consistently add user attributes to AddRequest (#5392)
To make the `CreateUser` flow easier to test, the attributes of the
LDAP add request need to be added consistently. This way we can
expect that argument with the mock.

This PR does the following:

* Add a method `getUserAttrTypes` that returns a static list of attr names.
* Alter `userToAddRequest` to iterate over the static list, and add the attr
  if it exists in the `attrMap`.

Closes #5390
2023-01-12 17:25:43 +01:00
Jörn Friedrich Dreyer
078698fdf4 graph: add appRoleAssignments and minimal application resource (#5318)
* bump libregraph-go lib

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* add appRoleAssignment stubs

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* add get application stub

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* fetch appRoles for application from settings service

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* initial list appRoleAssignments implementation

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* initial create appRoleAssignment implementation, extract assignmentToAppRoleAssignment, configurable app id and displayname

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* initial delete appRoleAssignment implementation, changed error handling and logging

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* initial expand appRoleAssignment on users

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* test user expand appRoleAssignment

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* test appRoleAssignment

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* fix education test by actually using the mocked roleManager

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* test getapplication

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* list assignments

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* use common not exists error handling

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* default to just 'ownCloud Infinite Scale' as application name

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* fix store_test

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* roll application uuid on init

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* fix tests

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* extract method

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>

* Apply suggestions from code review

Co-authored-by: Michael Barz <mbarz@owncloud.com>

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
Co-authored-by: Michael Barz <mbarz@owncloud.com>
2023-01-12 16:09:34 +01:00
Daniël Franke
ddb0933033 Display surname and givenName attributes.
This PR makes it so that givenName and surname attributes are returned for users.

Fixes #5386
2023-01-12 15:01:14 +01:00
Daniël Franke
8055996874 Test CreateUser (#5382)
This tests the CreateUser functions.

Fixes #5375
2023-01-12 09:42:05 +01:00
Ralf Haferkamp
709ef1ffca graph:Add stubs for education/classes endpoints (#5360)
* Renamed files for consistency reasons

err_school.go implements the full education interface not just schools.
ldap_school.go renamed to ldap_education_school.go for making it
consistent with ldap_education_user.go

* graph: Add stubs for education/classes endpoints

The acutal backend implementations are still empty.
2023-01-11 20:38:18 +01:00
Daniël Franke
f7aff26636 Merge pull request #5370 from owncloud/ainmosni/issue/5210
Support givenName graph attribute.
2023-01-11 14:32:13 +01:00
Daniel Swärd
e1ad437d9e Fix problem with non-public error type because of forgotten rebase. 2023-01-11 12:14:54 +01:00
Daniel Swärd
e15b3cd8cc Adding so education PATCH updates school name or number. 2023-01-11 12:14:54 +01:00
Jörn Friedrich Dreyer
b9a4d0c8f7 Update services/graph/pkg/identity/ldap.go 2023-01-11 10:15:26 +01:00
Florian Schade
95023f2adc mute newService err in tests (#5372) 2023-01-10 17:11:30 +01:00
Florian Schade
bb1540fc45 [full-ci] add identitySet displayName property to the group and user sets (#5347)
* add identitySet displayName property to the group and user sets
2023-01-10 15:42:13 +01:00
Daniël Franke
5409a38549 Support givenName graph attribute.
This sets the LDAP `givenname` attribute when the libe-graph `givenName`
attribute exists.

Fixes #5210
2023-01-10 12:48:26 +01:00
Daniël Franke
43a98c0485 Add test for new configurable patch limit.
Also make test for old default match on the actual error message.
2023-01-10 11:45:24 +01:00
Daniël Franke
425ebb8084 Change naming 2023-01-10 11:45:24 +01:00
Daniël Franke
49d71ea111 Make amount of users in patch configurable.
This PR changes the following:

* Create an API config section for API configurables.
* Add a setting `UserPatchLimit` that controls how many users can be changed in a PATCH request.
* Use this setting in the API to limit the amount of users that can be changed.
2023-01-10 11:45:24 +01:00
Ralf Haferkamp
4717248959 Simplify sort code a bit
Switch to sort.Slice() instead of sort.Sort(), which requires less
boilerplate.
2023-01-10 09:31:40 +01:00
Daniël Franke
f3924ca8c2 Disassociate users from schools on school delete. (#5343)
* Disassociate users from schools on school delete.

This PR alters the `DeleteEducationSchool` to also disassociate the
users that were associated with the to-be-deleted school.

* Add changelog.

* Remove punctuation from changelog.

* Remove redundant return statement.

* Skip when user not find.
2023-01-06 12:58:32 +01:00
Daniël Franke
aff568d0b8 Make identity errors public. (#5353)
This makes the identity errors public so other packages can match on them.

It also moves them to the same file as the interface, as that makes them more discoverable.
2023-01-06 12:04:38 +01:00
Daniel Swärd
a0e85386a4 Fixing linting error. 2023-01-05 11:42:39 +01:00
Daniel Swärd
80b8ce42f6 Update GetEducationSchoolUsers, AddUsersToEducationSchool, RemoveUserFromEducationSchool with schoolNumber. 2023-01-05 11:42:39 +01:00
Daniel Swärd
e0c6aa5c34 Modify DeleteEducationSchool for schoolNumber/id and remove old test 2023-01-05 11:42:39 +01:00
Daniel Swärd
3daf2c50b8 Modify GetEducationSchool to accept schoolNumber as well as id 2023-01-05 11:42:39 +01:00
Florian Schade
21797fb22d [full-ci] Bump libre-graph-api-go and drive group permissions (#5312)
* Bump libre-graph-api-go
Expose drive group permissions

Co-authored-by: kobergj <jkoberg@owncloud.com>
2022-12-30 17:23:56 +01:00
jkoberg
482e4a26c9 fix graph unit tests
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2022-12-29 11:06:53 +01:00
Florian Schade
8db120c39a bump libre-graph-go 2022-12-29 10:30:22 +01:00
jkoberg
837eff9017 adjust for tags pkg
Signed-off-by: jkoberg <jkoberg@owncloud.com>

tmp

Signed-off-by: jkoberg <jkoberg@owncloud.com>
2022-12-23 10:55:57 +01:00
Ralf Haferkamp
f1e0230664 Fix linter issue 2022-12-22 17:03:37 +01:00
Ralf Haferkamp
255d42eb05 Add support for listing users assigned to a school 2022-12-22 17:03:37 +01:00
Ralf Haferkamp
77ea95535e Add support for removing users from schools 2022-12-22 17:03:37 +01:00
Ralf Haferkamp
5095b35822 Fix naming of school membership endpoints
It's /education/school/{id}/users not members
2022-12-22 17:03:37 +01:00
Ralf Haferkamp
336f128e71 Add support for assigning education users to schools 2022-12-22 17:03:37 +01:00
Ralf Haferkamp
80a2c72491 graph: Initial LDAP support for /education/users
This implements GetEducationUser, GetEducationUsers, DeleteEducationUser and
CreateEducationUser methods for the LDAP backend. It's still very basic and
no fancy filtering or expanding is there yet.
2022-12-22 17:03:37 +01:00
Ralf Haferkamp
b42bf80d0e graph: Rename noop backend to ErrEducationBackend 2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
c3c851286f fix comment
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
cd23d010a4 correct naming of education backend methods
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
8967556b9d correct EducationSchool naming
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
5a1d3ebe82 config and logging fixes
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
8babace4b6 add comments for linter
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
57fd00d238 handle /education/user
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Ralf Haferkamp
962ae09bf1 LDAP support for GetSchools 2022-12-21 15:38:14 +01:00
Ralf Haferkamp
644d96e7ad LDAP support for GetSchool 2022-12-21 15:38:14 +01:00
Ralf Haferkamp
bc9f81cc23 LDAP Support for Delete School 2022-12-21 15:38:14 +01:00
Ralf Haferkamp
ad1355d032 Implement LDAP backend for CreateSchool 2022-12-21 15:38:14 +01:00
Ralf Haferkamp
b302af88f6 Add basic config setting for LDAP education backend
require LDAP support for Education resources to be explicitly enabled.
Default to a NOOP implementation if disabled.
2022-12-21 15:38:14 +01:00
Ralf Haferkamp
795bc70546 Add a more explict filter to DN based lookups
To make sure to read the right type of object
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
e1123576f3 disable school events
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
Jörn Friedrich Dreyer
9844f5f8ce initial schools API
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2022-12-21 15:38:14 +01:00
David Christofas
39917330f6 fix goconst bugs 2022-12-21 14:46:01 +01:00
jkoberg
b29ffeb3a9 use stream pkg instead server pkg
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2022-12-20 09:53:11 +01:00