perf: 统一应用树 (#6535)

* perf: 添加应用树api

* perf: perms tree

* perf: 统一应用树

* perf: 修改icon

* perf: stash it

* perf: 优化应用账号

* perf: 基本完成应用账号重构

* perf: 修改翻译

Co-authored-by: ibuler <ibuler@qq.com>
This commit is contained in:
fit2bot
2021-07-27 16:06:00 +08:00
committed by GitHub
parent d347ed9862
commit 905d0d5131
29 changed files with 626 additions and 421 deletions

View File

@@ -4,6 +4,7 @@ from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from common.mixins.api import CommonApiMixin
from common.tree import TreeNodeSerializer
from applications.api.mixin import (
SerializeApplicationToTreeNodeMixin
)
@@ -52,11 +53,13 @@ class ApplicationsAsTreeMixin(SerializeApplicationToTreeNodeMixin):
"""
将应用序列化成树的结构返回
"""
serializer_class = TreeNodeSerializer
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
data = self.serialize_applications_with_org(queryset)
return Response(data=data)
tree_nodes = self.serialize_applications_with_org(queryset)
serializer = self.get_serializer(tree_nodes, many=True)
return Response(data=serializer.data)
class UserAllGrantedApplicationsAsTreeApi(ApplicationsAsTreeMixin, UserAllGrantedApplicationsApi):

View File

@@ -8,7 +8,7 @@ from django.utils.translation import ugettext_lazy as _
from common.utils import lazyproperty
from .base import BasePermission
from users.models import User
from applications.const import ApplicationCategoryChoices, ApplicationTypeChoices
from applications.const import AppCategory, AppType
__all__ = [
'ApplicationPermission',
@@ -17,10 +17,10 @@ __all__ = [
class ApplicationPermission(BasePermission):
category = models.CharField(
max_length=16, choices=ApplicationCategoryChoices.choices, verbose_name=_('Category')
max_length=16, choices=AppCategory.choices, verbose_name=_('Category')
)
type = models.CharField(
max_length=16, choices=ApplicationTypeChoices.choices, verbose_name=_('Type')
max_length=16, choices=AppType.choices, verbose_name=_('Type')
)
applications = models.ManyToManyField(
'applications.Application', related_name='granted_by_permissions', blank=True,
@@ -38,15 +38,15 @@ class ApplicationPermission(BasePermission):
@property
def category_remote_app(self):
return self.category == ApplicationCategoryChoices.remote_app.value
return self.category == AppCategory.remote_app.value
@property
def category_db(self):
return self.category == ApplicationCategoryChoices.db.value
return self.category == AppCategory.db.value
@property
def category_cloud(self):
return self.category == ApplicationCategoryChoices.cloud.value
return self.category == AppCategory.cloud.value
@lazyproperty
def users_amount(self):