Unverified Commit 25825e3e authored by mvdbeek's avatar mvdbeek
Browse files

Allow purge query param, deprecate purge body param

parent a7af3526
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -9576,9 +9576,11 @@ export interface components {
        UserDeletionPayload: {
            /**
             * Purge user
             * @description Purge the user
             * @deprecated
             * @description Purge the user. Deprecated, please use the `purge` query parameter instead.
             * @default false
             */
            purge: boolean;
            purge?: boolean;
        };
        /** UserEmail */
        UserEmail: {
@@ -18633,6 +18635,10 @@ export interface operations {
    delete_user_api_users__user_id__delete: {
        /** Delete a user. Only admins can delete others or purge users. */
        parameters: {
            /** @description Purge user. Only deleted users can be purged. */
            query?: {
                purge?: boolean;
            };
            /** @description The user ID that will be used to effectively make this API call. Only admins and designated users can make API calls on behalf of other users. */
            header?: {
                "run-as"?: string;
+6 −1
Original line number Diff line number Diff line
@@ -351,7 +351,12 @@ class RemoteUserCreationPayload(Model):


class UserDeletionPayload(Model):
    purge: bool = Field(default=Required, title="Purge user", description="Purge the user")
    purge: bool = Field(
        default=False,
        title="Purge user",
        description="Purge the user. Deprecated, please use the `purge` query parameter instead.",
        deprecated=True,
    )


class FavoriteObject(Model):
+3 −6
Original line number Diff line number Diff line
@@ -135,7 +135,6 @@ RecalculateDiskUsageResponseDescriptions = {
    },
}

UserDeletionBody = Body(default=None, title="Purge user", description="Purge the user.")
UserUpdateBody = Body(default=Required, title="Update user", description="The user values to update.")
FavoriteObjectBody = Body(
    default=Required, title="Set favorite", description="The id of an object the user wants to favorite."
@@ -656,13 +655,11 @@ class FastAPIUsers:
        self,
        trans: ProvidesUserContext = DependsOnTrans,
        user_id: DecodedDatabaseIdField = UserIdPathParamQueryParam,
        payload: Optional[UserDeletionPayload] = UserDeletionBody,
        purge: bool = Query(False, title="Purge user", description="Purge user. Only deleted users can be purged."),
        payload: Optional[UserDeletionPayload] = None,
    ) -> DetailedUserModel:
        user_to_update = self.service.user_manager.by_id(user_id)
        if payload:
            purge = payload.purge
        else:
            purge = False
        purge = payload and payload.purge or purge
        if trans.user_is_admin:
            if purge:
                log.debug("Purging user %s", user_to_update)