diff --git a/Dockerfile b/Dockerfile index edbcbdb..26cc0da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,8 @@ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositorie RUN apk add gcc g++ RUN go env && CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -ldflags '-linkmode external -extldflags "-static"' -o next-terminal main.go -FROM guacamole/guacd:1.2.0 +FROM guacamole/guacd:1.3.0 +USER root LABEL MAINTAINER="helloworld1024@foxmail.com" diff --git a/docs/faq.md b/docs/faq.md index f845f6a..3479dc2 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -52,6 +52,13 @@ docker rm -f +
+ ssh协议中文字体乱码怎么办? + +参考[安装字体](install-naive.md)章节,给系统安装中文字体。 + +
+
ssh协议类型的资产连接模式有什么区别? diff --git a/docs/install-naive.md b/docs/install-naive.md index 43605ad..d967155 100644 --- a/docs/install-naive.md +++ b/docs/install-naive.md @@ -22,9 +22,9 @@ sudo apt-get install libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin li 下载&解压&configure ```shell -wget https://mirror.bit.edu.cn/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz -tar -xzf guacamole-server-1.2.0.tar.gz -cd guacamole-server-1.2.0 +wget https://archive.apache.org/dist/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz +tar -xzf guacamole-server-1.3.0.tar.gz +cd guacamole-server-1.3.0 ./configure --with-init-dir=/etc/init.d ``` @@ -32,7 +32,7 @@ cd guacamole-server-1.2.0 ```shell ------------------------------------------------ -guacamole-server version 1.2.0 +guacamole-server version 1.3.0 ------------------------------------------------ Library status: @@ -49,13 +49,13 @@ guacamole-server version 1.2.0 libVNCServer ........ yes libvorbis ........... yes libpulse ............ yes - libwebsockets ....... no + libwebsockets ....... yes libwebp ............. yes wsock32 ............. no Protocol support: - Kubernetes .... no + Kubernetes .... yes RDP ........... yes SSH ........... yes Telnet ........ yes @@ -72,7 +72,6 @@ guacamole-server version 1.2.0 Systemd units: no Type "make" to compile guacamole-server. - ``` 编译和安装 diff --git a/main.go b/main.go index 79d66af..26a068f 100644 --- a/main.go +++ b/main.go @@ -13,7 +13,7 @@ import ( "github.com/labstack/gommon/log" ) -const Version = "v0.4.1" +const Version = "v0.5.0" func main() { err := Run() diff --git a/pkg/service/property.go b/pkg/service/property.go index 8894fb6..2d2f330 100644 --- a/pkg/service/property.go +++ b/pkg/service/property.go @@ -227,7 +227,7 @@ func (r PropertyService) InitProperties() error { if len(propertyMap[guacd.DisableGlyphCaching]) == 0 { property := model.Property{ Name: guacd.DisableGlyphCaching, - Value: "false", + Value: "true", } if err := r.propertyRepository.Create(&property); err != nil { return err diff --git a/server/api/asset.go b/server/api/asset.go index 59f38c0..5565664 100644 --- a/server/api/asset.go +++ b/server/api/asset.go @@ -99,6 +99,11 @@ func AssetImportEndpoint(c echo.Context) error { Owner: account.ID, } + if len(record) >= 10 { + tags := strings.ReplaceAll(record[9], "|", ",") + asset.Tags = tags + } + err := assetRepository.Create(&asset) if err != nil { errorCount++ diff --git a/web/package.json b/web/package.json index 45bfe3d..c9c2446 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "next-terminal", - "version": "0.4.1", + "version": "0.5.0", "private": true, "dependencies": { "@ant-design/icons": "^4.3.0", diff --git a/web/src/components/asset/Asset.js b/web/src/components/asset/Asset.js index 36af07c..371d9e3 100644 --- a/web/src/components/asset/Asset.js +++ b/web/src/components/asset/Asset.js @@ -470,11 +470,22 @@ class Asset extends Component { if (short && short.length > 20) { short = short.substring(0, 20) + " ..."; } - return ( - - {short} - - ); + + if (hasPermission(record['owner'])) { + return ( + + ); + } else { + return ( + + {short} + + ); + } }, sorter: true, }, { @@ -688,6 +699,7 @@ class Asset extends Component { ssh vnc telnet + kubernetes @@ -876,7 +888,7 @@ class Asset extends Component { + ); + } else { + return ( + + {short} + + ); + } }, sorter: true, }, { diff --git a/web/src/components/credential/Credential.js b/web/src/components/credential/Credential.js index 89f0263..a41ef74 100644 --- a/web/src/components/credential/Credential.js +++ b/web/src/components/credential/Credential.js @@ -335,16 +335,27 @@ class Credential extends Component { title: '凭证名称', dataIndex: 'name', key: 'name', - render: (name, record) => { + render: (name, record, index) => { let short = name; if (short && short.length > 20) { short = short.substring(0, 20) + " ..."; } - return ( - - {short} - - ); + if (hasPermission(record['owner'])) { + return ( + + ); + } else { + return ( + + {short} + + ); + } }, sorter: true, }, { diff --git a/web/src/components/dashboard/Dashboard.css b/web/src/components/dashboard/Dashboard.css index e376a3d..6557dc8 100644 --- a/web/src/components/dashboard/Dashboard.css +++ b/web/src/components/dashboard/Dashboard.css @@ -1,4 +1,7 @@ .text-center{ width: 100px; text-align: center; +} +.disable-link { + pointer-events: none; } \ No newline at end of file diff --git a/web/src/components/dashboard/Dashboard.js b/web/src/components/dashboard/Dashboard.js index a7c9fc1..713d821 100644 --- a/web/src/components/dashboard/Dashboard.js +++ b/web/src/components/dashboard/Dashboard.js @@ -5,7 +5,6 @@ import request from "../../common/request"; import './Dashboard.css' import {Link} from "react-router-dom"; import {Area} from '@ant-design/charts'; - import {isAdmin} from "../../service/permission"; class Dashboard extends Component { @@ -50,6 +49,12 @@ class Dashboard extends Component { }, () => this.getD()) } + handleLinkClick = (e) => { + if (!isAdmin()) { + e.preventDefault(); + } + } + render() { const config = { @@ -71,7 +76,7 @@ class Dashboard extends Component { - + }/> @@ -96,7 +101,7 @@ class Dashboard extends Component { - + }/> diff --git a/web/src/components/session/OfflineSession.js b/web/src/components/session/OfflineSession.js index 8302ef7..2cc47c0 100644 --- a/web/src/components/session/OfflineSession.js +++ b/web/src/components/session/OfflineSession.js @@ -403,6 +403,7 @@ class OfflineSession extends Component { ssh vnc telnet + kubernetes diff --git a/web/src/components/session/OnlineSession.js b/web/src/components/session/OnlineSession.js index f42de97..47b6f81 100644 --- a/web/src/components/session/OnlineSession.js +++ b/web/src/components/session/OnlineSession.js @@ -374,6 +374,7 @@ class OnlineSession extends Component { ssh vnc telnet + kubernetes diff --git a/web/src/components/user/User.js b/web/src/components/user/User.js index 44a9ef3..602c9b4 100644 --- a/web/src/components/user/User.js +++ b/web/src/components/user/User.js @@ -304,6 +304,19 @@ class User extends Component { dataIndex: 'username', key: 'username', sorter: true, + render: (username, record, index) => { + return ( + + ); + } }, { title: '用户昵称', dataIndex: 'nickname', diff --git a/web/src/components/user/UserGroup.js b/web/src/components/user/UserGroup.js index fef32e8..73b4e99 100644 --- a/web/src/components/user/UserGroup.js +++ b/web/src/components/user/UserGroup.js @@ -269,6 +269,13 @@ class UserGroup extends Component { title: '名称', dataIndex: 'name', sorter: true, + render: (name, record, index) => { + return ( + + ); + } }, { title: '授权资产', dataIndex: 'assetCount',