From c813f7bd07d401282c1128ed40b8d60d8f563cbe Mon Sep 17 00:00:00 2001
From: tengge <930372551@qq.com>
Date: Sun, 31 May 2020 19:09:53 +0800
Subject: [PATCH] fix bug
---
server/server/assets/scene/handle_save.go | 21 +++++++++++++++++++++
web/src/editor/assets/ScenePanel.jsx | 4 ++--
web/src/editor/menu/SceneMenu.jsx | 19 ++++++++++---------
3 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/server/server/assets/scene/handle_save.go b/server/server/assets/scene/handle_save.go
index 32a8fef6..fac3fe6a 100644
--- a/server/server/assets/scene/handle_save.go
+++ b/server/server/assets/scene/handle_save.go
@@ -72,6 +72,27 @@ func Save(w http.ResponseWriter, r *http.Request) {
collectionName = "Scene" + helper.TimeToString(now, "yyyyMMddHHmmss")
version = 0
} else { // edit scene
+ if server.Config.Authority.Enabled {
+ user, _ := server.GetCurrentUser(r)
+ // save other people's scene
+ if doc["UserID"] != nil && doc["UserID"].(string) != user.ID {
+ helper.WriteJSON(w, server.Result{
+ Code: 300,
+ Msg: "Permission denied.",
+ })
+ return
+ }
+
+ // not admin save scene without UserID
+ if doc["UserID"] == nil && user.RoleName != "Administrator" {
+ helper.WriteJSON(w, server.Result{
+ Code: 300,
+ Msg: "Permission denied.",
+ })
+ return
+ }
+ }
+
collectionName = doc["CollectionName"].(string)
if doc["Version"] != nil {
version = int(doc["Version"].(int32))
diff --git a/web/src/editor/assets/ScenePanel.jsx b/web/src/editor/assets/ScenePanel.jsx
index ef93f6c9..7270fce1 100644
--- a/web/src/editor/assets/ScenePanel.jsx
+++ b/web/src/editor/assets/ScenePanel.jsx
@@ -52,8 +52,8 @@ class ScenePanel extends React.Component {
title: n.Name,
icon: 'scenes',
cornerText: `v${n.Version}`,
- showEditButton: !enableAuthority || app.server.isAdmin || n.Username === app.server.username,
- showDeleteButton: !enableAuthority || app.server.isAdmin || n.Username === app.server.username
+ //showEditButton: !enableAuthority || app.server.isAdmin || n.Username === app.server.username,
+ //showDeleteButton: !enableAuthority || app.server.isAdmin || n.Username === app.server.username
});
});
diff --git a/web/src/editor/menu/SceneMenu.jsx b/web/src/editor/menu/SceneMenu.jsx
index d4504fec..dc0a5b6f 100644
--- a/web/src/editor/menu/SceneMenu.jsx
+++ b/web/src/editor/menu/SceneMenu.jsx
@@ -50,10 +50,10 @@ class SceneMenu extends React.Component {
: null}
{!enableAuthority || authorities.includes('SAVE_SCENE') ? : null}
+ /> : null}
{!enableAuthority || authorities.includes('SAVE_SCENE') ? : null}
+ /> : null}
{!enableAuthority || authorities.includes('SAVE_SCENE') ? : null}
{!enableAuthority || isLogin ?