diff --git a/application/src/main/java/org/thingsboard/server/controller/BaseController.java b/application/src/main/java/org/thingsboard/server/controller/BaseController.java index fe65fb55f7..2f63967b98 100644 --- a/application/src/main/java/org/thingsboard/server/controller/BaseController.java +++ b/application/src/main/java/org/thingsboard/server/controller/BaseController.java @@ -317,6 +317,13 @@ public abstract class BaseController { private void checkDashboard(Dashboard dashboard) throws ThingsboardException { checkNotNull(dashboard); checkTenantId(dashboard.getTenantId()); + SecurityUser authUser = getCurrentUser(); + if (authUser.getAuthority() == Authority.CUSTOMER_USER) { + if (dashboard.getCustomerId() == null || dashboard.getCustomerId().getId().equals(ModelConstants.NULL_UUID)) { + throw new ThingsboardException("You don't have permission to perform this operation!", + ThingsboardErrorCode.PERMISSION_DENIED); + } + } if (dashboard.getCustomerId() != null && !dashboard.getCustomerId().getId().equals(ModelConstants.NULL_UUID)) { checkCustomerId(dashboard.getCustomerId()); } diff --git a/ui/src/app/app.run.js b/ui/src/app/app.run.js index f6cbc18200..057b413648 100644 --- a/ui/src/app/app.run.js +++ b/ui/src/app/app.run.js @@ -23,7 +23,10 @@ export default function AppRun($rootScope, $window, $log, $state, $mdDialog, $fi var unauthorizedDialog = null; var forbiddenDialog = null; + $rootScope.iframeMode = false; + if (frame) { + $rootScope.iframeMode = true; var dataWidgetAttr = angular.element(frame).attr('data-widget'); if (dataWidgetAttr) { $rootScope.editWidgetInfo = angular.fromJson(dataWidgetAttr); diff --git a/ui/src/app/dashboard/dashboard.controller.js b/ui/src/app/dashboard/dashboard.controller.js index 3b5d819509..49bd3bd0c7 100644 --- a/ui/src/app/dashboard/dashboard.controller.js +++ b/ui/src/app/dashboard/dashboard.controller.js @@ -43,6 +43,7 @@ export default function DashboardController(types, widgetService, userService, vm.rpcWidgetTypes = []; vm.staticWidgetTypes = []; vm.widgetEditMode = $state.$current.data.widgetEditMode; + vm.iframeMode = $rootScope.iframeMode; vm.widgets = []; vm.addWidget = addWidget; diff --git a/ui/src/app/dashboard/dashboard.tpl.html b/ui/src/app/dashboard/dashboard.tpl.html index 99f9c60ea8..0b2bdd603d 100644 --- a/ui/src/app/dashboard/dashboard.tpl.html +++ b/ui/src/app/dashboard/dashboard.tpl.html @@ -15,7 +15,7 @@ limitations under the License. --> - +