mirror of
https://github.com/absmach/supermq.git
synced 2026-06-23 04:20:17 +00:00
NOISSUE - Fix alarms metadata (#444)
Signed-off-by: nyagamunene <stevenyaga2014@gmail.com>
This commit is contained in:
@@ -31,8 +31,8 @@ func (req updateAlarmReq) validate() error {
|
|||||||
if req.Alarm.ID == "" {
|
if req.Alarm.ID == "" {
|
||||||
return errors.New("missing alarm id")
|
return errors.New("missing alarm id")
|
||||||
}
|
}
|
||||||
if req.Alarm.AssigneeID == "" && req.Alarm.AcknowledgedBy == "" && req.Alarm.ResolvedBy == "" {
|
if req.Alarm.AssigneeID == "" && req.Alarm.AcknowledgedBy == "" && req.Alarm.ResolvedBy == "" && len(req.Alarm.Metadata) == 0 {
|
||||||
return errors.New("at least one of assignee_id, acknowledged_by, or resolved_by must be set")
|
return errors.New("at least one of assignee_id, acknowledged_by, resolved_by, or metadata must be set")
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -48,6 +48,12 @@ func (am *authorizationMiddleware) CreateAlarm(ctx context.Context, alarm alarms
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (am *authorizationMiddleware) UpdateAlarm(ctx context.Context, session authn.Session, alarm alarms.Alarm) (alarms.Alarm, error) {
|
func (am *authorizationMiddleware) UpdateAlarm(ctx context.Context, session authn.Session, alarm alarms.Alarm) (alarms.Alarm, error) {
|
||||||
|
if len(alarm.Metadata) > 0 {
|
||||||
|
if err := am.authorize(ctx, operations.OpUpdateAlarm, session, policies.DomainType, session.DomainID); err != nil {
|
||||||
|
return alarms.Alarm{}, errors.Wrap(errDomainUpdateAlarms, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if alarm.AssigneeID != "" {
|
if alarm.AssigneeID != "" {
|
||||||
if err := am.authorize(ctx, operations.OpAssignAlarm, session, policies.DomainType, session.DomainID); err != nil {
|
if err := am.authorize(ctx, operations.OpAssignAlarm, session, policies.DomainType, session.DomainID); err != nil {
|
||||||
return alarms.Alarm{}, errors.Wrap(errDomainUpdateAlarms, err)
|
return alarms.Alarm{}, errors.Wrap(errDomainUpdateAlarms, err)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ const (
|
|||||||
OpAssignAlarm
|
OpAssignAlarm
|
||||||
OpAcknowledgeAlarm
|
OpAcknowledgeAlarm
|
||||||
OpResolveAlarm
|
OpResolveAlarm
|
||||||
|
OpUpdateAlarm
|
||||||
)
|
)
|
||||||
|
|
||||||
func OperationDetails() map[permissions.Operation]permissions.OperationDetails {
|
func OperationDetails() map[permissions.Operation]permissions.OperationDetails {
|
||||||
@@ -43,5 +44,9 @@ func OperationDetails() map[permissions.Operation]permissions.OperationDetails {
|
|||||||
Name: "resolve",
|
Name: "resolve",
|
||||||
PermissionRequired: true,
|
PermissionRequired: true,
|
||||||
},
|
},
|
||||||
|
OpUpdateAlarm: {
|
||||||
|
Name: "update",
|
||||||
|
PermissionRequired: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user