This commit is contained in:
tengge 2020-05-31 19:09:53 +08:00
parent bd2949139d
commit c813f7bd07
3 changed files with 33 additions and 11 deletions

View File

@ -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))

View File

@ -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
});
});

View File

@ -50,10 +50,10 @@ class SceneMenu extends React.Component {
</MenuItem> : null}
{!enableAuthority || authorities.includes('SAVE_SCENE') ? <MenuItem title={_t('Save')}
onClick={this.handleSaveScene}
/> : null}
/> : null}
{!enableAuthority || authorities.includes('SAVE_SCENE') ? <MenuItem title={_t('Save As')}
onClick={this.handleSaveAsScene}
/> : null}
/> : null}
{!enableAuthority || authorities.includes('SAVE_SCENE') ? <MenuItemSeparator /> : null}
{!enableAuthority || isLogin ? <MenuItem title={_t('Export Scene')}>
<MenuItem title={_t('To JSON File')}
@ -77,7 +77,7 @@ class SceneMenu extends React.Component {
</MenuItem> : null}
{!enableAuthority || authorities.includes('PUBLISH_SCENE') ? <MenuItem title={_t('Publish Scene')}
onClick={this.handlePublishScene}
/> : null}
/> : null}
</MenuItem>;
}
@ -219,17 +219,18 @@ class SceneMenu extends React.Component {
Ajax.post(`${app.options.server}/api/Scene/Save`, params, result => {
var obj = JSON.parse(result);
app.unmask();
if (obj.Code === 200) {
editor.sceneID = obj.ID;
editor.sceneName = sceneName;
document.title = sceneName;
app.call(`sceneSaved`, this);
app.toast(_t(obj.Msg), 'success');
} else {
app.toast(_t(obj.Msg), 'warn');
}
app.call(`sceneSaved`, this);
app.unmask();
app.toast(_t(obj.Msg), 'success');
});
}