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

liuhongyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new 1d8879a4a8 feat: Add new role search criteria (#6282)
1d8879a4a8 is described below

commit 1d8879a4a8b99ec667fe19fa3c8a8db20fd0d9a3
Author: yangyx107 <[email protected]>
AuthorDate: Tue Feb 3 16:29:10 2026 +0800

    feat: Add new role search criteria (#6282)
    
    * feat: Add new role search criteria
    
    * feat: Add new role search criteria
    
    * feat: Add new role search criteria
    
    ---------
    
    Co-authored-by: aias00 <[email protected]>
---
 .../shenyu/admin/controller/PluginController.java  |  5 ++--
 .../shenyu/admin/model/query/PluginQuery.java      | 30 ++++++++++++++++++++++
 .../src/main/resources/mappers/plugin-sqlmap.xml   |  4 +++
 .../admin/controller/PluginControllerTest.java     |  1 +
 4 files changed, 38 insertions(+), 2 deletions(-)

diff --git 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
index c2cdae2bfb..ab6e5e4787 100644
--- 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
+++ 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/PluginController.java
@@ -65,15 +65,16 @@ public class PluginController implements 
PagedController<PluginQueryCondition, P
      *
      * @param name        plugin name.
      * @param enabled     plugin enabled.
+     * @param role        plugin role.
      * @param currentPage current page.
      * @param pageSize    page size.
      * @return {@linkplain ShenyuAdminResult}
      */
     @GetMapping
-    public ShenyuAdminResult queryPlugins(final String name, final Integer 
enabled,
+    public ShenyuAdminResult queryPlugins(final String name, final Integer 
enabled, final String role,
                                           @NotNull final Integer currentPage,
                                           @NotNull final Integer pageSize) {
-        CommonPager<PluginVO> commonPager = pluginService.listByPage(new 
PluginQuery(name, enabled, new PageParameter(currentPage, pageSize)));
+        CommonPager<PluginVO> commonPager = pluginService.listByPage(new 
PluginQuery(name, enabled, role, new PageParameter(currentPage, pageSize)));
         return ShenyuAdminResult.success(ShenyuResultMessage.QUERY_SUCCESS, 
commonPager);
     }
     
diff --git 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
index b534fe933b..f8f67ae276 100644
--- 
a/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
+++ 
b/shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/PluginQuery.java
@@ -34,6 +34,11 @@ public class PluginQuery implements Serializable {
      */
     private String name;
 
+    /**
+     * plugin role.
+     */
+    private String role;
+
     /**
      * plugin enabled.
      */
@@ -53,6 +58,13 @@ public class PluginQuery implements Serializable {
         this.pageParameter = pageParameter;
     }
 
+    public PluginQuery(final String name, final Integer enabled, final String 
role, final PageParameter pageParameter) {
+        this.name = name;
+        this.enabled = enabled;
+        this.role = role;
+        this.pageParameter = pageParameter;
+    }
+
     /**
      * Gets the value of name.
      *
@@ -89,6 +101,24 @@ public class PluginQuery implements Serializable {
         this.enabled = enabled;
     }
 
+    /**
+     * Gets the value of role.
+     *
+     * @return the value of role
+     */
+    public String getRole() {
+        return role;
+    }
+
+    /**
+     * Sets the role.
+     *
+     * @param role role
+     */
+    public void setRole(final String role) {
+        this.role = role;
+    }
+
     /**
      * Gets the value of pageParameter.
      *
diff --git a/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml 
b/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
index f8dbacedfc..da687b1c7c 100644
--- a/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
+++ b/shenyu-admin/src/main/resources/mappers/plugin-sqlmap.xml
@@ -93,6 +93,10 @@
                 <bind name="nameLike" value="('%' + name + '%')"/>
                 AND name LIKE #{nameLike, jdbcType=VARCHAR}
             </if>
+            <if test="role != null and role != ''">
+                <bind name="role" value="('%' + role + '%')"/>
+                AND role LIKE #{role, jdbcType=VARCHAR}
+            </if>
             <if test="enabled != null">
                 AND enabled = #{enabled, jdbcType=TINYINT}
             </if>
diff --git 
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
 
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
index 72772881a3..897ac861f9 100644
--- 
a/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
+++ 
b/shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/PluginControllerTest.java
@@ -110,6 +110,7 @@ public final class PluginControllerTest {
         this.mockMvc.perform(MockMvcRequestBuilders.get("/plugin-template")
                         .param("name", "t_n")
                         .param("enabled", "1")
+                        .param("role", "super")
                         .param("currentPage", 
String.valueOf(pageParameter.getCurrentPage()))
                         .param("pageSize", 
String.valueOf(pageParameter.getPageSize())))
                 .andExpect(status().isOk())

Reply via email to