EN · DE · RU · FR · ES

#99 : DataTransferPublicAttachmentPageRest.kt

plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt Classe Kotlin, plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt 108 lignes · 69 lignes de code · 28 commentaires · 11 lignes vides
Objectif : Fichier source : plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt. DataTransferPublicAttachmentPageRest.kt fait partie de l'application de gestion de projets open source ProjectForge.

Source (100 premières lignes)

/////////////////////////////////////////////////////////////////////////////
//
// Projet ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Allemagne (www.micromata.com)
//
// ProjectForge est sous double licence.
//
// Cette édition communautaire est un logiciel libre ; vous pouvez la redistribuer et/ou
// la modifier selon les termes de la GNU General Public License telle que publiée
// par la Free Software Foundation ; version 3 de la Licence.
//
// Cette édition communautaire est distribuée dans l'espoir qu'elle sera utile,
// mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
// QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la GNU General
// Public License pour plus de détails.
//
// Vous devriez avoir reçu une copie de la GNU General Public License avec
// ce programme ; sinon, consultez http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.plugins.datatransfer.restPublic

import jakarta.annotation.PostConstruct
import jakarta.servlet.http.HttpServletRequest
import mu.KotlinLogging
import org.projectforge.framework.jcr.AttachmentsService
import org.projectforge.plugins.datatransfer.DataTransferAreaDao
import org.projectforge.plugins.datatransfer.DataTransferPlugin
import org.projectforge.plugins.datatransfer.rest.DataTransferAreaPagesRest
import org.projectforge.rest.AttachmentPageRest
import org.projectforge.rest.AttachmentsServicesRest
import org.projectforge.rest.config.Rest
import org.projectforge.rest.core.AbstractDynamicPageRest
import org.projectforge.rest.dto.FormLayoutData
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController

private val log = KotlinLogging.logger {}

/**
 * Pour une utilisation externe anonyme via jeton/mot de passe.
 */
@RestController
@RequestMapping("${Rest.PUBLIC_URL}/attachment")
class DataTransferPublicAttachmentPageRest : AbstractDynamicPageRest() {
    @Autowired
    private lateinit var services: AttachmentsServicesRest

    @Autowired
    private lateinit var dataTransferAreaPagesRest: DataTransferAreaPagesRest

    @Autowired
    private lateinit var dataTransferPublicServicesRest: DataTransferPublicServicesRest

    @Autowired
    private lateinit var dataTransferPublicSession: DataTransferPublicSession

    private lateinit var dataTransferPublicAccessChecker: DataTransferPublicAccessChecker

    @PostConstruct
    private fun postConstruct() {
        dataTransferPublicAccessChecker = DataTransferPublicAccessChecker(dataTransferPublicSession)
    }

