You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2020/11/04 15:19:26 UTC

[archiva-redback-core] 03/03: Copying models to v2 REST services

This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva-redback-core.git

commit f56bd76d9f35306d6d94ff791bceaf7374f19657
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Wed Nov 4 15:45:49 2020 +0100

    Copying models to v2 REST services
---
 .../archiva/redback/rest/api/model/v2/Operation.java  | 13 +++++++++++++
 .../archiva/redback/rest/api/model/v2/Permission.java | 12 ++++++++++++
 .../archiva/redback/rest/api/model/v2/UserInfo.java   | 19 -------------------
 .../redback/rest/api/services/v2/UserService.java     | 17 +++++++++++++++++
 .../redback/rest/services/v2/DefaultUserService.java  |  6 ++++++
 .../rest/services/v2/NativeUserServiceTest.java       |  6 +++---
 6 files changed, 51 insertions(+), 22 deletions(-)

diff --git a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Operation.java b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Operation.java
index 0dc30e3..8e5616c 100644
--- a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Operation.java
+++ b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Operation.java
@@ -33,10 +33,13 @@ public class Operation
     implements Serializable
 {
     private static final long serialVersionUID = 3666638961610656624L;
+
     private String name;
 
     private String description;
 
+    private String descriptionKey;
+
     private boolean permanent;
 
     public Operation()
@@ -95,4 +98,14 @@ public class Operation
         sb.append( '}' );
         return sb.toString();
     }
+
+    public String getDescriptionKey( )
+    {
+        return descriptionKey;
+    }
+
+    public void setDescriptionKey( String descriptionKey )
+    {
+        this.descriptionKey = descriptionKey;
+    }
 }
diff --git a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Permission.java b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Permission.java
index 995bc9c..daf5f65 100644
--- a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Permission.java
+++ b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/Permission.java
@@ -38,6 +38,8 @@ public class Permission
 
     private String description;
 
+    private String descriptionKey;
+
     private Operation operation;
 
     private Resource resource;
@@ -104,4 +106,14 @@ public class Permission
         sb.append( '}' );
         return sb.toString();
     }
+
+    public String getDescriptionKey( )
+    {
+        return descriptionKey;
+    }
+
+    public void setDescriptionKey( String descriptionKey )
+    {
+        this.descriptionKey = descriptionKey;
+    }
 }
diff --git a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/UserInfo.java b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/UserInfo.java
index 800600d..274848c 100644
--- a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/UserInfo.java
+++ b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/model/v2/UserInfo.java
@@ -60,13 +60,6 @@ public class UserInfo
     private OffsetDateTime timestampLastPasswordChange;
 
     /**
-     * for roles update only <b>not return on user read</b>
-     *
-     * @since 2.0
-     */
-    private List<String> assignedRoles;
-
-    /**
      * with some userManagerImpl it's not possible to edit users;
      * @since 2.1
      */
@@ -258,17 +251,6 @@ public class UserInfo
         this.timestampLastPasswordChange = OffsetDateTime.ofInstant( timestampLastPasswordChange, ZoneId.systemDefault() );
     }
 
-    @Schema(description = "The roles assigned to the user")
-    public List<String> getAssignedRoles()
-    {
-        return assignedRoles;
-    }
-
-    public void setAssignedRoles( List<String> assignedRoles )
-    {
-        this.assignedRoles = assignedRoles;
-    }
-
     @Schema(description = "True, if this is user has readonly access")
     public boolean isReadOnly()
     {
@@ -326,7 +308,6 @@ public class UserInfo
             ", timestampAccountCreation='" + timestampAccountCreation + '\'' +
             ", timestampLastLogin='" + timestampLastLogin + '\'' +
             ", timestampLastPasswordChange='" + timestampLastPasswordChange + '\'' +
-            ", assignedRoles=" + assignedRoles +
             ", readOnly=" + readOnly +
             ", userManagerId='" + userManagerId + '\'' +
             ", validationToken='" + validationToken + '\'' +
diff --git a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/v2/UserService.java b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/v2/UserService.java
index bc61b92..50f13d2 100644
--- a/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/v2/UserService.java
+++ b/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/v2/UserService.java
@@ -57,6 +57,7 @@ import java.util.Collection;
 
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 import static org.apache.archiva.redback.rest.api.Constants.DEFAULT_PAGE_LIMIT;
+import static org.apache.archiva.redback.users.UserManager.GUEST_USERNAME;
 
 @Path( "/users" )
 @Tag(name = "v2")
@@ -481,6 +482,22 @@ public interface UserService
     Collection<Permission> getUserPermissions( @PathParam( "userId" ) String userName )
         throws RedbackServiceException;
 
+    @Path( GUEST_USERNAME+"/permissions" )
+    @GET
+    @Produces( { APPLICATION_JSON } )
+    @RedbackAuthorization( noRestriction = true )
+    @Operation( summary = "Returns a list of permissions assigned to the guest user.",
+        responses = {
+            @ApiResponse( responseCode = "200",
+                description = "If the list could be returned",
+                content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =
+                @Schema(implementation = Permission.class)))
+            )
+        }
+    )
+    Collection<Permission> getGuestPermissions(  )
+        throws RedbackServiceException;
+
     /**
      * @since 1.4
      */
diff --git a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/v2/DefaultUserService.java b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/v2/DefaultUserService.java
index 2051c6f..a037c6b 100644
--- a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/v2/DefaultUserService.java
+++ b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/v2/DefaultUserService.java
@@ -931,6 +931,12 @@ public class DefaultUserService
         }
     }
 
+    @Override
+    public Collection<Permission> getGuestPermissions( ) throws RedbackServiceException
+    {
+        return getUserPermissions( UserManager.GUEST_USERNAME );
+    }
+
     public void validateCredentialsLoose( User user )
         throws RedbackServiceException
     {
diff --git a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java
index 56e24ab..74aec54 100644
--- a/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java
+++ b/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/v2/NativeUserServiceTest.java
@@ -19,9 +19,9 @@ package org.apache.archiva.redback.rest.services.v2;
  */
 
 import io.restassured.response.Response;
-import org.apache.archiva.redback.rest.api.model.Operation;
-import org.apache.archiva.redback.rest.api.model.Permission;
-import org.apache.archiva.redback.rest.api.model.VerificationStatus;
+import org.apache.archiva.redback.rest.api.model.v2.Operation;
+import org.apache.archiva.redback.rest.api.model.v2.Permission;
+import org.apache.archiva.redback.rest.api.model.v2.VerificationStatus;
 import org.apache.archiva.redback.rest.api.model.v2.RegistrationKey;
 import org.apache.archiva.redback.rest.api.model.v2.User;
 import org.apache.archiva.redback.rest.services.mock.EmailMessage;