|
80 | 80 | import org.apache.cloudstack.api.command.admin.user.RegisterUserKeysCmd; |
81 | 81 | import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd; |
82 | 82 | import org.apache.cloudstack.api.response.ApiKeyPairResponse; |
| 83 | +import org.apache.cloudstack.api.response.BaseRolePermissionResponse; |
83 | 84 | import org.apache.cloudstack.api.response.ListResponse; |
84 | 85 | import org.apache.cloudstack.api.response.UserTwoFactorAuthenticationSetupResponse; |
85 | 86 | import org.apache.cloudstack.auth.UserAuthenticator; |
@@ -2987,20 +2988,6 @@ private Boolean isApiKeySupersetOfPermission(List<RolePermissionEntity> baseKeyP |
2987 | 2988 | return roleService.roleHasPermission(apiNameToBaseKeyPermissions, comparedPermissions); |
2988 | 2989 | } |
2989 | 2990 |
|
2990 | | - private Boolean validatePermission(List<RolePermissionEntity> supersetPermissions, RolePermissionEntity comparedPermission) { |
2991 | | - for (RolePermissionEntity supersetPermission : supersetPermissions) { |
2992 | | - if (!supersetPermission.getRule().matches(comparedPermission.getRule().getRuleString())) { |
2993 | | - continue; |
2994 | | - } |
2995 | | - |
2996 | | - if (!supersetPermission.getPermission().equals(RolePermissionEntity.Permission.ALLOW) && (comparedPermission.getPermission() == RolePermissionEntity.Permission.ALLOW)) { |
2997 | | - return false; |
2998 | | - } |
2999 | | - return true; |
3000 | | - } |
3001 | | - return false; |
3002 | | - } |
3003 | | - |
3004 | 2991 | private void markExpiredKeysWithStateExpired(ApiKeyPair apiKeyPair) { |
3005 | 2992 | if (apiKeyPair.hasEndDatePassed()) { |
3006 | 2993 | internalDeleteApiKey(apiKeyPair); |
@@ -3073,6 +3060,18 @@ private void addKeypairResponse(ApiKeyPair keyPair, List<ApiKeyPairResponse> res |
3073 | 3060 | return; |
3074 | 3061 | } |
3075 | 3062 | ApiKeyPairResponse response = cmd._responseGenerator.createKeyPairResponse(keyPair); |
| 3063 | + if (Boolean.TRUE.equals(cmd.getShowPermissions())) { |
| 3064 | + Account account = _accountDao.findById(keyPair.getAccountId()); |
| 3065 | + List<ApiKeyPairPermission> apiKeyPairPermissions = apiKeyPairService.findAllPermissionsByKeyPairId(keyPair.getId(), account.getRoleId()); |
| 3066 | + response.setPermissions(apiKeyPairPermissions.stream().map(apiKeyPairPermission -> { |
| 3067 | + BaseRolePermissionResponse rolePermissionResponse = new BaseRolePermissionResponse(); |
| 3068 | + rolePermissionResponse.setRule(apiKeyPairPermission.getRule()); |
| 3069 | + rolePermissionResponse.setDescription(apiKeyPairPermission.getDescription()); |
| 3070 | + rolePermissionResponse.setRulePermission(apiKeyPairPermission.getPermission()); |
| 3071 | + |
| 3072 | + return rolePermissionResponse; |
| 3073 | + }).collect(Collectors.toList())); |
| 3074 | + } |
3076 | 3075 | response.setObjectName(ApiConstants.USER_API_KEY); |
3077 | 3076 | responses.add(response); |
3078 | 3077 | } |
|
0 commit comments