[Users | Trunk]: Fix condition on verify role methods

This commit is contained in:
Konstantinos Triantafyllou 2021-03-16 07:52:52 +00:00
parent 76f86a9ab3
commit f26ea5a8fd
2 changed files with 35 additions and 2 deletions

View File

@ -313,7 +313,7 @@ public class RegistryService {
if (verification != null && verification.getVerificationType().equals("manager")) {
Integer coPersonId = calls.getCoPersonIdByEmail(verification.getEmail());
if (coPersonId != null) {
if (coPersonId.equals(calls.getCoPersonIdByIdentifier())) {
if (verification.getEmail().equalsIgnoreCase(authorizationService.getEmail())) {
if (verification.getVerificationCode().equals(code)) {
Integer couId = calls.getCouId(verification.getType(), verification.getEntity());
if (couId != null) {
@ -379,7 +379,7 @@ public class RegistryService {
if (verification != null && verification.getVerificationType().equals("member")) {
Integer coPersonId = calls.getCoPersonIdByEmail(verification.getEmail());
if (coPersonId != null) {
if (coPersonId.equals(calls.getCoPersonIdByIdentifier())) {
if (verification.getEmail().equalsIgnoreCase(authorizationService.getEmail())) {
if (verification.getVerificationCode().equals(code)) {
Integer couId = calls.getCouId(verification.getType(), verification.getEntity(), false);
if (couId != null) {

View File

@ -1,7 +1,14 @@
package eu.dnetlib.openaire.usermanagement.utils;
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component("AuthorizationService")
public class AuthorizationService {
@ -47,4 +54,30 @@ public class AuthorizationService {
public boolean isCommunity(String type) {
return mapType(type, false).equals("community");
}
public List<String> getRoles() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null) {
List<GrantedAuthority> authorities = (List<GrantedAuthority>) authentication.getAuthorities();
if (authorities != null) {
List<String> roles = new ArrayList<>();
authorities.forEach((authority) -> {
roles.add(authority.getAuthority());
});
return roles;
}
}
return null;
}
public String getAaiId() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return authentication instanceof OIDCAuthenticationToken ? ((OIDCAuthenticationToken)authentication).getSub() : null;
}
public String getEmail() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return authentication instanceof OIDCAuthenticationToken ? ((OIDCAuthenticationToken)authentication).getUserInfo().getEmail() : null;
}
}