    /**
     * Échoue si l'utilisateur n'a pas de session.
     */
    @GetMapping("dynamic")
    fun getForm(
        @RequestParam("id", required = true) id: Long,
        @RequestParam("category", required = true) category: String,
        @RequestParam("fileId", required = true) fileId: String,
        @RequestParam("listId") listId: String?,
        request: HttpServletRequest
    ): FormLayoutData {
        check(category == DataTransferPlugin.ID)
        check(listId == AttachmentsService.DEFAULT_NODE)
        val data =
            dataTransferPublicSession.checkLogin(request, id) ?: throw IllegalArgumentException("Aucune connexion valide.")
        val area = data.first
        val sessionData = data.second

        log.info {
            "L'utilisateur tente de modifier/visualiser les détails de la pièce jointe : catégorie=$category, id=$id, fileId=$fileId, listId=$listId)}, utilisateur='${
                DataTransferAreaDao.getExternalUserString(request, sessionData.userInfo)
            }'."
        }
        val attachmentData =
            AttachmentsServicesRest.AttachmentData(category = category, id = id, fileId = fileId, listId = listId)
        attachmentData.attachment =
            services.getAttachment(dataTransferAreaPagesRest.jcrPath!!, dataTransferPublicAccessChecker, attachmentData)
        val layout = AttachmentPageRest.createAttachmentLayout(
            id = id,
            category = category,

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
d67bce18b Travaux de migration en cours...
4c04cfd65 CHANGEMENT MAJEUR ! Migration des identifiants entiers vers des identifiants Long (y compris les clés étrangères, etc.)
77bade6df javax.* -> jakarta.*

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
index 107f1e29f..7e77dc16f 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
@@ -3,7 +3,7 @@
 // Projet ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Allemagne (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Allemagne (www.micromata.com)
 //
 // ProjectForge est sous double licence.
 //

63081666f

En-têtes des fichiers source : 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
index 89d9339bc..107f1e29f 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
@@ -3,7 +3,7 @@
 // Projet ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Allemagne (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Allemagne (www.micromata.com)
 //
 // ProjectForge est sous double licence.
 //

d67bce18b

Travaux de migration en cours...
d67bce18b948b5dce6a302daf4cfbfe89f4b9d99
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
index ea09aa7ce..89d9339bc 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
@@ -23,6 +23,8 @@
 
 package org.projectforge.plugins.datatransfer.restPublic
 
+import jakarta.annotation.PostConstruct
+import jakarta.servlet.http.HttpServletRequest
 import mu.KotlinLogging
 import org.projectforge.framework.jcr.AttachmentsService
 import org.projectforge.plugins.datatransfer.DataTransferAreaDao
@@ -38,8 +40,6 @@ import org.springframework.web.bind.annotation.GetMapping
 import org.springframework.web.bind.annotation.RequestMapping
 import org.springframework.web.bind.annotation.RequestParam
 import org.springframework.web.bind.annotation.RestController
-import javax.annotation.PostConstruct
-import javax.servlet.http.HttpServletRequest
 
 private val log = KotlinLogging.logger {}
 
@@ -49,60 +49,60 @@ private val log = KotlinLogging.logger {}
 @RestController
 @RequestMapping("${Rest.PUBLIC_URL}/attachment")
 class DataTransferPublicAttachmentPageRest : AbstractDynamicPageRest() {
-  @Autowired
-  private lateinit var services: AttachmentsServicesRest
+    @Autowired
+    private lateinit var services: AttachmentsServicesRest
 
-  @Autowired
-  private lateinit var dataTransferAreaPagesRest: DataTransferAreaPagesRest
+    @Autowired
+    private lateinit var dataTransferAreaPagesRest: DataTransferAreaPagesRest
 
-  @Autowired
-  private lateinit var dataTransferPublicServicesRest: DataTransferPublicServicesRest
+    @Autowired
+    private lateinit var dataTransferPublicServicesRest: DataTransferPublicServicesRest
 
-  @Autowired
-  private lateinit var dataTransferPublicSession: DataTransferPublicSession
+    @Autowired
+    private lateinit var dataTransferPublicSession: DataTransferPublicSession
 
-  private lateinit var dataTransferPublicAccessChecker: DataTransferPublicAccessChecker
+    private lateinit var dataTransferPublicAccessChecker: DataTransferPublicAccessChecker
 
-  @PostConstruct
-  private fun postConstruct() {
-    dataTransferPublicAccessChecker = DataTransferPublicAccessChecker(dataTransferPublicSession)
-  }
+    @PostConstruct
+    private fun postConstruct() {
+        dataTransferPublicAccessChecker = DataTransferPublicAccessChecker(dataTransferPublicSession)
+    }
 
-  /**

4c04cfd65

CHANGEMENT MAJEUR ! Migration des identifiants entiers vers des identifiants Long (y compris les clés étrangères, etc.)
4c04cfd652210afe373d55f53a5300c85997b109
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
index 06ce822f2..ea09aa7ce 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
@@ -73,7 +73,7 @@ class DataTransferPublicAttachmentPageRest : AbstractDynamicPageRest() {
    */
   @GetMapping("dynamic")
   fun getForm(
-    @RequestParam("id", required = true) id: Int,
+    @RequestParam("id", required = true) id: Long,
     @RequestParam("category", required = true) category: String,
     @RequestParam("fileId", required = true) fileId: String,
     @RequestParam("listId") listId: String?,

77bade6df

javax.* -> jakarta.*
77bade6dfb148c87638c71951accb03942157fcf
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
index 2219a4403..06ce822f2 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/restPublic/DataTransferPublicAttachmentPageRest.kt
@@ -38,8 +38,8 @@ import org.springframework.web.bind.annotation.GetMapping
 import org.springframework.web.bind.annotation.RequestMapping
 import org.springframework.web.bind.annotation.RequestParam
 import org.springframework.web.bind.annotation.RestController
-import javax.annotation.PostConstruct
-import javax.servlet.http.HttpServletRequest
+import jakarta.annotation.PostConstruct
+import jakarta.servlet.http.HttpServletRequest
 
 private val log = KotlinLogging.logger {}