mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: create ResourceNotificationMessage and AsNotifier (#15301)
Closes https://github.com/coder/coder/issues/15213 This PR enables sending notifications without requiring the auth system context, instead using a new auth notifier context.
This commit is contained in:
@@ -129,6 +129,16 @@ var (
|
||||
Type: "license",
|
||||
}
|
||||
|
||||
// ResourceNotificationMessage
|
||||
// Valid Actions
|
||||
// - "ActionCreate" :: create notification messages
|
||||
// - "ActionDelete" :: delete notification messages
|
||||
// - "ActionRead" :: read notification messages
|
||||
// - "ActionUpdate" :: update notification messages
|
||||
ResourceNotificationMessage = Object{
|
||||
Type: "notification_message",
|
||||
}
|
||||
|
||||
// ResourceNotificationPreference
|
||||
// Valid Actions
|
||||
// - "ActionRead" :: read notification preferences
|
||||
@@ -318,6 +328,7 @@ func AllResources() []Objecter {
|
||||
ResourceGroupMember,
|
||||
ResourceIdpsyncSettings,
|
||||
ResourceLicense,
|
||||
ResourceNotificationMessage,
|
||||
ResourceNotificationPreference,
|
||||
ResourceNotificationTemplate,
|
||||
ResourceOauth2App,
|
||||
|
||||
@@ -262,6 +262,14 @@ var RBACPermissions = map[string]PermissionDefinition{
|
||||
ActionDelete: actDef(""),
|
||||
},
|
||||
},
|
||||
"notification_message": {
|
||||
Actions: map[Action]ActionDefinition{
|
||||
ActionCreate: actDef("create notification messages"),
|
||||
ActionRead: actDef("read notification messages"),
|
||||
ActionUpdate: actDef("update notification messages"),
|
||||
ActionDelete: actDef("delete notification messages"),
|
||||
},
|
||||
},
|
||||
"notification_template": {
|
||||
Actions: map[Action]ActionDefinition{
|
||||
ActionRead: actDef("read notification templates"),
|
||||
|
||||
@@ -647,6 +647,21 @@ func TestRolePermissions(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "NotificationMessages",
|
||||
Actions: []policy.Action{policy.ActionCreate, policy.ActionRead, policy.ActionUpdate, policy.ActionDelete},
|
||||
Resource: rbac.ResourceNotificationMessage,
|
||||
AuthorizeMap: map[bool][]hasAuthSubjects{
|
||||
true: {owner},
|
||||
false: {
|
||||
memberMe, orgMemberMe, otherOrgMember,
|
||||
orgAdmin, otherOrgAdmin,
|
||||
orgAuditor, otherOrgAuditor,
|
||||
templateAdmin, orgTemplateAdmin, otherOrgTemplateAdmin,
|
||||
userAdmin, orgUserAdmin, otherOrgUserAdmin,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
// Notification preferences are currently not organization-scoped
|
||||
// Any owner/admin may access any users' preferences
|
||||
|
||||
Reference in New Issue
Block a user