diff --git a/pkg/model/resource-sharer.go b/pkg/model/resource-sharer.go index 5c3087a..1139b77 100644 --- a/pkg/model/resource-sharer.go +++ b/pkg/model/resource-sharer.go @@ -151,19 +151,39 @@ func AddSharerResources(userGroupId, userId, resourceType string, resourceIds [] } func FindAssetIdsByUserId(userId string) (assetIds []string, err error) { + // 查询当前用户创建的资产 + var ownerAssetIds, sharerAssetIds []string + asset := Asset{} + err = global.DB.Table(asset.TableName()).Select("id").Where("owner = ?", userId).Find(&ownerAssetIds).Error + if err != nil { + return nil, err + } + + // 查询其他用户授权给该用户的资产 groupIds, err := FindUserGroupIdsByUserId(userId) if err != nil { return nil, err } - db := global.DB - db = db.Table("resource_sharers").Select("resource_id").Where("user_id = ?", userId) + db := global.DB.Table("resource_sharers").Select("resource_id").Where("user_id = ?", userId) if groupIds != nil && len(groupIds) > 0 { db = db.Or("user_group_id in ?", groupIds) } - err = db.Find(&assetIds).Error - if assetIds == nil { - assetIds = make([]string, 0) + err = db.Find(&sharerAssetIds).Error + if err != nil { + return nil, err } + + // 合并查询到的资产ID + assetIds = make([]string, 0) + + if ownerAssetIds != nil { + assetIds = append(assetIds, ownerAssetIds...) + } + + if sharerAssetIds != nil { + assetIds = append(assetIds, sharerAssetIds...) + } + return } diff --git a/web/src/components/access/Term.js b/web/src/components/access/Term.js index 8cc6ed1..786cc9d 100644 --- a/web/src/components/access/Term.js +++ b/web/src/components/access/Term.js @@ -7,8 +7,8 @@ import {getToken, isEmpty} from "../../utils/utils"; import {FitAddon} from 'xterm-addon-fit'; import "./Access.css" import request from "../../common/request"; -import {Affix, Button, Col, Drawer, message, Row} from "antd"; -import {AppstoreTwoTone} from "@ant-design/icons"; +import {Affix, Button, Col, Drawer, message, Modal, Row} from "antd"; +import {AppstoreTwoTone, ExclamationCircleOutlined} from "@ant-design/icons"; import Draggable from "react-draggable"; import FileSystem from "./FileSystem"; @@ -141,6 +141,24 @@ class Term extends Component { } } + showMessage(msg) { + message.destroy(); + Modal.confirm({ + title: '提示', + icon: , + content: msg, + centered: true, + okText: '重新连接', + cancelText: '关闭页面', + onOk() { + window.location.reload(); + }, + onCancel() { + window.close(); + }, + }); + } + async createSession(assetsId) { let result = await request.post(`/sessions?assetId=${assetsId}&mode=naive`); if (result['code'] !== 1) {