Skip to content

Commit

Permalink
Merge branch 'develop' into feature/onboarding
Browse files Browse the repository at this point in the history
# Conflicts:
#	frontend/src/common/crypto.ts
#	frontend/src/i18n/de-DE.json
  • Loading branch information
tobihagemann committed Sep 8, 2023
2 parents e2f5b34 + 726c30e commit 20f72bc
Show file tree
Hide file tree
Showing 41 changed files with 1,445 additions and 1,112 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import org.cryptomator.hub.entities.AuditEventVaultKeyRetrieve;
import org.cryptomator.hub.entities.AuditEventVaultMemberAdd;
import org.cryptomator.hub.entities.AuditEventVaultMemberRemove;
import org.cryptomator.hub.entities.AuditEventVaultMemberUpdate;
import org.cryptomator.hub.entities.AuditEventVaultOwnershipClaim;
import org.cryptomator.hub.entities.AuditEventVaultUpdate;
import org.cryptomator.hub.entities.Device;
import org.cryptomator.hub.entities.VaultAccess;
Expand Down Expand Up @@ -83,7 +85,9 @@ public List<AuditEventDto> getAllEvents(@QueryParam("startDate") Instant startDa
@JsonSubTypes.Type(value = AuditEventVaultAccessGrantDto.class, name = AuditEventVaultAccessGrant.TYPE), //
@JsonSubTypes.Type(value = AuditEventVaultKeyRetrieveDto.class, name = AuditEventVaultKeyRetrieve.TYPE), //
@JsonSubTypes.Type(value = AuditEventVaultMemberAddDto.class, name = AuditEventVaultMemberAdd.TYPE), //
@JsonSubTypes.Type(value = AuditEventVaultMemberRemoveDto.class, name = AuditEventVaultMemberRemove.TYPE) //
@JsonSubTypes.Type(value = AuditEventVaultMemberRemoveDto.class, name = AuditEventVaultMemberRemove.TYPE), //
@JsonSubTypes.Type(value = AuditEventVaultMemberUpdateDto.class, name = AuditEventVaultMemberUpdate.TYPE), //
@JsonSubTypes.Type(value = AuditEventVaultOwnershipClaimDto.class, name = AuditEventVaultOwnershipClaim.TYPE) //
})
public interface AuditEventDto {

Expand Down Expand Up @@ -111,6 +115,10 @@ static AuditEventDto fromEntity(AuditEvent entity) {
return new AuditEventVaultMemberAddDto(evt.id, evt.timestamp, AuditEventVaultMemberAdd.TYPE, evt.addedBy, evt.vaultId, evt.authorityId, evt.role);
} else if (entity instanceof AuditEventVaultMemberRemove evt) {
return new AuditEventVaultMemberRemoveDto(evt.id, evt.timestamp, AuditEventVaultMemberRemove.TYPE, evt.removedBy, evt.vaultId, evt.authorityId);
} else if (entity instanceof AuditEventVaultMemberUpdate evt) {
return new AuditEventVaultMemberUpdateDto(evt.id, evt.timestamp, AuditEventVaultMemberUpdate.TYPE, evt.updatedBy, evt.vaultId, evt.authorityId, evt.role);
} else if (entity instanceof AuditEventVaultOwnershipClaim evt) {
return new AuditEventVaultOwnershipClaimDto(evt.id, evt.timestamp, AuditEventVaultOwnershipClaim.TYPE, evt.claimedBy, evt.vaultId);
} else {
throw new UnsupportedOperationException("conversion not implemented for event type " + entity.getClass());
}
Expand Down Expand Up @@ -140,12 +148,19 @@ record AuditEventVaultKeyRetrieveDto(long id, Instant timestamp, String type, @J
@JsonProperty("result") AuditEventVaultKeyRetrieve.Result result) implements AuditEventDto {
}

record AuditEventVaultMemberAddDto(long id, Instant timestamp, String type, @JsonProperty("addedBy") String addedBy, @JsonProperty("vaultId") UUID vaultId,
@JsonProperty("authorityId") String authorityId, @JsonProperty("role") VaultAccess.Role role) implements AuditEventDto {
record AuditEventVaultMemberAddDto(long id, Instant timestamp, String type, @JsonProperty("addedBy") String addedBy, @JsonProperty("vaultId") UUID vaultId, @JsonProperty("authorityId") String authorityId,
@JsonProperty("role") VaultAccess.Role role) implements AuditEventDto {
}

record AuditEventVaultMemberRemoveDto(long id, Instant timestamp, String type, @JsonProperty("removedBy") String removedBy, @JsonProperty("vaultId") UUID vaultId,
@JsonProperty("authorityId") String authorityId) implements AuditEventDto {
}

record AuditEventVaultMemberUpdateDto(long id, Instant timestamp, String type, @JsonProperty("updatedBy") String updatedBy, @JsonProperty("vaultId") UUID vaultId, @JsonProperty("authorityId") String authorityId,
@JsonProperty("role") VaultAccess.Role role) implements AuditEventDto {
}

record AuditEventVaultOwnershipClaimDto(long id, Instant timestamp, String type, @JsonProperty("claimedBy") String claimedBy, @JsonProperty("vaultId") UUID vaultId) implements AuditEventDto {
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.cryptomator.hub.entities.Group;
import org.cryptomator.hub.entities.User;

abstract sealed class AuthorityDto permits UserDto, GroupDto {
abstract sealed class AuthorityDto permits UserDto, GroupDto, MemberDto {

public enum Type {
USER, GROUP
Expand Down
26 changes: 26 additions & 0 deletions backend/src/main/java/org/cryptomator/hub/api/MemberDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.cryptomator.hub.api;

import com.fasterxml.jackson.annotation.JsonProperty;
import org.cryptomator.hub.entities.Group;
import org.cryptomator.hub.entities.User;
import org.cryptomator.hub.entities.VaultAccess;

public final class MemberDto extends AuthorityDto {

@JsonProperty("role")
public final VaultAccess.Role role;

MemberDto(@JsonProperty("id") String id, @JsonProperty("type") AuthorityDto.Type type, @JsonProperty("name") String name, @JsonProperty("pictureUrl") String pictureUrl, @JsonProperty("role") VaultAccess.Role role) {
super(id, type, name, pictureUrl);
this.role = role;
}

public static MemberDto fromEntity(User user, VaultAccess.Role role) {
return new MemberDto(user.id, Type.USER, user.name, user.pictureUrl, role);
}

public static MemberDto fromEntity(Group group, VaultAccess.Role role) {
return new MemberDto(group.id, Type.GROUP, group.name, null, role);
}

}
Loading

0 comments on commit 20f72bc

Please sign in to comment.