aboutsummaryrefslogtreecommitdiff
path: root/lib/models/Folder.php
diff options
context:
space:
mode:
authorDavid Siegfried <david.siegfried@uni-vechta.de>2026-02-27 16:54:19 +0100
committerDavid Siegfried <david.siegfried@uni-vechta.de>2026-02-27 16:54:19 +0100
commitab8c6aee0e3df0565a56fc342c5107904935da2d (patch)
tree40cea85374999b0ecb0c6f6f75b790340c686f5b /lib/models/Folder.php
parenta4a60be9c7e810d1e0d2ce0b7d4c8bba6ac89afc (diff)
extend file and folder logging, fixes #6251tic-6251
Diffstat (limited to 'lib/models/Folder.php')
-rw-r--r--lib/models/Folder.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/models/Folder.php b/lib/models/Folder.php
index b3a08f5..f5ac297 100644
--- a/lib/models/Folder.php
+++ b/lib/models/Folder.php
@@ -84,6 +84,8 @@ class Folder extends SimpleORMap implements FeedbackRange
$config['serialized_fields']['data_content'] = JSONArrayObject::class;
$config['registered_callbacks']['before_store'][] = 'cbMakeUniqueName';
+ $config['registered_callbacks']['after_store'][] = 'cbLogUpdateFolder';
+ $config['registered_callbacks']['after_create'][] = 'cbLogCreateFolder';
$config['registered_callbacks']['after_delete'][] = 'cbRemoveFeedbackElements';
$config['registered_callbacks']['before_delete'][] = 'cbLogDeleteFolder';
@@ -94,6 +96,53 @@ class Folder extends SimpleORMap implements FeedbackRange
parent::configure($config);
}
+ public function getRangeFullname(): string
+ {
+ if ($this->user) {
+ return $this->user->getFullname();
+ }
+ if ($this->course) {
+ return $this->course->getFullname();
+ }
+ if ($this->institute) {
+ return $this->institute->getFullname();
+ }
+ return '';
+ }
+
+ public function getLogComment(): string
+ {
+ $comment = sprintf(
+ 'Kommentar: %s',
+ $this->name
+ );
+
+ $range_fullname = $this->getRangeFullname();
+
+ if ($range_fullname) {
+ $comment .= " - $range_fullname";
+ }
+ return $comment;
+ }
+
+ public function cbLogCreateFolder()
+ {
+ StudipLog::log('FOLDER_CREATE',
+ User::findCurrent()->id,
+ $this->range_id,
+ $this->getLogComment()
+ );
+ }
+
+ public function cbLogUpdateFolder()
+ {
+ StudipLog::log('FOLDER_UPDATE',
+ User::findCurrent()->id,
+ $this->range_id,
+ $this->getLogComment()
+ );
+ }
+
protected function cbLogDeleteFolder()
{
StudipLog::log('FOLDER_DELETE',