From 1564f679c0c878f95dce811eedf4f2c07c1e88b2 Mon Sep 17 00:00:00 2001 From: Dragomir Todorov Date: Thu, 25 Oct 2018 11:03:11 +0300 Subject: [PATCH 1/5] NY-4598: Added role attribute to account --- .../biz/nynja/account/models/Account.java | 37 ++++++++++++++----- .../AccountByAuthenticationProvider.java | 35 ++++++++++++++---- .../account/models/AccountByProfileId.java | 33 +++++++++++------ .../account/models/AccountByUsername.java | 34 +++++++++++------ .../AccountRepositoryAdditionalImpl.java | 30 ++++++++------- 5 files changed, 115 insertions(+), 54 deletions(-) diff --git a/src/main/java/biz/nynja/account/models/Account.java b/src/main/java/biz/nynja/account/models/Account.java index 06b7c18..6b7fe29 100644 --- a/src/main/java/biz/nynja/account/models/Account.java +++ b/src/main/java/biz/nynja/account/models/Account.java @@ -13,6 +13,7 @@ import org.springframework.data.cassandra.core.mapping.Table; import biz.nynja.account.grpc.AccountDetails; import biz.nynja.account.grpc.AccountDetails.Builder; import biz.nynja.account.grpc.CreatePendingAccountRequest; +import biz.nynja.account.grpc.Role; @Table public class Account { @@ -33,6 +34,7 @@ public class Account { private Long creationTimestamp; private Long lastUpdateTimestamp; private Set contactsInfo; + private String role; public UUID getAccountId() { return accountId; @@ -154,6 +156,14 @@ public class Account { this.lastUpdateTimestamp = lastUpdateTimestamp; } + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + @Override public int hashCode() { final int prime = 31; @@ -172,6 +182,7 @@ public class Account { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); + result = prime * result + ((role == null) ? 0 : role.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -255,6 +266,11 @@ public class Account { return false; } else if (!qrCode.equals(other.qrCode)) return false; + if (role == null) { + if (other.role != null) + return false; + } else if (!role.equals(other.role)) + return false; if (username == null) { if (other.username != null) return false; @@ -265,15 +281,13 @@ public class Account { @Override public String toString() { - return new StringBuilder("Account [accountId=").append(accountId).append(", profileId=").append(profileId) - .append(", accountMark=").append(accountMark).append(", authenticationProvider=") - .append(authenticationProvider).append(", authenticationProviderType=") - .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") - .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) - .append(", username=").append(username).append(", qrCode=").append(qrCode).append(", accountStatus=") - .append(accountStatus).append(", creationTimestamp=").append(creationTimestamp) - .append(", lastUpdateTimestamp=").append(lastUpdateTimestamp).append(", contactsInfo=") - .append(contactsInfo).append("]").toString(); + return "Account [accountId=" + accountId + ", profileId=" + profileId + ", accountMark=" + accountMark + + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" + + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" + + avatar + ", accountName=" + accountName + ", username=" + username + ", qrCode=" + qrCode + + ", accountStatus=" + accountStatus + ", creationTimestamp=" + creationTimestamp + + ", lastUpdateTimestamp=" + lastUpdateTimestamp + ", role=" + role + ", contactsInfo=" + contactsInfo + + "]"; } public static Account createPendingAccountFromProto(CreatePendingAccountRequest request) { @@ -323,9 +337,12 @@ public class Account { if (getAvatar() != null) { builder.setAvatar(com.google.protobuf.ByteString.copyFrom(avatar)); } + if (getRole() != null) { + builder.setRole(Role.valueOf(getRole())); + } if (getContactsInfo() != null) { for (ContactInfo c : contactsInfo) { - builder.addContactsInfo(c.toProto()); + builder.addContactsInfo(c.toProto()); } } diff --git a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java index 7a1b23d..225a628 100644 --- a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java +++ b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java @@ -8,6 +8,7 @@ import java.util.Set; import java.util.UUID; import biz.nynja.account.grpc.AccountDetails.Builder; +import biz.nynja.account.grpc.Role; public class AccountByAuthenticationProvider { @@ -26,6 +27,7 @@ public class AccountByAuthenticationProvider { private Long lastUpdateTimestamp; private Set contactsInfo; private String qrCode; + private String role; public UUID getAccountId() { return accountId; @@ -147,6 +149,14 @@ public class AccountByAuthenticationProvider { this.qrCode = qrCode; } + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + @Override public int hashCode() { final int prime = 31; @@ -165,6 +175,7 @@ public class AccountByAuthenticationProvider { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); + result = prime * result + ((role == null) ? 0 : role.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -248,6 +259,11 @@ public class AccountByAuthenticationProvider { return false; } else if (!qrCode.equals(other.qrCode)) return false; + if (role == null) { + if (other.role != null) + return false; + } else if (!role.equals(other.role)) + return false; if (username == null) { if (other.username != null) return false; @@ -258,14 +274,13 @@ public class AccountByAuthenticationProvider { @Override public String toString() { - return new StringBuilder("Account [accountId=").append(accountId).append(", profileId=").append(profileId) - .append(", accountMark=").append(accountMark).append(", authenticationProvider=") - .append(authenticationProvider).append(", authenticationProviderType=") - .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") - .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) - .append(", username=").append(username).append(", accountStatus=").append(accountStatus) - .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") - .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append("]").toString(); + return "AccountByAuthenticationProvider [profileId=" + profileId + ", accountId=" + accountId + ", accountMark=" + + accountMark + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" + + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" + + avatar + ", accountName=" + accountName + ", username=" + username + ", accountStatus=" + + accountStatus + ", creationTimestamp=" + creationTimestamp + ", lastUpdateTimestamp=" + + lastUpdateTimestamp + ", contactsInfo=" + contactsInfo + ", qrCode=" + qrCode + ", role=" + role + + "]"; } public biz.nynja.account.grpc.AccountDetails toProto() { @@ -312,6 +327,9 @@ public class AccountByAuthenticationProvider { builder.addContactsInfo(c.toProto()); } } + if (role != null) { + builder.setRole(Role.valueOf(role)); + } return builder.build(); @@ -334,6 +352,7 @@ public class AccountByAuthenticationProvider { account.setLastUpdateTimestamp(this.lastUpdateTimestamp); account.setContactsInfo(this.contactsInfo); account.setQrCode(this.qrCode); + account.setRole(this.role); return account; } } diff --git a/src/main/java/biz/nynja/account/models/AccountByProfileId.java b/src/main/java/biz/nynja/account/models/AccountByProfileId.java index 0f7eac9..a09bc54 100644 --- a/src/main/java/biz/nynja/account/models/AccountByProfileId.java +++ b/src/main/java/biz/nynja/account/models/AccountByProfileId.java @@ -7,9 +7,6 @@ import java.nio.ByteBuffer; import java.util.Set; import java.util.UUID; -import org.springframework.data.cassandra.core.cql.PrimaryKeyType; -import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn; - import biz.nynja.account.grpc.AccountDetails; import biz.nynja.account.grpc.AccountDetails.Builder; @@ -30,6 +27,7 @@ public class AccountByProfileId { private Long lastUpdateTimestamp; private Set contactsInfo; private String qrCode; + private String role; public UUID getAccountId() { return accountId; @@ -151,6 +149,14 @@ public class AccountByProfileId { this.qrCode = qrCode; } + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + @Override public int hashCode() { final int prime = 31; @@ -169,6 +175,7 @@ public class AccountByProfileId { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); + result = prime * result + ((role == null) ? 0 : role.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -252,6 +259,11 @@ public class AccountByProfileId { return false; } else if (!qrCode.equals(other.qrCode)) return false; + if (role == null) { + if (other.role != null) + return false; + } else if (!role.equals(other.role)) + return false; if (username == null) { if (other.username != null) return false; @@ -262,14 +274,13 @@ public class AccountByProfileId { @Override public String toString() { - return new StringBuilder("Account [accountId=").append(accountId).append(", profileId=").append(profileId) - .append(", accountMark=").append(accountMark).append(", authenticationProvider=") - .append(authenticationProvider).append(", authenticationProviderType=") - .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") - .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) - .append(", username=").append(username).append(", accountStatus=").append(accountStatus) - .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") - .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append("]").toString(); + return "AccountByProfileId [profileId=" + profileId + ", accountId=" + accountId + ", accountMark=" + + accountMark + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" + + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" + + avatar + ", accountName=" + accountName + ", username=" + username + ", accountStatus=" + + accountStatus + ", creationTimestamp=" + creationTimestamp + ", lastUpdateTimestamp=" + + lastUpdateTimestamp + ", contactsInfo=" + contactsInfo + ", qrCode=" + qrCode + ", role=" + role + + "]"; } public biz.nynja.account.grpc.AccountDetails toProto() { diff --git a/src/main/java/biz/nynja/account/models/AccountByUsername.java b/src/main/java/biz/nynja/account/models/AccountByUsername.java index d60c2ee..a566950 100644 --- a/src/main/java/biz/nynja/account/models/AccountByUsername.java +++ b/src/main/java/biz/nynja/account/models/AccountByUsername.java @@ -7,9 +7,6 @@ import java.nio.ByteBuffer; import java.util.Set; import java.util.UUID; -import biz.nynja.account.grpc.AccountDetails; -import biz.nynja.account.grpc.AccountDetails.Builder; - public class AccountByUsername { private UUID profileId; @@ -27,6 +24,7 @@ public class AccountByUsername { private Long lastUpdateTimestamp; private Set contactsInfo; private String qrCode; + private String role; public UUID getProfileId() { return profileId; @@ -148,6 +146,14 @@ public class AccountByUsername { this.qrCode = qrCode; } + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + @Override public int hashCode() { final int prime = 31; @@ -166,6 +172,7 @@ public class AccountByUsername { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); + result = prime * result + ((role == null) ? 0 : role.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -249,6 +256,11 @@ public class AccountByUsername { return false; } else if (!qrCode.equals(other.qrCode)) return false; + if (role == null) { + if (other.role != null) + return false; + } else if (!role.equals(other.role)) + return false; if (username == null) { if (other.username != null) return false; @@ -259,15 +271,13 @@ public class AccountByUsername { @Override public String toString() { - return new StringBuilder("Account [accountId=").append(accountId).append(", profileId=").append(profileId) - .append(", accountMark=").append(accountMark).append(", authenticationProvider=") - .append(authenticationProvider).append(", authenticationProviderType=") - .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") - .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) - .append(", username=").append(username).append(", accountStatus=").append(accountStatus) - .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") - .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo) - .append("]").toString(); + return "AccountByUsername [profileId=" + profileId + ", accountId=" + accountId + ", accountMark=" + accountMark + + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" + + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" + + avatar + ", accountName=" + accountName + ", username=" + username + ", accountStatus=" + + accountStatus + ", creationTimestamp=" + creationTimestamp + ", lastUpdateTimestamp=" + + lastUpdateTimestamp + ", contactsInfo=" + contactsInfo + ", qrCode=" + qrCode + ", role=" + role + + "]"; } } diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index a108339..9568a7a 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -4,7 +4,6 @@ package biz.nynja.account.repositories; import java.time.Instant; -import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -27,9 +26,8 @@ import com.datastax.driver.core.Session; import biz.nynja.account.components.AccountServiceHelper; import biz.nynja.account.components.StatementsPool; - -import biz.nynja.account.grpc.AuthProviderDetails; import biz.nynja.account.grpc.CompletePendingAccountCreationRequest; +import biz.nynja.account.grpc.Role; import biz.nynja.account.grpc.UpdateAccountRequest; import biz.nynja.account.grpc.UpdateProfileRequest; import biz.nynja.account.models.Account; @@ -141,6 +139,9 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio newAccount.setUsername(request.getUsername()); newAccount.setCreationTimestamp(creationTimestamp); newAccount.setQrCode(request.getQrCode()); + newAccount.setRole( + (request.getRole() == null || Role.UNKNOWN_ROLE.equals(request.getRole())) ? Role.USER.toString() + : request.getRole().toString()); batchOps.insert(newAccount); } @@ -160,7 +161,8 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio PendingAccount pendingAccount) { ProfileByAuthenticationProvider newProfileByAuthenticationProvider = new ProfileByAuthenticationProvider(); newProfileByAuthenticationProvider.setAuthenticationProvider(pendingAccount.getAuthenticationProvider()); - newProfileByAuthenticationProvider.setAuthenticationProviderType(pendingAccount.getAuthenticationProviderType()); + newProfileByAuthenticationProvider + .setAuthenticationProviderType(pendingAccount.getAuthenticationProviderType()); newProfileByAuthenticationProvider.setProfileId(pendingAccount.getProfileId()); batchOps.insert(newProfileByAuthenticationProvider); } @@ -340,7 +342,8 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio batchOps.update(updatedProfile); } - private void updateAuthProvidersInProfileWhenDeletingAccount(CassandraBatchOperations batchOps, Profile existingProfile, Set authProvidersToUpdate, Long lastUpdateTimestamp) { + private void updateAuthProvidersInProfileWhenDeletingAccount(CassandraBatchOperations batchOps, + Profile existingProfile, Set authProvidersToUpdate, Long lastUpdateTimestamp) { Profile updatedProfile = existingProfile; if (authProvidersToUpdate != null) { updatedProfile.setAuthenticationProviders(authProvidersToUpdate); @@ -401,15 +404,16 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio } } - public PendingAccountByAuthenticationProvider findSameAuthenticationProviderInPendingAccount(AuthenticationProvider authProvider) { + public PendingAccountByAuthenticationProvider findSameAuthenticationProviderInPendingAccount( + AuthenticationProvider authProvider) { List pendingAccounts = pendingAccountByAuthenticationProviderRepository .findAllByAuthenticationProvider(authProvider.getValue()); if (pendingAccounts.isEmpty()) { return null; } - //Both authentication provider identifier and type uniquely identify the authentication provider in DB. - //For this reason we need to filter results by authentication provider type. + // Both authentication provider identifier and type uniquely identify the authentication provider in DB. + // For this reason we need to filter results by authentication provider type. for (PendingAccountByAuthenticationProvider pendingAccount : pendingAccounts) { if (pendingAccount.getAuthenticationProviderType().equals(authProvider.getType())) { return pendingAccount; @@ -426,8 +430,8 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio return false; } - //Both authentication provider identifier and type uniquely identify the authentication provider in DB. - //For this reason we need to filter results by authentication provider type. + // Both authentication provider identifier and type uniquely identify the authentication provider in DB. + // For this reason we need to filter results by authentication provider type. for (AccountByAuthenticationProvider account : accounts) { if (account.getAuthenticationProviderType().equals(authProvider.getType())) { return true; @@ -479,7 +483,8 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio public boolean authenticationProviderAlreadyUsedInProfile(AuthenticationProvider authProvider) { ProfileByAuthenticationProvider profile = profileByAuthenticationProviderRepository - .findByAuthenticationProviderAndAuthenticationProviderType(authProvider.getValue(), authProvider.getType()); + .findByAuthenticationProviderAndAuthenticationProviderType(authProvider.getValue(), + authProvider.getType()); if (profile != null) { return true; } @@ -572,8 +577,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio } @Override - public boolean deleteAuthenticationProvider(Profile profile, - AuthenticationProvider authProvider) { + public boolean deleteAuthenticationProvider(Profile profile, AuthenticationProvider authProvider) { BatchStatement batch = new BatchStatement(); ResultSet rs = null; -- GitLab From 398431c3d1e9e3b65b20aeac988d7e4d194d12b6 Mon Sep 17 00:00:00 2001 From: Dragomir Todorov Date: Fri, 26 Oct 2018 15:18:47 +0300 Subject: [PATCH 2/5] NY-4598: Code review changes --- .../biz/nynja/account/models/Account.java | 19 +++++++++++-------- .../AccountByAuthenticationProvider.java | 19 +++++++++++-------- .../account/models/AccountByProfileId.java | 18 +++++++++++------- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/main/java/biz/nynja/account/models/Account.java b/src/main/java/biz/nynja/account/models/Account.java index 6b7fe29..506262d 100644 --- a/src/main/java/biz/nynja/account/models/Account.java +++ b/src/main/java/biz/nynja/account/models/Account.java @@ -13,7 +13,6 @@ import org.springframework.data.cassandra.core.mapping.Table; import biz.nynja.account.grpc.AccountDetails; import biz.nynja.account.grpc.AccountDetails.Builder; import biz.nynja.account.grpc.CreatePendingAccountRequest; -import biz.nynja.account.grpc.Role; @Table public class Account { @@ -281,13 +280,17 @@ public class Account { @Override public String toString() { - return "Account [accountId=" + accountId + ", profileId=" + profileId + ", accountMark=" + accountMark - + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" - + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" - + avatar + ", accountName=" + accountName + ", username=" + username + ", qrCode=" + qrCode - + ", accountStatus=" + accountStatus + ", creationTimestamp=" + creationTimestamp - + ", lastUpdateTimestamp=" + lastUpdateTimestamp + ", role=" + role + ", contactsInfo=" + contactsInfo - + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("Account [accountId=").append(accountId).append(", profileId=").append(profileId) + .append(", accountMark=").append(accountMark).append(", authenticationProvider=") + .append(authenticationProvider).append(", authenticationProviderType=") + .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") + .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) + .append(", username=").append(username).append(", qrCode=").append(qrCode).append(", accountStatus=") + .append(accountStatus).append(", creationTimestamp=").append(creationTimestamp) + .append(", lastUpdateTimestamp=").append(lastUpdateTimestamp).append(", contactsInfo=") + .append(contactsInfo).append(", role=").append(role).append("]"); + return builder.toString(); } public static Account createPendingAccountFromProto(CreatePendingAccountRequest request) { diff --git a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java index 225a628..0da605e 100644 --- a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java +++ b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java @@ -8,7 +8,6 @@ import java.util.Set; import java.util.UUID; import biz.nynja.account.grpc.AccountDetails.Builder; -import biz.nynja.account.grpc.Role; public class AccountByAuthenticationProvider { @@ -274,13 +273,17 @@ public class AccountByAuthenticationProvider { @Override public String toString() { - return "AccountByAuthenticationProvider [profileId=" + profileId + ", accountId=" + accountId + ", accountMark=" - + accountMark + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" - + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" - + avatar + ", accountName=" + accountName + ", username=" + username + ", accountStatus=" - + accountStatus + ", creationTimestamp=" + creationTimestamp + ", lastUpdateTimestamp=" - + lastUpdateTimestamp + ", contactsInfo=" + contactsInfo + ", qrCode=" + qrCode + ", role=" + role - + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("AccountByAuthenticationProvider [profileId=").append(profileId).append(", accountId=") + .append(accountId).append(", accountMark=").append(accountMark).append(", authenticationProvider=") + .append(authenticationProvider).append(", authenticationProviderType=") + .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") + .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) + .append(", username=").append(username).append(", accountStatus=").append(accountStatus) + .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") + .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append(", qrCode=") + .append(qrCode).append(", role=").append(role).append("]"); + return builder.toString(); } public biz.nynja.account.grpc.AccountDetails toProto() { diff --git a/src/main/java/biz/nynja/account/models/AccountByProfileId.java b/src/main/java/biz/nynja/account/models/AccountByProfileId.java index a09bc54..9c20d76 100644 --- a/src/main/java/biz/nynja/account/models/AccountByProfileId.java +++ b/src/main/java/biz/nynja/account/models/AccountByProfileId.java @@ -274,13 +274,17 @@ public class AccountByProfileId { @Override public String toString() { - return "AccountByProfileId [profileId=" + profileId + ", accountId=" + accountId + ", accountMark=" - + accountMark + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" - + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" - + avatar + ", accountName=" + accountName + ", username=" + username + ", accountStatus=" - + accountStatus + ", creationTimestamp=" + creationTimestamp + ", lastUpdateTimestamp=" - + lastUpdateTimestamp + ", contactsInfo=" + contactsInfo + ", qrCode=" + qrCode + ", role=" + role - + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("AccountByProfileId [profileId=").append(profileId).append(", accountId=").append(accountId) + .append(", accountMark=").append(accountMark).append(", authenticationProvider=") + .append(authenticationProvider).append(", authenticationProviderType=") + .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") + .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) + .append(", username=").append(username).append(", accountStatus=").append(accountStatus) + .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") + .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append(", qrCode=") + .append(qrCode).append(", role=").append(role).append("]"); + return builder.toString(); } public biz.nynja.account.grpc.AccountDetails toProto() { -- GitLab From 056ad8ef34747b8ff8e2daf8008bc3c662b0fd3b Mon Sep 17 00:00:00 2001 From: Dragomir Todorov Date: Fri, 26 Oct 2018 19:16:30 +0300 Subject: [PATCH 3/5] NY-4598: Role is now a set, to accomodate future development --- .../biz/nynja/account/models/Account.java | 27 +++++++++-------- .../AccountByAuthenticationProvider.java | 29 ++++++++++--------- .../AccountRepositoryAdditionalImpl.java | 8 +++-- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/main/java/biz/nynja/account/models/Account.java b/src/main/java/biz/nynja/account/models/Account.java index 506262d..93c3f70 100644 --- a/src/main/java/biz/nynja/account/models/Account.java +++ b/src/main/java/biz/nynja/account/models/Account.java @@ -13,6 +13,7 @@ import org.springframework.data.cassandra.core.mapping.Table; import biz.nynja.account.grpc.AccountDetails; import biz.nynja.account.grpc.AccountDetails.Builder; import biz.nynja.account.grpc.CreatePendingAccountRequest; +import biz.nynja.account.grpc.Role; @Table public class Account { @@ -33,7 +34,7 @@ public class Account { private Long creationTimestamp; private Long lastUpdateTimestamp; private Set contactsInfo; - private String role; + private Set roles; public UUID getAccountId() { return accountId; @@ -155,12 +156,12 @@ public class Account { this.lastUpdateTimestamp = lastUpdateTimestamp; } - public String getRole() { - return role; + public Set getRoles() { + return roles; } - public void setRole(String role) { - this.role = role; + public void setRoles(Set roles) { + this.roles = roles; } @Override @@ -181,7 +182,7 @@ public class Account { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); - result = prime * result + ((role == null) ? 0 : role.hashCode()); + result = prime * result + ((roles == null) ? 0 : roles.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -265,10 +266,10 @@ public class Account { return false; } else if (!qrCode.equals(other.qrCode)) return false; - if (role == null) { - if (other.role != null) + if (roles == null) { + if (other.roles != null) return false; - } else if (!role.equals(other.role)) + } else if (!roles.equals(other.roles)) return false; if (username == null) { if (other.username != null) @@ -289,7 +290,7 @@ public class Account { .append(", username=").append(username).append(", qrCode=").append(qrCode).append(", accountStatus=") .append(accountStatus).append(", creationTimestamp=").append(creationTimestamp) .append(", lastUpdateTimestamp=").append(lastUpdateTimestamp).append(", contactsInfo=") - .append(contactsInfo).append(", role=").append(role).append("]"); + .append(contactsInfo).append(", roles=").append(roles).append("]"); return builder.toString(); } @@ -340,8 +341,10 @@ public class Account { if (getAvatar() != null) { builder.setAvatar(com.google.protobuf.ByteString.copyFrom(avatar)); } - if (getRole() != null) { - builder.setRole(Role.valueOf(getRole())); + if (getRoles() != null) { + for (String role : getRoles()) { + builder.addRoles(Role.valueOf(role)); + } } if (getContactsInfo() != null) { for (ContactInfo c : contactsInfo) { diff --git a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java index 0da605e..9c72576 100644 --- a/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java +++ b/src/main/java/biz/nynja/account/models/AccountByAuthenticationProvider.java @@ -8,6 +8,7 @@ import java.util.Set; import java.util.UUID; import biz.nynja.account.grpc.AccountDetails.Builder; +import biz.nynja.account.grpc.Role; public class AccountByAuthenticationProvider { @@ -26,7 +27,7 @@ public class AccountByAuthenticationProvider { private Long lastUpdateTimestamp; private Set contactsInfo; private String qrCode; - private String role; + private Set roles; public UUID getAccountId() { return accountId; @@ -148,12 +149,12 @@ public class AccountByAuthenticationProvider { this.qrCode = qrCode; } - public String getRole() { - return role; + public Set getRoles() { + return roles; } - public void setRole(String role) { - this.role = role; + public void setRoles(Set roles) { + this.roles = roles; } @Override @@ -174,7 +175,7 @@ public class AccountByAuthenticationProvider { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); - result = prime * result + ((role == null) ? 0 : role.hashCode()); + result = prime * result + ((roles == null) ? 0 : roles.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -258,10 +259,10 @@ public class AccountByAuthenticationProvider { return false; } else if (!qrCode.equals(other.qrCode)) return false; - if (role == null) { - if (other.role != null) + if (roles == null) { + if (other.roles != null) return false; - } else if (!role.equals(other.role)) + } else if (!roles.equals(other.roles)) return false; if (username == null) { if (other.username != null) @@ -282,7 +283,7 @@ public class AccountByAuthenticationProvider { .append(", username=").append(username).append(", accountStatus=").append(accountStatus) .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append(", qrCode=") - .append(qrCode).append(", role=").append(role).append("]"); + .append(qrCode).append(", roles=").append(roles).append("]"); return builder.toString(); } @@ -330,8 +331,10 @@ public class AccountByAuthenticationProvider { builder.addContactsInfo(c.toProto()); } } - if (role != null) { - builder.setRole(Role.valueOf(role)); + if (getRoles() != null) { + for (String role : getRoles()) { + builder.addRoles(Role.valueOf(role)); + } } return builder.build(); @@ -355,7 +358,7 @@ public class AccountByAuthenticationProvider { account.setLastUpdateTimestamp(this.lastUpdateTimestamp); account.setContactsInfo(this.contactsInfo); account.setQrCode(this.qrCode); - account.setRole(this.role); + account.setRoles(this.roles); return account; } } diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 9568a7a..7a867ec 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -4,10 +4,12 @@ package biz.nynja.account.repositories; import java.time.Instant; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -139,9 +141,9 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio newAccount.setUsername(request.getUsername()); newAccount.setCreationTimestamp(creationTimestamp); newAccount.setQrCode(request.getQrCode()); - newAccount.setRole( - (request.getRole() == null || Role.UNKNOWN_ROLE.equals(request.getRole())) ? Role.USER.toString() - : request.getRole().toString()); + newAccount.setRoles((request.getRolesList() == null || request.getRolesList().isEmpty()) + ? new HashSet(Arrays.asList(Role.USER.toString())) + : request.getRolesList().stream().map(n -> n.toString()).collect(Collectors.toSet())); batchOps.insert(newAccount); } -- GitLab From 7a4e1721853c1b93842467542e103d6502961ca9 Mon Sep 17 00:00:00 2001 From: Dragomir Todorov Date: Mon, 29 Oct 2018 11:34:44 +0200 Subject: [PATCH 4/5] NY-4598: Add Role changes --- .../account/models/AccountByProfileId.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/biz/nynja/account/models/AccountByProfileId.java b/src/main/java/biz/nynja/account/models/AccountByProfileId.java index 9c20d76..b53474d 100644 --- a/src/main/java/biz/nynja/account/models/AccountByProfileId.java +++ b/src/main/java/biz/nynja/account/models/AccountByProfileId.java @@ -27,7 +27,7 @@ public class AccountByProfileId { private Long lastUpdateTimestamp; private Set contactsInfo; private String qrCode; - private String role; + private Set roles; public UUID getAccountId() { return accountId; @@ -149,12 +149,12 @@ public class AccountByProfileId { this.qrCode = qrCode; } - public String getRole() { - return role; + public Set getRoles() { + return roles; } - public void setRole(String role) { - this.role = role; + public void setRoles(Set roles) { + this.roles = roles; } @Override @@ -175,7 +175,7 @@ public class AccountByProfileId { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); - result = prime * result + ((role == null) ? 0 : role.hashCode()); + result = prime * result + ((roles == null) ? 0 : roles.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -259,10 +259,10 @@ public class AccountByProfileId { return false; } else if (!qrCode.equals(other.qrCode)) return false; - if (role == null) { - if (other.role != null) + if (roles == null) { + if (other.roles != null) return false; - } else if (!role.equals(other.role)) + } else if (!roles.equals(other.roles)) return false; if (username == null) { if (other.username != null) @@ -283,7 +283,7 @@ public class AccountByProfileId { .append(", username=").append(username).append(", accountStatus=").append(accountStatus) .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append(", qrCode=") - .append(qrCode).append(", role=").append(role).append("]"); + .append(qrCode).append(", roles=").append(roles).append("]"); return builder.toString(); } @@ -332,6 +332,11 @@ public class AccountByProfileId { builder.addContactsInfo(c.toProto()); } } + if (getRoles() != null) { + for (String role : getRoles()) { + builder.addRoles(Role.valueOf(role)); + } + } return builder.build(); -- GitLab From f213bc642bd36089098ab3bd82c9b74cf7f4b2dd Mon Sep 17 00:00:00 2001 From: Dragomir Todorov Date: Mon, 29 Oct 2018 11:37:02 +0200 Subject: [PATCH 5/5] NY-4598: Another commit to accomodate roles changes --- .../account/models/AccountByUsername.java | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/biz/nynja/account/models/AccountByUsername.java b/src/main/java/biz/nynja/account/models/AccountByUsername.java index a566950..9c12b6b 100644 --- a/src/main/java/biz/nynja/account/models/AccountByUsername.java +++ b/src/main/java/biz/nynja/account/models/AccountByUsername.java @@ -24,7 +24,7 @@ public class AccountByUsername { private Long lastUpdateTimestamp; private Set contactsInfo; private String qrCode; - private String role; + private Set roles; public UUID getProfileId() { return profileId; @@ -146,12 +146,12 @@ public class AccountByUsername { this.qrCode = qrCode; } - public String getRole() { - return role; + public Set getRoles() { + return roles; } - public void setRole(String role) { - this.role = role; + public void setRoles(Set roles) { + this.roles = roles; } @Override @@ -172,7 +172,7 @@ public class AccountByUsername { result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); result = prime * result + ((profileId == null) ? 0 : profileId.hashCode()); result = prime * result + ((qrCode == null) ? 0 : qrCode.hashCode()); - result = prime * result + ((role == null) ? 0 : role.hashCode()); + result = prime * result + ((roles == null) ? 0 : roles.hashCode()); result = prime * result + ((username == null) ? 0 : username.hashCode()); return result; } @@ -256,10 +256,10 @@ public class AccountByUsername { return false; } else if (!qrCode.equals(other.qrCode)) return false; - if (role == null) { - if (other.role != null) + if (roles == null) { + if (other.roles != null) return false; - } else if (!role.equals(other.role)) + } else if (!roles.equals(other.roles)) return false; if (username == null) { if (other.username != null) @@ -271,13 +271,17 @@ public class AccountByUsername { @Override public String toString() { - return "AccountByUsername [profileId=" + profileId + ", accountId=" + accountId + ", accountMark=" + accountMark - + ", authenticationProvider=" + authenticationProvider + ", authenticationProviderType=" - + authenticationProviderType + ", firstName=" + firstName + ", lastName=" + lastName + ", avatar=" - + avatar + ", accountName=" + accountName + ", username=" + username + ", accountStatus=" - + accountStatus + ", creationTimestamp=" + creationTimestamp + ", lastUpdateTimestamp=" - + lastUpdateTimestamp + ", contactsInfo=" + contactsInfo + ", qrCode=" + qrCode + ", role=" + role - + "]"; + StringBuilder builder = new StringBuilder(); + builder.append("AccountByUsername [profileId=").append(profileId).append(", accountId=").append(accountId) + .append(", accountMark=").append(accountMark).append(", authenticationProvider=") + .append(authenticationProvider).append(", authenticationProviderType=") + .append(authenticationProviderType).append(", firstName=").append(firstName).append(", lastName=") + .append(lastName).append(", avatar=").append(avatar).append(", accountName=").append(accountName) + .append(", username=").append(username).append(", accountStatus=").append(accountStatus) + .append(", creationTimestamp=").append(creationTimestamp).append(", lastUpdateTimestamp=") + .append(lastUpdateTimestamp).append(", contactsInfo=").append(contactsInfo).append(", qrCode=") + .append(qrCode).append(", roles=").append(roles).append("]"); + return builder.toString(); } } -- GitLab