Files
supermq/alarms/operations.go
T
2026-03-05 15:21:34 +01:00

70 lines
1.5 KiB
Go

// Copyright (c) Abstract Machines
// SPDX-License-Identifier: Apache-2.0
package alarms
import (
"github.com/absmach/supermq/pkg/errors"
"github.com/absmach/supermq/pkg/permissions"
"github.com/absmach/supermq/pkg/policies"
)
const EntityType = "alarms"
const (
OpAddAlarm = iota
OpViewAlarm
OpListAlarms
OpUpdateAlarm
OpDeleteAlarm
OpAssignAlarm
OpAcknowledgeAlarm
OpResolveAlarm
)
const (
OpAddAlarmStr = "OpAddAlarm"
OpViewAlarmStr = "OpViewAlarm"
OpListAlarmsStr = "OpListAlarms"
OpUpdateAlarmStr = "OpUpdateAlarm"
OpDeleteAlarmStr = "OpDeleteAlarm"
OpAssignAlarmStr = "OpAssignAlarm"
OpAcknowledgeAlarmStr = "OpAcknowledgeAlarm"
OpResolveAlarmStr = "OpResolveAlarm"
)
func GetPermission(op permissions.Operation) (string, error) {
if op < OpAddAlarm || op > OpResolveAlarm {
return "", errors.New("invalid operation")
}
if op == OpUpdateAlarm || op == OpDeleteAlarm {
return policies.AdminPermission, nil
}
return policies.MembershipPermission, nil
}
func OperationName(op permissions.Operation) string {
switch op {
case OpAddAlarm:
return OpAddAlarmStr
case OpViewAlarm:
return OpViewAlarmStr
case OpListAlarms:
return OpListAlarmsStr
case OpUpdateAlarm:
return OpUpdateAlarmStr
case OpDeleteAlarm:
return OpDeleteAlarmStr
case OpAssignAlarm:
return OpAssignAlarmStr
case OpAcknowledgeAlarm:
return OpAcknowledgeAlarmStr
case OpResolveAlarm:
return OpResolveAlarmStr
default:
return "unknown"
}
}