mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-05 09:21:02 +00:00
Asset favor (#3352)
* [Update] 拆分filter org * [Update] 修改session支持protocol搜索 * [Bugfix] 修复判断问题 * [Update] 支持收藏资产 * [update] 修改org resource queryset * [Update] 修改form serializer 对应的多对多字段 * [Bugfix] 修复其他组织取消收藏的bug * [Update] 去掉debug信息 * [Update] 修改remote app get queryset * [Update] 修改remote app get queryset * [Update] 修改没有授权时显示情况 * [Bugfix] 修复组织管理员查看用户权限失败问题 * [Update] 优化forms assets queryset设置
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
from rest_framework.generics import get_object_or_404
|
||||
from common.permissions import IsValidUser, IsOrgAdminOrAppUser
|
||||
from common.utils import get_logger
|
||||
from orgs.utils import set_to_root_org
|
||||
from orgs.utils import set_to_root_org, get_current_org, set_current_org, tmp_to_root_org
|
||||
from ..hands import User, UserGroup
|
||||
|
||||
|
||||
@@ -17,15 +17,24 @@ __all__ = [
|
||||
|
||||
class UserPermissionMixin:
|
||||
permission_classes = (IsOrgAdminOrAppUser,)
|
||||
current_org = None
|
||||
obj = None
|
||||
|
||||
def initial(self, *args, **kwargs):
|
||||
super().initial(*args, *kwargs)
|
||||
self.current_org = get_current_org()
|
||||
set_to_root_org()
|
||||
self.obj = self.get_obj()
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
set_to_root_org()
|
||||
return super().get(request, *args, **kwargs)
|
||||
# def dispatch(self, request, *args, **kwargs):
|
||||
# """不能这么做,校验权限时拿不到组织了"""
|
||||
# with tmp_to_root_org():
|
||||
# return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
# def get(self, request, *args, **kwargs):
|
||||
# """有的api重写了get方法"""
|
||||
# with tmp_to_root_org():
|
||||
# return super().get(request, *args, **kwargs)
|
||||
|
||||
def get_obj(self):
|
||||
user_id = self.kwargs.get('pk', '')
|
||||
@@ -40,6 +49,13 @@ class UserPermissionMixin:
|
||||
self.permission_classes = (IsValidUser,)
|
||||
return super().get_permissions()
|
||||
|
||||
def finalize_response(self, request, response, *args, **kwargs):
|
||||
response = super().finalize_response(request, response, *args, **kwargs)
|
||||
org = getattr(self, 'current_org', None)
|
||||
if org:
|
||||
set_current_org(org)
|
||||
return response
|
||||
|
||||
|
||||
class UserGroupPermissionMixin:
|
||||
obj = None
|
||||
|
Reference in New Issue
Block a user