|
|
|
@ -39,7 +39,6 @@ import org.thingsboard.server.common.data.id.NotificationTargetId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.common.data.notification.Notification; |
|
|
|
import org.thingsboard.server.common.data.notification.NotificationDeliveryMethod; |
|
|
|
import org.thingsboard.server.service.notification.NotificationProcessingContext; |
|
|
|
import org.thingsboard.server.common.data.notification.NotificationRequest; |
|
|
|
import org.thingsboard.server.common.data.notification.NotificationRequestInfo; |
|
|
|
import org.thingsboard.server.common.data.notification.NotificationRequestPreview; |
|
|
|
@ -57,8 +56,10 @@ import org.thingsboard.server.dao.notification.NotificationSettingsService; |
|
|
|
import org.thingsboard.server.dao.notification.NotificationTargetService; |
|
|
|
import org.thingsboard.server.dao.notification.NotificationTemplateService; |
|
|
|
import org.thingsboard.server.queue.util.TbCoreComponent; |
|
|
|
import org.thingsboard.server.service.notification.NotificationProcessingContext; |
|
|
|
import org.thingsboard.server.service.security.model.SecurityUser; |
|
|
|
import org.thingsboard.server.service.security.permission.Operation; |
|
|
|
import org.thingsboard.server.service.security.permission.Resource; |
|
|
|
|
|
|
|
import javax.validation.Valid; |
|
|
|
import java.util.Collections; |
|
|
|
@ -294,8 +295,8 @@ public class NotificationController extends BaseController { |
|
|
|
@PostMapping("/notification/settings") |
|
|
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") |
|
|
|
public NotificationSettings saveNotificationSettings(@RequestBody @Valid NotificationSettings notificationSettings, |
|
|
|
@AuthenticationPrincipal SecurityUser user) { |
|
|
|
// generic permission
|
|
|
|
@AuthenticationPrincipal SecurityUser user) throws ThingsboardException { |
|
|
|
accessControlService.checkPermission(user, Resource.ADMIN_SETTINGS, Operation.WRITE); |
|
|
|
TenantId tenantId = user.isSystemAdmin() ? TenantId.SYS_TENANT_ID : user.getTenantId(); |
|
|
|
notificationSettingsService.saveNotificationSettings(tenantId, notificationSettings); |
|
|
|
return notificationSettings; |
|
|
|
@ -303,10 +304,17 @@ public class NotificationController extends BaseController { |
|
|
|
|
|
|
|
@GetMapping("/notification/settings") |
|
|
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") |
|
|
|
public NotificationSettings getNotificationSettings(@AuthenticationPrincipal SecurityUser user) { |
|
|
|
// generic permission
|
|
|
|
public NotificationSettings getNotificationSettings(@AuthenticationPrincipal SecurityUser user) throws ThingsboardException { |
|
|
|
accessControlService.checkPermission(user, Resource.ADMIN_SETTINGS, Operation.READ); |
|
|
|
TenantId tenantId = user.isSystemAdmin() ? TenantId.SYS_TENANT_ID : user.getTenantId(); |
|
|
|
return notificationSettingsService.findNotificationSettings(tenantId); |
|
|
|
} |
|
|
|
|
|
|
|
@GetMapping("/notification/deliveryMethods") |
|
|
|
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") |
|
|
|
public Set<NotificationDeliveryMethod> getAvailableDeliveryMethods(@AuthenticationPrincipal SecurityUser user) throws ThingsboardException { |
|
|
|
accessControlService.checkPermission(user, Resource.ADMIN_SETTINGS, Operation.READ); |
|
|
|
return notificationCenter.getAvailableDeliveryMethods(user.getTenantId()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|