Skip to content

Commit 1f91de4

Browse files
authored
NOISSUE - Fix alarms metadata (#444)
Signed-off-by: nyagamunene <stevenyaga2014@gmail.com>
1 parent eb29b4e commit 1f91de4

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

alarms/api/requests.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ func (req updateAlarmReq) validate() error {
3131
if req.Alarm.ID == "" {
3232
return errors.New("missing alarm id")
3333
}
34-
if req.Alarm.AssigneeID == "" && req.Alarm.AcknowledgedBy == "" && req.Alarm.ResolvedBy == "" {
35-
return errors.New("at least one of assignee_id, acknowledged_by, or resolved_by must be set")
34+
if req.Alarm.AssigneeID == "" && req.Alarm.AcknowledgedBy == "" && req.Alarm.ResolvedBy == "" && len(req.Alarm.Metadata) == 0 {
35+
return errors.New("at least one of assignee_id, acknowledged_by, resolved_by, or metadata must be set")
3636
}
3737

3838
return nil

alarms/middleware/authorization.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ func (am *authorizationMiddleware) CreateAlarm(ctx context.Context, alarm alarms
4848
}
4949

5050
func (am *authorizationMiddleware) UpdateAlarm(ctx context.Context, session authn.Session, alarm alarms.Alarm) (alarms.Alarm, error) {
51+
if len(alarm.Metadata) > 0 {
52+
if err := am.authorize(ctx, operations.OpUpdateAlarm, session, policies.DomainType, session.DomainID); err != nil {
53+
return alarms.Alarm{}, errors.Wrap(errDomainUpdateAlarms, err)
54+
}
55+
}
56+
5157
if alarm.AssigneeID != "" {
5258
if err := am.authorize(ctx, operations.OpAssignAlarm, session, policies.DomainType, session.DomainID); err != nil {
5359
return alarms.Alarm{}, errors.Wrap(errDomainUpdateAlarms, err)

alarms/operations/operations.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const (
1515
OpAssignAlarm
1616
OpAcknowledgeAlarm
1717
OpResolveAlarm
18+
OpUpdateAlarm
1819
)
1920

2021
func OperationDetails() map[permissions.Operation]permissions.OperationDetails {
@@ -43,5 +44,9 @@ func OperationDetails() map[permissions.Operation]permissions.OperationDetails {
4344
Name: "resolve",
4445
PermissionRequired: true,
4546
},
47+
OpUpdateAlarm: {
48+
Name: "update",
49+
PermissionRequired: true,
50+
},
4651
}
4752
}

0 commit comments

Comments
 (0)