From 3116b67064c3a59ec4d47b54ab0c369ed3199d7f Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Fri, 25 Apr 2025 08:34:15 +0200
Subject: [PATCH] WIP

Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at>
---
 .docs/changelog.md                                        | 4 ++++
 .../ifs/dbrepo/repository/IdentifierRepository.java       | 3 +++
 .../tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java   | 7 +++++++
 dbrepo-ui/components/ResourceStatus.vue                   | 8 ++++++++
 4 files changed, 22 insertions(+)

diff --git a/.docs/changelog.md b/.docs/changelog.md
index 3afdd9dac6..03fde813b6 100644
--- a/.docs/changelog.md
+++ b/.docs/changelog.md
@@ -4,6 +4,10 @@ author: Martin Weise
 
 ## v1.8.2 (2025-04-23)
 
+#### Fixes
+
+* Fixed a bug in the UI where the resource status was displayed as identifier when a draft identifier has been created.
+
 #### Features
 
 * Added structured logging through the `fluentd` protocol via the lightweight fluentbit in a 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
index 4011a8d168..d93cd3c75f 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/ac/tuwien/ifs/dbrepo/repository/IdentifierRepository.java
@@ -11,6 +11,9 @@ import java.util.UUID;
 @Repository
 public interface IdentifierRepository extends JpaRepository<Identifier, UUID> {
 
+    @NotNull
+    List<Identifier> findAll();
+
     /**
      * Finds identifiers by given database id.
      *
diff --git a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
index f93dacc21c..351b61e82d 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/ac/tuwien/ifs/dbrepo/service/impl/UserServiceImpl.java
@@ -13,6 +13,7 @@ import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.nio.charset.StandardCharsets;
 import java.util.List;
@@ -33,11 +34,13 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
+    @Transactional(readOnly = true)
     public List<User> findAll() {
         return userRepository.findAll();
     }
 
     @Override
+    @Transactional(readOnly = true)
     public User findByUsername(String username) throws UserNotFoundException {
         final Optional<User> optional = userRepository.findByUsername(username);
         if (optional.isEmpty()) {
@@ -48,11 +51,13 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
+    @Transactional(readOnly = true)
     public List<User> findAllInternalUsers() {
         return userRepository.findAllInternal();
     }
 
     @Override
+    @Transactional(readOnly = true)
     public User findById(UUID id) throws UserNotFoundException {
         final Optional<User> optional = userRepository.findById(id);
         if (optional.isEmpty()) {
@@ -63,6 +68,7 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
+    @Transactional
     public User create(CreateUserDto data) {
         /* create at authentication service */
         final String passwordHash = "*" + DigestUtils.sha1Hex(DigestUtils.sha1(RandomStringUtils.randomAlphabetic(40)
@@ -86,6 +92,7 @@ public class UserServiceImpl implements UserService {
     }
 
     @Override
+    @Transactional
     public User modify(User user, UserUpdateDto data) throws UserNotFoundException, AuthServiceException {
         user.setFirstname(data.getFirstname());
         user.setLastname(data.getLastname());
diff --git a/dbrepo-ui/components/ResourceStatus.vue b/dbrepo-ui/components/ResourceStatus.vue
index 22718ff583..2a28a8c471 100644
--- a/dbrepo-ui/components/ResourceStatus.vue
+++ b/dbrepo-ui/components/ResourceStatus.vue
@@ -16,7 +16,11 @@
 </template>
 
 <script>
+<<<<<<< Updated upstream
 import { useCacheStore } from '~/stores/cache.js';
+=======
+import { useCacheStore } from '@/stores/cache.js'
+>>>>>>> Stashed changes
 
 export default {
   props: {
@@ -65,7 +69,11 @@ export default {
       return this.cacheStore.getUser
     },
     hasIdentifier () {
+<<<<<<< Updated upstream
       if (!this.resource.identifiers) {
+=======
+      if (!this.resource.identifiers || this.resource.identifiers.length === 0) {
+>>>>>>> Stashed changes
         return false
       }
       if (!this.cacheUser) {
-- 
GitLab