1313from application .api .application_stats import ApplicationStatsAPI
1414from common import result
1515from common .auth import TokenAuth
16+ from common .auth .authentication import has_permissions
17+ from common .constants .permission_constants import PermissionConstants , RoleConstants
1618from homepage .api .home_page_api import ApplicationTokensRankingAPI , ApplicationQuestionRankingAPI , UserTokensRankingAPI , \
1719 ApplicationAggregationAPI , KnowledgeAggregationAPI , ToolAggregationAPI , ModelAggregationAPI , \
1820 ApplicationMonitoringAPI , RankingBaseAPI , TokensAggregationAPI , RankingBaseExportAPI
@@ -35,6 +37,9 @@ class ChatRecordAggregation(APIView):
3537 responses = TokensAggregationAPI .get_response (),
3638 tags = [_ ("Home page" )],
3739 )
40+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
41+ RoleConstants .USER .get_workspace_role (),
42+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
3843 def get (self , request : Request , workspace_id : str ):
3944 return result .success (
4045 HomePageSerializer .ChatRecordAggregation (
@@ -57,6 +62,9 @@ class TokensAggregation(APIView):
5762 responses = TokensAggregationAPI .get_response (),
5863 tags = [_ ("Home page" )],
5964 )
65+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
66+ RoleConstants .USER .get_workspace_role (),
67+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
6068 def get (self , request : Request , workspace_id : str ):
6169 return result .success (
6270 HomePageSerializer .TokensAggregation (
@@ -79,6 +87,9 @@ class ApplicationTokensRankingExport(APIView):
7987 responses = RankingBaseExportAPI .get_response (),
8088 tags = [_ ("Home page" )],
8189 )
90+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
91+ RoleConstants .USER .get_workspace_role (),
92+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
8293 def get (self , request : Request , workspace_id : str ):
8394 return HomePageSerializer .ApplicationTokensRanking (
8495 data = {'user_id' : request .user .id , 'workspace_id' : workspace_id ,
@@ -101,6 +112,9 @@ class ApplicationTokensRanking(APIView):
101112 responses = ApplicationTokensRankingAPI .get_response (),
102113 tags = [_ ("Home page" )],
103114 )
115+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
116+ RoleConstants .USER .get_workspace_role (),
117+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
104118 def get (self , request : Request , workspace_id : str , current_page : int , page_size : int ):
105119 return result .success (HomePageSerializer .ApplicationTokensRanking (
106120 data = {'user_id' : request .user .id , 'workspace_id' : workspace_id ,
@@ -123,6 +137,9 @@ class ApplicationQuestionRankingExport(APIView):
123137 responses = RankingBaseExportAPI .get_response (),
124138 tags = [_ ("Home page" )],
125139 )
140+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
141+ RoleConstants .USER .get_workspace_role (),
142+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
126143 def get (self , request : Request , workspace_id : str ):
127144 return HomePageSerializer .ApplicationQuestionRanking (
128145 data = {'user_id' : request .user .id , 'workspace_id' : workspace_id ,
@@ -145,6 +162,9 @@ class ApplicationQuestionRanking(APIView):
145162 responses = ApplicationQuestionRankingAPI .get_response (),
146163 tags = [_ ("Home page" )],
147164 )
165+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
166+ RoleConstants .USER .get_workspace_role (),
167+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
148168 def get (self , request : Request , workspace_id : str , current_page : int , page_size : int ):
149169 return result .success (HomePageSerializer .ApplicationQuestionRanking (
150170 data = {'user_id' : request .user .id , 'workspace_id' : workspace_id ,
@@ -167,6 +187,9 @@ class UserTokensRankingExport(APIView):
167187 responses = RankingBaseExportAPI .get_response (),
168188 tags = [_ ("Home page" )],
169189 )
190+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
191+ RoleConstants .USER .get_workspace_role (),
192+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
170193 def get (self , request : Request , workspace_id : str ):
171194 return HomePageSerializer .ApplicationUserTokenRanking (
172195 data = {'user_id' : request .user .id , 'workspace_id' : workspace_id ,
@@ -188,6 +211,9 @@ class UserTokensRanking(APIView):
188211 responses = UserTokensRankingAPI .get_response (),
189212 tags = [_ ("Home page" )],
190213 )
214+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
215+ RoleConstants .USER .get_workspace_role (),
216+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
191217 def get (self , request : Request , workspace_id : str , current_page : int , page_size : int ):
192218 return result .success (HomePageSerializer .ApplicationUserTokenRanking (
193219 data = {'user_id' : request .user .id , 'workspace_id' : workspace_id ,
@@ -210,6 +236,9 @@ class ApplicationMonitoring(APIView):
210236 responses = ApplicationMonitoringAPI .get_response (),
211237 tags = [_ ('Home page' )] # type: ignore
212238 )
239+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
240+ RoleConstants .USER .get_workspace_role (),
241+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
213242 def get (self , request : Request , workspace_id : str ):
214243 return result .success (
215244 HomePageSerializer .ApplicationMonitoring (
@@ -234,6 +263,9 @@ class ApplicationAggregation(APIView):
234263 responses = ApplicationAggregationAPI .get_response (),
235264 tags = [_ ("Home page" )],
236265 )
266+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
267+ RoleConstants .USER .get_workspace_role (),
268+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
237269 def get (self , request : Request , workspace_id : str ):
238270 return result .success (
239271 HomePageSerializer .Application (
@@ -252,6 +284,9 @@ class KnowledgeAggregation(APIView):
252284 responses = KnowledgeAggregationAPI .get_response (),
253285 tags = [_ ("Home page" )],
254286 )
287+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
288+ RoleConstants .USER .get_workspace_role (),
289+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
255290 def get (self , request : Request , workspace_id : str ):
256291 return result .success (
257292 HomePageSerializer .Knowledge (
@@ -270,6 +305,9 @@ class ToolAggregation(APIView):
270305 responses = ToolAggregationAPI .get_response (),
271306 tags = [_ ("Home page" )],
272307 )
308+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
309+ RoleConstants .USER .get_workspace_role (),
310+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
273311 def get (self , request : Request , workspace_id : str ):
274312 return result .success (
275313 HomePageSerializer .Tool (
@@ -288,6 +326,9 @@ class ModelAggregation(APIView):
288326 responses = ModelAggregationAPI .get_response (),
289327 tags = [_ ("Home page" )],
290328 )
329+ @has_permissions (PermissionConstants .HOMEPAGE_READ .get_workspace_permission (),
330+ RoleConstants .USER .get_workspace_role (),
331+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role ())
291332 def get (self , request : Request , workspace_id : str ):
292333 return result .success (
293334 HomePageSerializer .Model (
0 commit comments