mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Delete the user along its data
This commit is contained in:
@ -15,7 +15,7 @@ import docspell.backend.PasswordCrypt
|
||||
import docspell.backend.ops.OCollective._
|
||||
import docspell.common._
|
||||
import docspell.store.UpdateResult
|
||||
import docspell.store.queries.QCollective
|
||||
import docspell.store.queries.{QCollective, QUser}
|
||||
import docspell.store.queue.JobQueue
|
||||
import docspell.store.records._
|
||||
import docspell.store.usertask.{UserTask, UserTaskScope, UserTaskStore}
|
||||
@ -37,7 +37,11 @@ trait OCollective[F[_]] {
|
||||
|
||||
def update(s: RUser): F[AddResult]
|
||||
|
||||
def deleteUser(login: Ident, collective: Ident): F[AddResult]
|
||||
/** Deletes the user and all its data. */
|
||||
def deleteUser(login: Ident, collective: Ident): F[UpdateResult]
|
||||
|
||||
/** Return an excerpt of what would be deleted, when the user is deleted. */
|
||||
def getDeleteUserData(accountId: AccountId): F[DeleteUserData]
|
||||
|
||||
def insights(collective: Ident): F[InsightData]
|
||||
|
||||
@ -91,6 +95,9 @@ object OCollective {
|
||||
type EmptyTrash = REmptyTrashSetting.EmptyTrash
|
||||
val EmptyTrash = REmptyTrashSetting.EmptyTrash
|
||||
|
||||
type DeleteUserData = QUser.UserData
|
||||
val DeleteUserData = QUser.UserData
|
||||
|
||||
sealed trait PassResetResult
|
||||
object PassResetResult {
|
||||
case class Success(newPw: Password) extends PassResetResult
|
||||
@ -215,8 +222,13 @@ object OCollective {
|
||||
def update(s: RUser): F[AddResult] =
|
||||
store.add(RUser.update(s), RUser.exists(s.login))
|
||||
|
||||
def deleteUser(login: Ident, collective: Ident): F[AddResult] =
|
||||
store.transact(RUser.delete(login, collective)).attempt.map(AddResult.fromUpdate)
|
||||
def getDeleteUserData(accountId: AccountId): F[DeleteUserData] =
|
||||
store.transact(QUser.getUserData(accountId))
|
||||
|
||||
def deleteUser(login: Ident, collective: Ident): F[UpdateResult] =
|
||||
UpdateResult.fromUpdate(
|
||||
store.transact(QUser.deleteUserAndData(AccountId(collective, login)))
|
||||
)
|
||||
|
||||
def insights(collective: Ident): F[InsightData] =
|
||||
store.transact(QCollective.getInsights(collective))
|
||||
|
Reference in New Issue
Block a user