Add permission-checking to edit entities

This commit is contained in:
Ryan Huffman 2015-03-02 09:51:41 -08:00
parent 9af30a268c
commit 0638459052

View file

@ -81,6 +81,8 @@ var SETTING_INSPECT_TOOL_ENABLED = "inspectToolEnabled";
var SETTING_AUTO_FOCUS_ON_SELECT = "autoFocusOnSelect"; var SETTING_AUTO_FOCUS_ON_SELECT = "autoFocusOnSelect";
var SETTING_EASE_ON_FOCUS = "cameraEaseOnFocus"; var SETTING_EASE_ON_FOCUS = "cameraEaseOnFocus";
var INSUFFICIENT_PERMISSIONS_ERROR_MSG = "You do not have the necessary permissions to edit on this domain."
var modelURLs = [ var modelURLs = [
HIFI_PUBLIC_BUCKET + "models/entities/2-Terrain:%20Alder.fbx", HIFI_PUBLIC_BUCKET + "models/entities/2-Terrain:%20Alder.fbx",
HIFI_PUBLIC_BUCKET + "models/entities/2-Terrain:%20Bush1.fbx", HIFI_PUBLIC_BUCKET + "models/entities/2-Terrain:%20Bush1.fbx",
@ -177,25 +179,29 @@ var toolBar = (function () {
that.setActive = function(active) { that.setActive = function(active) {
if (active != isActive) { if (active != isActive) {
isActive = active; if (active && !Entities.canAdjustLocks()) {
if (!isActive) { Window.alert(INSUFFICIENT_PERMISSIONS_ERROR_MSG);
entityListTool.setVisible(false);
gridTool.setVisible(false);
grid.setEnabled(false);
propertiesTool.setVisible(false);
selectionManager.clearSelections();
cameraManager.disable();
} else { } else {
hasShownPropertiesTool = false; isActive = active;
cameraManager.enable(); if (!isActive) {
entityListTool.setVisible(true); entityListTool.setVisible(false);
gridTool.setVisible(true); gridTool.setVisible(false);
grid.setEnabled(true); grid.setEnabled(false);
propertiesTool.setVisible(true); propertiesTool.setVisible(false);
Window.setFocus(); selectionManager.clearSelections();
cameraManager.disable();
} else {
hasShownPropertiesTool = false;
cameraManager.enable();
entityListTool.setVisible(true);
gridTool.setVisible(true);
grid.setEnabled(true);
propertiesTool.setVisible(true);
Window.setFocus();
}
} }
} }
toolBar.selectTool(activeButton, active); toolBar.selectTool(activeButton, isActive);
}; };
var RESIZE_INTERVAL = 50; var RESIZE_INTERVAL = 50;
@ -400,6 +406,14 @@ var toolBar = (function () {
that.setActive(false); that.setActive(false);
}); });
function checkForPermissionToEdit() {
if (isActive && !Entities.canAdjustLocks()) {
that.setActive(false);
}
}
Script.setInterval(checkForPermissionToEdit, 1000);
that.cleanup = function () { that.cleanup = function () {
toolBar.cleanup(); toolBar.cleanup();
}; };