Skip to content

Commit b011cd7

Browse files
committed
feat: add tool creation with automatic permissions and cache refresh
--bug=1057901 --user=刘瑞斌 【资源授权】社区版从工具商店添加工具失败 https://www.tapd.cn/62980211/s/1722159
1 parent 873d4af commit b011cd7

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

apps/tools/serializers/tool.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,8 +498,9 @@ def add(self, instance, with_valid=True):
498498
if internal_tool is None:
499499
raise AppApiException(500, _('Tool does not exist'))
500500

501+
tool_id = uuid.uuid7()
501502
tool = Tool(
502-
id=uuid.uuid7(),
503+
id=tool_id,
503504
name=instance.get('name', internal_tool.name),
504505
desc=internal_tool.desc,
505506
code=internal_tool.code,
@@ -516,6 +517,21 @@ def add(self, instance, with_valid=True):
516517
)
517518
tool.save()
518519

520+
# 自动授权给创建者
521+
WorkspaceUserResourcePermission(
522+
target=tool_id,
523+
auth_target_type=AuthTargetType.TOOL,
524+
permission_list=[ResourcePermission.VIEW, ResourcePermission.MANAGE],
525+
workspace_id=self.data.get('workspace_id'),
526+
user_id=self.data.get('user_id'),
527+
auth_type=ResourceAuthType.RESOURCE_PERMISSION_GROUP
528+
).save()
529+
530+
# 刷新缓存
531+
version = Cache_Version.PERMISSION_LIST.get_version()
532+
key = Cache_Version.PERMISSION_LIST.get_key(user_id=self.data.get('user_id'))
533+
cache.delete(key, version=version)
534+
519535
return ToolModelSerializer(tool).data
520536

521537

0 commit comments

Comments
 (0)