diff --git a/backend/src/main/java/org/cryptomator/hub/RemoteUserPuller.java b/backend/src/main/java/org/cryptomator/hub/RemoteUserPuller.java index 4e9c8efd..f44156c7 100644 --- a/backend/src/main/java/org/cryptomator/hub/RemoteUserPuller.java +++ b/backend/src/main/java/org/cryptomator/hub/RemoteUserPuller.java @@ -76,7 +76,7 @@ void syncUpdatedUsers(Map keycloakUsers, Map databas dbUser.setPictureUrl(kcUser.getPictureUrl()); dbUser.setName(kcUser.getName()); dbUser.setEmail(kcUser.getEmail()); - userRepo.persistAndFlush(dbUser); + userRepo.persist(dbUser); } } @@ -91,7 +91,7 @@ void syncUpdatedGroups(Map keycloakGroups, Map dat dbGroup.getMembers().addAll(diff(kcGroup.getMembers(), dbGroup.getMembers())); dbGroup.getMembers().removeAll(diff(dbGroup.getMembers(), kcGroup.getMembers())); - groupRepo.persistAndFlush(dbGroup); + groupRepo.persist(dbGroup); } } diff --git a/backend/src/main/java/org/cryptomator/hub/entities/Group.java b/backend/src/main/java/org/cryptomator/hub/entities/Group.java index 83c64917..388b87f2 100644 --- a/backend/src/main/java/org/cryptomator/hub/entities/Group.java +++ b/backend/src/main/java/org/cryptomator/hub/entities/Group.java @@ -18,7 +18,7 @@ @DiscriminatorValue("GROUP") public class Group extends Authority { - @ManyToMany(cascade = {CascadeType.MERGE, CascadeType.REFRESH}) + @ManyToMany(cascade = {CascadeType.REMOVE}) @JoinTable(name = "group_membership", joinColumns = @JoinColumn(name = "group_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "member_id", referencedColumnName = "id") diff --git a/backend/src/main/java/org/cryptomator/hub/entities/User.java b/backend/src/main/java/org/cryptomator/hub/entities/User.java index 0727a945..68e32e15 100644 --- a/backend/src/main/java/org/cryptomator/hub/entities/User.java +++ b/backend/src/main/java/org/cryptomator/hub/entities/User.java @@ -138,16 +138,12 @@ public boolean equals(Object o) { User that = (User) o; return super.equals(that) // && Objects.equals(pictureUrl, that.pictureUrl) // - && Objects.equals(email, that.email) // - && Objects.equals(ecdhPublicKey, that.ecdhPublicKey) // - && Objects.equals(ecdsaPublicKey, that.ecdsaPublicKey) // - && Objects.equals(privateKeys, that.privateKeys) // - && Objects.equals(setupCode, that.setupCode); + && Objects.equals(email, that.email); } @Override public int hashCode() { - return Objects.hash(super.getId(), pictureUrl, email, ecdhPublicKey, privateKeys, setupCode); + return Objects.hash(super.getId(), pictureUrl, email); } @ApplicationScoped diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 853ec71d..ea8d41b4 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -20,7 +20,7 @@ "miscreant": "^0.3.2", "rfc4648": "^1.5.3", "semver": "^7.6.3", - "vue": "^3.4.38", + "vue": "^3.5.12", "vue-i18n": "^10.0.4", "vue-router": "^4.4.5" }, @@ -35,7 +35,7 @@ "@types/node": "^22.8.1", "@types/semver": "^7.5.8", "@vitejs/plugin-vue": "^5.1.4", - "@vue/compiler-sfc": "^3.4.37", + "@vue/compiler-sfc": "^3.5.12", "autoprefixer": "^10.4.20", "chai": "^5.1.2", "chai-as-promised": "^8.0.0", diff --git a/frontend/package.json b/frontend/package.json index 5e3d8800..dcef02b1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -35,7 +35,7 @@ "@types/node": "^22.8.1", "@types/semver": "^7.5.8", "@vitejs/plugin-vue": "^5.1.4", - "@vue/compiler-sfc": "^3.4.37", + "@vue/compiler-sfc": "^3.5.12", "autoprefixer": "^10.4.20", "chai": "^5.1.2", "chai-as-promised": "^8.0.0", @@ -63,7 +63,7 @@ "miscreant": "^0.3.2", "rfc4648": "^1.5.3", "semver": "^7.6.3", - "vue": "^3.4.38", + "vue": "^3.5.12", "vue-i18n": "^10.0.4", "vue-router": "^4.4.5" }, diff --git a/frontend/src/components/SearchInputGroup.vue b/frontend/src/components/SearchInputGroup.vue index a8abde50..00dfe7da 100644 --- a/frontend/src/components/SearchInputGroup.vue +++ b/frontend/src/components/SearchInputGroup.vue @@ -5,7 +5,7 @@
@@ -15,7 +15,7 @@
- + {{ item.name }}
@@ -42,12 +42,12 @@ import { debounce } from '../common/util'; export type Item = { id: string; name: string; + pictureUrl?: string; } const props = defineProps<{ actionTitle: string - onSearch: (query: string) => Promise, - resolvePictureUrl: (item: T) => string + onSearch: (query: string) => Promise }>(); const emit = defineEmits<{ diff --git a/frontend/src/components/VaultDetails.vue b/frontend/src/components/VaultDetails.vue index c64628aa..3fcfc098 100644 --- a/frontend/src/components/VaultDetails.vue +++ b/frontend/src/components/VaultDetails.vue @@ -97,7 +97,7 @@ {{ t('common.share') }}
- +

{{ t('vaultDetails.error.licenseViolated') }} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index e9073f95..8d57e146 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "esnext", "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "strict": true, "jsx": "preserve", "sourceMap": true,