From 0761c40c7a4bd5774cb96006757d8242548b37cb Mon Sep 17 00:00:00 2001 From: dushixiang Date: Sun, 21 Feb 2021 17:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=99=AE=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=B8=8D=E8=83=BD=E6=8E=A5=E5=85=A5=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9A=84=E8=B5=84=E4=BA=A7=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/resource-sharer.go | 30 +++++++++++++++++++++++++----- web/src/components/access/Term.js | 22 ++++++++++++++++++++-- 2 files changed, 45 insertions(+), 7 deletions(-) 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) {