From a86f0302de40eab3aac11fc8430b7c6b3bfc136e Mon Sep 17 00:00:00 2001 From: Mattrixwv Date: Sat, 15 Mar 2025 16:51:10 -0400 Subject: [PATCH] Buttons hidden by permissions --- .../aspect/RaidGroupAuthorizationAspect.java | 3 ++- .../raidbuilder/config/TokenService.java | 5 +++- .../raidbuilder/service/AccountService.java | 26 +++++++++---------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/mattrixwv/raidbuilder/aspect/RaidGroupAuthorizationAspect.java b/src/main/java/com/mattrixwv/raidbuilder/aspect/RaidGroupAuthorizationAspect.java index d1b72bf..d35d645 100644 --- a/src/main/java/com/mattrixwv/raidbuilder/aspect/RaidGroupAuthorizationAspect.java +++ b/src/main/java/com/mattrixwv/raidbuilder/aspect/RaidGroupAuthorizationAspect.java @@ -40,7 +40,7 @@ public class RaidGroupAuthorizationAspect{ private final RaidGroupPermissionService raidGroupPermissionService; - @Pointcut("@annotation(com.mattrixwv.raidbuilder.annotations.RaidGroupAuthorization)") + @Pointcut("@annotation(com.mattrixwv.raidbuilder.annotation.RaidGroupAuthorization)") public void raidGroupAuthorization(){ //Intentionally blank } @@ -90,6 +90,7 @@ public class RaidGroupAuthorizationAspect{ //Return if the account has a matching permission List raidGroupPermissions = raidGroupPermissionService.getByAccountId(account.getAccountId()); + log.debug("account permissions {}", raidGroupPermissions.stream().map(rgp -> rgp.getPermission())); for(RaidGroupPermission permission : raidGroupPermissions){ for(RaidGroupPermissionType permissionType : raidGroupAuthorization.permissions()){ if((permission.getRaidGroupId().equals(raidGroupId)) && (permission.getPermission() == permissionType)){ diff --git a/src/main/java/com/mattrixwv/raidbuilder/config/TokenService.java b/src/main/java/com/mattrixwv/raidbuilder/config/TokenService.java index 2a2c9a5..23058c1 100644 --- a/src/main/java/com/mattrixwv/raidbuilder/config/TokenService.java +++ b/src/main/java/com/mattrixwv/raidbuilder/config/TokenService.java @@ -15,6 +15,7 @@ import org.springframework.security.oauth2.jwt.JwtEncoderParameters; import com.fasterxml.jackson.databind.ObjectMapper; import com.mattrixwv.raidbuilder.entity.Account; +import com.mattrixwv.raidbuilder.entity.AccountPermission; import com.mattrixwv.raidbuilder.entity.GamePermission; import com.mattrixwv.raidbuilder.entity.RaidGroupPermission; import com.mattrixwv.raidbuilder.entity.RaidGroupRequest; @@ -46,7 +47,8 @@ public class TokenService{ log.debug("Generating access token for account {}", account.getAccountId()); - String scope = accountPermissionService.getByAccountId(account.getAccountId()).stream().map(GrantedAuthority::getAuthority).collect(Collectors.joining(" ")); + List accountPermissions = accountPermissionService.getByAccountId(account.getAccountId()); + String scope = accountPermissions.stream().map(GrantedAuthority::getAuthority).collect(Collectors.joining(" ")); List gamePermissions = gamePermissionService.getByAccountId(account.getAccountId()); List raidGroupPermissions = raidGroupPermissionService.getByAccountId(account.getAccountId()); List raidGroupRequests = raidGroupRequestService.getByAccountId(account.getAccountId()); @@ -59,6 +61,7 @@ public class TokenService{ .subject(account.getUsername()) .claim("scope", scope) .claim("accountId", account.getAccountId().toString()) + .claim("accountPermissions", mapper.valueToTree(accountPermissions).toString()) .claim("raidGroupPermissions", mapper.valueToTree(raidGroupPermissions).toString()) .claim("gamePermissions", mapper.valueToTree(gamePermissions).toString()) .claim("raidGroupRequests", mapper.valueToTree(raidGroupRequests).toString()) diff --git a/src/main/java/com/mattrixwv/raidbuilder/service/AccountService.java b/src/main/java/com/mattrixwv/raidbuilder/service/AccountService.java index 1490983..d384106 100644 --- a/src/main/java/com/mattrixwv/raidbuilder/service/AccountService.java +++ b/src/main/java/com/mattrixwv/raidbuilder/service/AccountService.java @@ -55,19 +55,6 @@ public class AccountService implements UserDetailsService{ //Save account account = accountRepository.save(account); - //Return the new account - return account; - } - - public Account confirmAccount(Account account){ - //Setup the confirmed values - account.setRefreshToken(null); - account.setRefreshTokenExpiration(null); - account.setAccountStatus(AccountStatus.ACTIVE); - - //Save the account - account = accountRepository.save(account); - //Give account default permissions AccountPermission accountPermission = new AccountPermission(); accountPermission.setAccountId(account.getAccountId()); @@ -84,6 +71,19 @@ public class AccountService implements UserDetailsService{ accountTutorialStatus.setInstanceTutorialStatus(TutorialStatus.NOT_COMPLETED); accountTutorialStatus = accountTutorialStatusService.createAccountTutorialStatus(accountTutorialStatus); + //Return the new account + return account; + } + + public Account confirmAccount(Account account){ + //Setup the confirmed values + account.setRefreshToken(null); + account.setRefreshTokenExpiration(null); + account.setAccountStatus(AccountStatus.ACTIVE); + + //Save the account + account = accountRepository.save(account); + //Return the account return account; }