EN · DE · RU · FR · ES

#92: DataTransferAuditPageRest.kt

plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt Класс Kotlin, plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt 134 строки · 101 код · 26 комментариев · 7 пустых
Назначение: Исходный файл: plugins/datatransfer/rest/DataTransferAuditPageRest.kt. DataTransferAuditPageRest.kt является частью приложения управления проектами с открытым исходным кодом ProjectForge.

Исходный код (первые 100 строк)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge имеет двойную лицензию.
//
// Эта версия для сообщества является бесплатным программным обеспечением; вы можете распространять и/или
// изменять её в соответствии с условиями Стандартной общественной лицензии GNU (GNU General Public License),
// опубликованной Фондом свободного программного обеспечения; версия 3 Лицензии.
//
// Эта версия для сообщества распространяется в надежде, что она будет полезной,
// но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии
// КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ. См. Стандартную общественную лицензию GNU
// для получения более подробной информации.
//
// Вы должны были получить копию Стандартной общественной лицензии GNU вместе
// с этой программой; если нет, см. http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.plugins.datatransfer.rest

import org.projectforge.framework.i18n.translate
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext
import org.projectforge.framework.utils.NumberHelper
import org.projectforge.plugins.datatransfer.DataTransferAreaDao
import org.projectforge.plugins.datatransfer.DataTransferAuditDO
import org.projectforge.plugins.datatransfer.DataTransferAuditDao
import org.projectforge.rest.config.Rest
import org.projectforge.rest.core.AbstractDynamicPageRest
import org.projectforge.rest.dto.FormLayoutData
import org.projectforge.ui.*
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
import jakarta.servlet.http.HttpServletRequest

/**
 * Страница области передачи данных со списком вложений (включая загрузку/выгрузку и редактирование).
 */
@RestController
@RequestMapping("${Rest.URL}/datatransferaudit")
class DataTransferAuditPageRest : AbstractDynamicPageRest() {
  @Autowired
  private lateinit var dataTransferAreaDao: DataTransferAreaDao

  @Autowired
  private lateinit var dataTransferAuditDao: DataTransferAuditDao

  class AreaAuditData(
    var area: DataTransferArea? = null,
    val auditEntries: List<DataTransferAuditDO>? = null,
    val downloadAuditEntries: List<DataTransferAuditDO>? = null,
  )

  @GetMapping("dynamic")
  fun getForm(request: HttpServletRequest, @RequestParam("id") idString: String?): FormLayoutData {
    var id = NumberHelper.parseLong(idString)
    if (id == -1L) {
      // запрашивается личный ящик вошедшего пользователя:
      id = dataTransferAreaDao.ensurePersonalBox(ThreadLocalUserContext.loggedInUserId!!)?.id
    }
    id ?: throw IllegalAccessException("Параметр id не является целым числом или личный ящик не найден.")
    val areaDO = dataTransferAreaDao.find(id)!!
    val area = DataTransferArea()
    area.copyFrom(areaDO)
    val areaId = area.id
    requireNotNull(areaId)
    val layout = UILayout("plugins.datatransfer.audit")
    val events = dataTransferAuditDao.getEntriesByAreaId(areaId)
    val formData =
      AreaAuditData(
        area,
        events?.filter { !DataTransferAuditDao.downloadEventTypes.contains(it.eventType) },
        events?.filter { DataTransferAuditDao.downloadEventTypes.contains(it.eventType) },
      )
    UIFieldset(12, "plugins.datatransfer.audit.events").let { fieldset ->
      layout.add(fieldset)
      val grid = UIAgGrid("auditEntries")
      initAGGrid(grid)
      fieldset.add(grid)
    }
    UIFieldset(12, "plugins.datatransfer.audit.downloadEvents").let { fieldset ->
      layout.add(fieldset)
      val grid = UIAgGrid("downloadAuditEntries")
      initAGGrid(grid, false)
      fieldset.add(grid)
    }
    LayoutUtils.process(layout)
    return FormLayoutData(formData, layout, createServerData(request))
  }

  private fun initAGGrid(agGrid: UIAgGrid, editAction: Boolean = true) {
    agGrid.add(
      UIAgGridColumnDef(

История Git

868d6abb7 2025 -> 2026
63081666f Заголовки исходных файлов: 2024-> 2025.
1b50060c3 BaseDao: переименовано: get -> find, save -> insert, getList -> select, load -> select
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (переименовано для избежания недопонимания в коде).
4c04cfd65 MAJOR-CHANGE! Миграция целочисленных id на Long id (включая внешние ключи и т.д.)

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
index 3db14500c..9ca87ba84 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

63081666f

Заголовки исходных файлов: 2024-> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
index 8a862e14d..3db14500c 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

1b50060c3

BaseDao: переименовано: get -> find, save -> insert, getList -> select, load -> select
1b50060c3a4b099ec07fd85d28f514b101da4d29
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
index e6c740406..8a862e14d 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
@@ -66,7 +66,7 @@ class DataTransferAuditPageRest : AbstractDynamicPageRest() {
       id = dataTransferAreaDao.ensurePersonalBox(ThreadLocalUserContext.loggedInUserId!!)?.id
     }
     id ?: throw IllegalAccessException("Parameter id not an int or no personal box found.")
-    val areaDO = dataTransferAreaDao.getById(id)!!
+    val areaDO = dataTransferAreaDao.find(id)!!
     val area = DataTransferArea()
     area.copyFrom(areaDO)
     val areaId = area.id

67805f2fc

ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (переименовано для избежания недопонимания в коде).
67805f2fc1f3e6a6393accb4a757a8f4049b001c
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
index 616a0a91d..e6c740406 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
@@ -63,7 +63,7 @@ class DataTransferAuditPageRest : AbstractDynamicPageRest() {
     var id = NumberHelper.parseLong(idString)
     if (id == -1L) {
       // personal box of logged-in user is requested:
-      id = dataTransferAreaDao.ensurePersonalBox(ThreadLocalUserContext.userId!!)?.id
+      id = dataTransferAreaDao.ensurePersonalBox(ThreadLocalUserContext.loggedInUserId!!)?.id
     }
     id ?: throw IllegalAccessException("Parameter id not an int or no personal box found.")
     val areaDO = dataTransferAreaDao.getById(id)!!

4c04cfd65

MAJOR-CHANGE! Миграция целочисленных id на Long id (включая внешние ключи и т.д.)
4c04cfd652210afe373d55f53a5300c85997b109
diff --git a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
index 1cf26da13..616a0a91d 100644
--- a/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
+++ b/plugins/org.projectforge.plugins.datatransfer/src/main/kotlin/org/projectforge/plugins/datatransfer/rest/DataTransferAuditPageRest.kt
@@ -60,8 +60,8 @@ class DataTransferAuditPageRest : AbstractDynamicPageRest() {
 
   @GetMapping("dynamic")
   fun getForm(request: HttpServletRequest, @RequestParam("id") idString: String?): FormLayoutData {
-    var id = NumberHelper.parseInteger(idString)
-    if (id == -1) {
+    var id = NumberHelper.parseLong(idString)
+    if (id == -1L) {
       // personal box of logged-in user is requested:
       id = dataTransferAreaDao.ensurePersonalBox(ThreadLocalUserContext.userId!!)?.id
     }