mirror of
https://github.com/absmach/supermq.git
synced 2026-06-23 04:20:17 +00:00
be1dc130d6
Signed-off-by: nyagamunene <stevenyaga2014@gmail.com>
70 lines
1.5 KiB
Go
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"
|
|
}
|
|
}
|