diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminPermissionController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminPermissionController.java
index 9706505..4181f3e 100644
--- a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminPermissionController.java
+++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminPermissionController.java
@@ -16,6 +16,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import com.supwisdom.institute.backend.base.api.v1.vo.response.PermissionTreeResponseData;
+import com.supwisdom.institute.backend.base.domain.entity.Permission;
 import com.supwisdom.institute.backend.base.domain.model.PermissionTreeNode;
 import com.supwisdom.institute.backend.base.domain.service.PermissionService;
 import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse;
@@ -29,19 +30,16 @@
   @Autowired
   private PermissionService permissionService;
 
-//  @GetMapping(path = "/tree", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
-//  @ResponseStatus(value = HttpStatus.OK)
-//  @ResponseBody
-//  public DefaultApiResponse<PermissionTreeResponseData> tree() {
-//    
-//    Map<String, Object> mapBean = new HashMap<String, Object>();
-//    //mapBean.put("type", Permission.TYPE_MENU);
-//
-//    PermissionTreeNode tree = permissionService.selectPermissionTree(mapBean);
-//
-//    PermissionTreeResponseData data = PermissionTreeResponseData.of(tree);
-//
-//    return new DefaultApiResponse<PermissionTreeResponseData>(data);
-//  }
+  @GetMapping(path = "/tree", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+  @ResponseStatus(value = HttpStatus.OK)
+  @ResponseBody
+  public DefaultApiResponse<PermissionTreeResponseData> tree() {
+    
+    PermissionTreeNode tree = permissionService.selectPermissionTree(Permission.APPLICATION_ID, null);
+
+    PermissionTreeResponseData data = PermissionTreeResponseData.of(tree);
+
+    return new DefaultApiResponse<PermissionTreeResponseData>(data);
+  }
   
 }
diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java
index ff500bf..39fe4e2 100644
--- a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java
+++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java
@@ -63,7 +63,9 @@
   public PermissionTreeNode selectPermissionTree(String applicationId, String type) {
 
     Map<String, Object> mapBean = new HashMap<String, Object>();
-    mapBean.put("type", type);
+    if (StringUtils.isNotBlank(type)) {
+      mapBean.put("type", type);
+    }
     
     String rootTreeNodeId = "0";
     
