feat: add tool creation with automatic permissions and cache refresh
--bug=1057901 --user=刘瑞斌 【资源授权】社区版从工具商店添加工具失败 https://www.tapd.cn/62980211/s/1722159
This commit is contained in:
parent
873d4af46b
commit
b011cd7d26
@ -498,8 +498,9 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
if internal_tool is None:
|
if internal_tool is None:
|
||||||
raise AppApiException(500, _('Tool does not exist'))
|
raise AppApiException(500, _('Tool does not exist'))
|
||||||
|
|
||||||
|
tool_id = uuid.uuid7()
|
||||||
tool = Tool(
|
tool = Tool(
|
||||||
id=uuid.uuid7(),
|
id=tool_id,
|
||||||
name=instance.get('name', internal_tool.name),
|
name=instance.get('name', internal_tool.name),
|
||||||
desc=internal_tool.desc,
|
desc=internal_tool.desc,
|
||||||
code=internal_tool.code,
|
code=internal_tool.code,
|
||||||
@ -516,6 +517,21 @@ class ToolSerializer(serializers.Serializer):
|
|||||||
)
|
)
|
||||||
tool.save()
|
tool.save()
|
||||||
|
|
||||||
|
# 自动授权给创建者
|
||||||
|
WorkspaceUserResourcePermission(
|
||||||
|
target=tool_id,
|
||||||
|
auth_target_type=AuthTargetType.TOOL,
|
||||||
|
permission_list=[ResourcePermission.VIEW, ResourcePermission.MANAGE],
|
||||||
|
workspace_id=self.data.get('workspace_id'),
|
||||||
|
user_id=self.data.get('user_id'),
|
||||||
|
auth_type=ResourceAuthType.RESOURCE_PERMISSION_GROUP
|
||||||
|
).save()
|
||||||
|
|
||||||
|
# 刷新缓存
|
||||||
|
version = Cache_Version.PERMISSION_LIST.get_version()
|
||||||
|
key = Cache_Version.PERMISSION_LIST.get_key(user_id=self.data.get('user_id'))
|
||||||
|
cache.delete(key, version=version)
|
||||||
|
|
||||||
return ToolModelSerializer(tool).data
|
return ToolModelSerializer(tool).data
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user