Commit Graph

225 Commits

Author SHA1 Message Date
kobergj
3a8b4043e6 Merge pull request #5950 from kobergj/GDPRExport
GDPR Export
2023-03-30 16:56:23 +02:00
jkoberg
e0b07dee70 use correct status code
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-30 14:57:41 +02:00
kobergj
db5c84816b fix typo in graph service
Co-authored-by: Daniël Franke <df@ponc.tech>
2023-03-30 14:17:56 +02:00
Michael Barz
987e13693a Merge pull request #5896 from owncloud/add-groups-by-name-or-id
allow adding group by name or id
2023-03-30 10:57:56 +02:00
jkoberg
e906c9f1ec emit event after finishing data extraction
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-30 10:06:32 +02:00
jkoberg
25d1347a76 create folders if they are not existing
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-30 09:49:56 +02:00
jkoberg
9f5b33f661 use reva gateway client and mocks
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-29 16:06:10 +02:00
jkoberg
ebd730c778 use location from request
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-29 16:02:43 +02:00
jkoberg
442c53f796 add gdpr export endpoint
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-29 16:02:42 +02:00
Daniel Swärd
ab07525602 graph: Allow updating of group name via PATCH request 2023-03-28 13:06:53 +02:00
Dennis Sieben
e28603e633 - fixed typos 2023-03-27 08:54:51 +02:00
Jörn Friedrich Dreyer
6bec87f582 Proxy accesstoken cache store (#5829)
* refactor middleware options

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

* use ocmemstore micro store implementaiton for token cache

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

* refactor ocis store options, support redis sentinel

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

* align cache configuration

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

* database and tabe are used to build prefixes for inmemory stores

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

* add global persistent store options to userlog config

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

* log cache errors but continue

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

* drup unnecessary type conversion

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

* Better description for the default userinfo ttl

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

* use global cache options for even more caches

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

* don't log userinfo cache misses

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

* default to stock memory store

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

* use correct mem store typo string

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

* split cache options, doc cleanup

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

* mint and write userinfo to cache async

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

* use hashed token as key

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

* go mod tidy

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

* update docs

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

* update cache store naming

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

* bring back depreceted ocis-pkg/store package for backwards compatability

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

* update changelog

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

* Apply suggestions from code review

Co-authored-by: kobergj <jkoberg@owncloud.com>

* revert ocis-pkg/cache to store rename

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

* add waiting for each step 50 milliseconds

* starlack check

---------

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
Co-authored-by: kobergj <jkoberg@owncloud.com>
Co-authored-by: Viktor Scharf <scharf.vi@gmail.com>
2023-03-22 15:21:57 +01:00
Daniel Swärd
75870d49ac graph: Hide ldap error on group membership patch. 2023-03-22 11:34:14 +01:00
Jörn Friedrich Dreyer
6b1cea32c4 allow adding group by name or id
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2023-03-21 17:20:41 +01:00
Daniel Swärd
40ab22195d Merge pull request #5836 from owncloud/excds/bugfix/Fix_updating_accountEnabled_for_educationUser
graph: Fix so that accountEnabled updates work for educationUser.
2023-03-21 11:44:53 +01:00
Jörn Friedrich Dreyer
474c4b848d upgrade to go1.20 and auto set go mem limit (#5732)
* upgrade to go1.19 and set go mem limit

* create ocis-pkg memlimit package

* use std automemlimit import

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

* import automemlimit in every ocis service, drop ocis-pkg/memlimit package

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

* bump go to 1.20

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

* drop unused config options and env vars

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

* update all version numbers, add doc

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

* fix lint

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

* update bingo and mockery

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

* bump golangci-lint

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

* fix selector test

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

* Update changelog/unreleased/enhancement-memlimit.md

Co-authored-by: kobergj <juliankoberg@googlemail.com>

---------

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
Co-authored-by: Willy Kloucek <wkloucek@owncloud.com>
Co-authored-by: kobergj <juliankoberg@googlemail.com>
2023-03-20 17:22:02 +01:00
jkoberg
a503ace11f don't check quota permission in graph
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-03-17 12:51:28 +01:00
Daniel Swärd
c765e904df Refactor user update methods to be a bit nicer. 2023-03-17 11:03:38 +01:00
Daniel Swärd
525638588d graph: Fix so that accountEnabled updates work for educationUser. 2023-03-17 10:16:39 +01:00
Ralf Haferkamp
81c0f21f78 graph: Allow to disable the default role assignment on user creation
Introduces a switch ('GRAPH_ASSIGN_DEFAULT_USER_ROLE') to allow to disable the assignment of the default role "User" to newly created users.
This will be used for setups where the role-assignments are populated either manually or during first login (e.g. from OIDC claims)
2023-03-15 15:42:57 +01:00
Ralf Haferkamp
b4b0f7abe7 graph: Skip default role assignment for education/users
For the education/users endpoints the role assignment does not
need to happen when creating a new user.
2023-03-15 15:42:57 +01:00
Daniel Swärd
6327edf574 graph: Change so that educationUsers can be created without email. 2023-03-15 14:43:22 +01:00
Daniel Swärd
6f7bd454b2 Fix so that userType is not returned if not available. 2023-03-15 12:05:29 +01:00
Daniel Swärd
b12b2d2bac Updating env variable description for userType attribute. 2023-03-15 12:05:29 +01:00
Daniel Swärd
23ba180e8a graph: Use userType property to distinguish between Member and Guest accounts
Fixes 5603

- Calling POST /graph/v1.0/users with userType not set will create a user as "Member"
- Calling POST /graph/v1.0/users with userType set as "Member" or "Guest" will create a user as "Member" or "Guest"
- Calling POST /graph/v1.0/users with userType set as anything but "Member" or "Guest" returns error
- Calling POST /graph/v1.0/education/users with userType not set will create a user as "Member"
- Calling POST /graph/v1.0/education/users with userType set as "Member" will create a user as "Member" and primary role as parameter specifies
- Calling POST /graph/v1.0/education/users with userType set as "Guest" will create a user as "Guest" and primary role as parameter specifies
- Calling POST /graph/v1.0/education/users with userType not set as anything but "Member" or "Guest" returns error
- Calling PATCH on /users or /education/users will update attribute in the same way as for POST
2023-03-15 12:05:29 +01:00
Daniel Swärd
6b11f0bfe4 graph: Fix problem with unescaped semicolon and such causing problems. 2023-03-14 15:21:58 +01:00
David Christofas
4c3df7277d return the correct status code when updating a share fails 2023-03-09 14:07:05 +01:00
Ralf Haferkamp
d133a8e4b2 graph: Add missing patch support for education/users (#5772)
* graph: Allow updating "surname" and "givenName" of users

Also use attribute getters to lookup the attribute Values instead of fiddling around
with pointers.

* graph: Allow updating education users

Update suppport for education users was still missing.
2023-03-09 07:52:06 +01:00
David Christofas
7750492de4 Merge pull request #5721 from owncloud/clean-up-code
reduce duplication in configuration code
2023-03-07 10:58:33 +01:00
David Christofas
924c2ca346 add missing comments 2023-03-06 19:01:16 +01:00
David Christofas
63fa35fa50 reduce duplication in configuration code 2023-03-06 16:52:44 +01:00
mmattel
f522b912e9 [docs-only] Small description text fixes for envvars 2023-03-06 16:41:58 +01:00
Daniel Swärd
b517a6c3dd Merge pull request #5625 from owncloud/excds/feature/5554_Allow_disabling_user_by_adding_to_local_group
graph: Allow disabling user by adding to local group
2023-03-06 10:31:57 +01:00
Daniel Swärd
c17add76c4 graph: Move token middleware and return proper JSON response on error.
Fixes #5661
2023-03-06 10:24:44 +01:00
Daniel Swärd
ca746106d8 graph: Allow disabling user by adding to local group
* A new config option for disabling users with the options "none", "attribute" and "group".
* When set to "none", there will be no enabledAttribute returned in user info and trying to change enabledAttribute will return an error
* Disable/enable group name DN as config parameter
* Adding/removing users to specified group on user update
* Changing log level for service initialization failure to error
* Adding helper methods to check if user is enabled/disabled + tests

Fixes #5554
2023-03-06 09:31:23 +01:00
Ralf Haferkamp
db752dc5ac graph: Add support for "or" filter on /users
This add support for combining filters on the /users with a logical "or" operation.
E.g. the filter:

"filter=(memberOf/any(m:m/id eq 509a9dcd-bb37-4f4f-a01a-19dca27d9cfa) or memberOf/any(m:m/id eq 262982c1-2362-4afa-bfdf-8cbfef64a06e)"

will return all users that are a member of either of the referenced group.

Closes: #5667
2023-03-02 13:26:00 +01:00
David Christofas
0fadc79c32 make graph/education API errors more consistent 2023-02-28 15:25:45 +01:00
kobergj
e631b74032 Merge pull request #5600 from kobergj/EventHistory
Eventhistory Service
2023-02-21 14:08:01 +01:00
Ralf Haferkamp
1dab0f7a54 graph: Improve appRoleAssignemts filters
This should improve the processing of filters for appRoleAssignments
a bit when combining them with other filters. We try to avoid reading
the full user list if possible. And delay the processing of an
appRoleAssignments filter so we can apply it on a subset of user.

E.g. a filter:

`appRoleAssignments/any(m:m/appRoleId eq 71881883-1768-46bd-a24d-a356a2afdf7f) and memberOf/any(m:m/id eq 509a9dcd-bb37-4f4f-a01a-19dca27d9cfa)`

Will be reordered to first process the memberOf filter (which can be
executed without reading the full user list) and only apply the
appRoleAssignments filter on the resultset of the memberOf filter.
2023-02-21 12:30:59 +01:00
Ralf Haferkamp
1552f6df5a Add support for $filter on appRoleAssignment
This add support for filtering on the `appRoleAssignment` relation of
users.  E.g.

```
$filter=appRoleAssignments/any(m:m/appRoleId eq '262982c1-2362-4afa-bfdf-8cbfef64a06e')
```

combining it with a filter on groupMemberShip does also work:

```
$filter=memberOf/any(m:m/id eq '262982c1-2362-4afa-bfdf-8cbfef64a06e') and appRoleAssignments/any(m:m/appRoleId eq 'd7beeea8-8ff4-406b-8fb6-ab2dd81e6b11')
```

The filter is still very inefficient as it always needs to get the full
users list. We need to adapt it to only filter on a subset of users when
using this filter 'and' combined with other filters.

Closes: #5488
2023-02-21 12:30:59 +01:00
jkoberg
c9dfb778a9 sharpen eventhistory service
Signed-off-by: jkoberg <jkoberg@owncloud.com>
2023-02-21 10:51:32 +01:00
Daniël Franke
3f39bb530e Integrate feedback. 2023-02-20 14:40:10 +01:00
Daniël Franke
bea3ec6207 Add refint support to user rename.
When refint is enabled on an LDAP server, it will rename all references
to an entity if its DN is modified. If this happens, the member
renames will not be needed, and will also return an error.

This PR does the following:

* Detects the attribute error, and don't return an error.
* Log that the server has been misconfigured.
* Add config value that skips renaming if set.
2023-02-20 14:40:10 +01:00
Daniel Swärd
fcf5783a1b graph: Add accountEnabled flag to ldap backend. (#5588)
* graph: Add accountEnabled flag to ldap backend.

* Add missing accountEnabled attribute to user listing.
2023-02-17 13:48:12 +01:00
Daniël Franke
92f4d60a06 Properly generate new DN.
This fixes issue #5581 by properly parsing the old DN and replacing the
first part with the new DN.
2023-02-16 12:41:29 +01:00
Jörn Friedrich Dreyer
92923f6801 Add http endpoint to list permissions (#5571)
* Add http endpoint to list permissions

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

* extract handler registration

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

* use generated protobuf

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

* update permissions mock in graph service

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

* add unit test

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

* return correct userid

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

* assert error message type in tests

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

---------

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2023-02-15 14:24:19 +01:00
Daniël Franke
9bd1551c6b Integrate @rhafer's feedback 2023-02-15 10:06:23 +01:00
Daniël Franke
172807bb69 Add testcase for changing username. 2023-02-15 10:06:23 +01:00
Daniël Franke
bed4a82ff0 Finish working code and most of tests. 2023-02-15 10:06:23 +01:00
Daniël Franke
a51393e5bf Add username changing functionality.
This is an incomplete implementation of username changing code.

The things still needed to be finished:

* The method that changes the member attribute has to be filled in.
* The functionality needs to be tested.
* Unit tests need to be added.
2023-02-15 10:06:23 +01:00