Fix deleting users

Can now be deleted by id or login. It was wrongly documented.
This commit is contained in:
eikek 2023-02-01 23:40:29 +01:00
parent b31bd01b84
commit df1526e628
2 changed files with 10 additions and 4 deletions

View File

@ -1584,9 +1584,9 @@ paths:
$ref: "#/components/schemas/BasicResult"
/sec/user/{username}:
delete:
operationId: "sec-user-delete-by-username"
operationId: "sec-user-delete-by-userid-or-login"
tags: [ Collective ]
summary: Delete a user.
summary: Delete a user by its id or login name.
description: |
Deletes a user.
security:

View File

@ -6,6 +6,7 @@
package docspell.restserver.routes
import cats.data.OptionT
import cats.effect._
import cats.implicits._
@ -73,8 +74,13 @@ object UserRoutes {
for {
users <- backend.collective.listUser(user.account.collectiveId)
ar <-
if (users.exists(_.uid == id)) backend.collective.deleteUser(id)
else UpdateResult.notFound.pure[F]
OptionT
.fromOption[F](
users
.find(u => u.uid == id || u.login == id)
)
.semiflatMap(u => backend.collective.deleteUser(u.uid))
.getOrElse(UpdateResult.notFound)
resp <- Ok(basicResult(ar, "User deleted."))
} yield resp