mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-04-07 06:39:32 +00:00
Show user shares when asking to delete user
This commit is contained in:
parent
2ac0b84e52
commit
6696aba481
modules
restapi/src/main/resources
restserver/src/main/scala/docspell/restserver/routes
store/src/main/scala/docspell/store/queries
webapp/src/main/elm
@ -4554,6 +4554,7 @@ components:
|
||||
required:
|
||||
- folders
|
||||
- sentMails
|
||||
- shares
|
||||
properties:
|
||||
folders:
|
||||
type: array
|
||||
@ -4563,6 +4564,9 @@ components:
|
||||
sentMails:
|
||||
type: integer
|
||||
format: int32
|
||||
shares:
|
||||
type: integer
|
||||
format: int32
|
||||
|
||||
SecondFactor:
|
||||
description: |
|
||||
|
@ -72,7 +72,9 @@ object UserRoutes {
|
||||
data <- backend.collective.getDeleteUserData(
|
||||
AccountId(user.account.collective, username)
|
||||
)
|
||||
resp <- Ok(DeleteUserData(data.ownedFolders.map(_.id), data.sentMails))
|
||||
resp <- Ok(
|
||||
DeleteUserData(data.ownedFolders.map(_.id), data.sentMails, data.shares)
|
||||
)
|
||||
} yield resp
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ object QUser {
|
||||
|
||||
final case class UserData(
|
||||
ownedFolders: List[Ident],
|
||||
sentMails: Int
|
||||
sentMails: Int,
|
||||
shares: Int
|
||||
)
|
||||
|
||||
def getUserData(accountId: AccountId): ConnectionIO[UserData] = {
|
||||
@ -28,6 +29,7 @@ object QUser {
|
||||
val mail = RSentMail.as("m")
|
||||
val mitem = RSentMailItem.as("mi")
|
||||
val user = RUser.as("u")
|
||||
val share = RShare.as("s")
|
||||
|
||||
for {
|
||||
uid <- loadUserId(accountId).map(_.getOrElse(Ident.unsafe("")))
|
||||
@ -43,7 +45,13 @@ object QUser {
|
||||
.innerJoin(user, user.uid === mail.uid),
|
||||
user.login === accountId.user && user.cid === accountId.collective
|
||||
).query[Int].unique
|
||||
} yield UserData(folders, mails)
|
||||
shares <- run(
|
||||
select(count(share.id)),
|
||||
from(share)
|
||||
.innerJoin(user, user.uid === share.userId),
|
||||
user.login === accountId.user && user.cid === accountId.collective
|
||||
).query[Int].unique
|
||||
} yield UserData(folders, mails, shares)
|
||||
}
|
||||
|
||||
def deleteUserAndData(accountId: AccountId): ConnectionIO[Int] =
|
||||
|
@ -295,7 +295,7 @@ renderDeleteConfirm texts settings model =
|
||||
DimmerUserData data ->
|
||||
let
|
||||
empty =
|
||||
List.isEmpty data.folders && data.sentMails == 0
|
||||
List.isEmpty data.folders && data.sentMails == 0 && data.shares == 0
|
||||
|
||||
folderNames =
|
||||
String.join ", " data.folders
|
||||
@ -312,16 +312,20 @@ renderDeleteConfirm texts settings model =
|
||||
[ div []
|
||||
[ text texts.reallyDeleteUser
|
||||
, text " "
|
||||
, text "The following data will be deleted:"
|
||||
, text (texts.deleteFollowingData ++ ":")
|
||||
]
|
||||
, ul [ class "list-inside list-disc" ]
|
||||
[ li [ classList [ ( "hidden", List.isEmpty data.folders ) ] ]
|
||||
[ text "Folders: "
|
||||
[ text (texts.folders ++ ": ")
|
||||
, text folderNames
|
||||
]
|
||||
, li [ classList [ ( "hidden", data.sentMails == 0 ) ] ]
|
||||
[ text (String.fromInt data.sentMails)
|
||||
, text " sent mails"
|
||||
, text (" " ++ texts.sentMails)
|
||||
]
|
||||
, li [ classList [ ( "hidden", data.shares == 0 ) ] ]
|
||||
[ text (String.fromInt data.shares)
|
||||
, text (" " ++ texts.shares)
|
||||
]
|
||||
]
|
||||
]
|
||||
|
@ -31,6 +31,10 @@ type alias Texts =
|
||||
, deleteThisUser : String
|
||||
, pleaseCorrectErrors : String
|
||||
, notDeleteCurrentUser : String
|
||||
, folders : String
|
||||
, sentMails : String
|
||||
, shares : String
|
||||
, deleteFollowingData : String
|
||||
}
|
||||
|
||||
|
||||
@ -48,6 +52,10 @@ gb =
|
||||
, deleteThisUser = "Delete this user"
|
||||
, pleaseCorrectErrors = "Please correct the errors in the form."
|
||||
, notDeleteCurrentUser = "You can't delete the user you are currently logged in with."
|
||||
, folders = "Folders"
|
||||
, sentMails = "sent mails"
|
||||
, shares = "shares"
|
||||
, deleteFollowingData = "The following data will be deleted"
|
||||
}
|
||||
|
||||
|
||||
@ -65,4 +73,8 @@ de =
|
||||
, deleteThisUser = "Benutzer löschen"
|
||||
, pleaseCorrectErrors = "Bitte korrigiere die Fehler im Formular."
|
||||
, notDeleteCurrentUser = "Der aktuelle Benutzer kann nicht gelöscht werden."
|
||||
, folders = "Ordner"
|
||||
, sentMails = "gesendete E-Mails"
|
||||
, shares = "Freigaben"
|
||||
, deleteFollowingData = "Die folgenden Daten werden auch gelöscht"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user