mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-23 08:33:45 +01:00
b7a6cbfaa5
--------- Co-authored-by: Yury Gargay <yury.gargay@gmail.com>
229 lines
12 KiB
Go
229 lines
12 KiB
Go
package activity
|
|
|
|
import "maps"
|
|
|
|
// Activity that triggered an Event
|
|
type Activity int
|
|
|
|
// Code is an activity string representation
|
|
type Code struct {
|
|
Message string
|
|
Code string
|
|
}
|
|
|
|
const (
|
|
// PeerAddedByUser indicates that a user added a new peer to the system
|
|
PeerAddedByUser Activity = iota
|
|
// PeerAddedWithSetupKey indicates that a new peer joined the system using a setup key
|
|
PeerAddedWithSetupKey
|
|
// UserJoined indicates that a new user joined the account
|
|
UserJoined
|
|
// UserInvited indicates that a new user was invited to join the account
|
|
UserInvited
|
|
// AccountCreated indicates that a new account has been created
|
|
AccountCreated
|
|
// PeerRemovedByUser indicates that a user removed a peer from the system
|
|
PeerRemovedByUser
|
|
// RuleAdded indicates that a user added a new rule
|
|
RuleAdded
|
|
// RuleUpdated indicates that a user updated a rule
|
|
RuleUpdated
|
|
// RuleRemoved indicates that a user removed a rule
|
|
RuleRemoved
|
|
// PolicyAdded indicates that a user added a new policy
|
|
PolicyAdded
|
|
// PolicyUpdated indicates that a user updated a policy
|
|
PolicyUpdated
|
|
// PolicyRemoved indicates that a user removed a policy
|
|
PolicyRemoved
|
|
// SetupKeyCreated indicates that a user created a new setup key
|
|
SetupKeyCreated
|
|
// SetupKeyUpdated indicates that a user updated a setup key
|
|
SetupKeyUpdated
|
|
// SetupKeyRevoked indicates that a user revoked a setup key
|
|
SetupKeyRevoked
|
|
// SetupKeyOverused indicates that setup key usage exhausted
|
|
SetupKeyOverused
|
|
// GroupCreated indicates that a user created a group
|
|
GroupCreated
|
|
// GroupUpdated indicates that a user updated a group
|
|
GroupUpdated
|
|
// GroupAddedToPeer indicates that a user added group to a peer
|
|
GroupAddedToPeer
|
|
// GroupRemovedFromPeer indicates that a user removed peer group
|
|
GroupRemovedFromPeer
|
|
// GroupAddedToUser indicates that a user added group to a user
|
|
GroupAddedToUser
|
|
// GroupRemovedFromUser indicates that a user removed a group from a user
|
|
GroupRemovedFromUser
|
|
// UserRoleUpdated indicates that a user changed the role of a user
|
|
UserRoleUpdated
|
|
// GroupAddedToSetupKey indicates that a user added group to a setup key
|
|
GroupAddedToSetupKey
|
|
// GroupRemovedFromSetupKey indicates that a user removed a group from a setup key
|
|
GroupRemovedFromSetupKey
|
|
// GroupAddedToDisabledManagementGroups indicates that a user added a group to the DNS setting Disabled management groups
|
|
GroupAddedToDisabledManagementGroups
|
|
// GroupRemovedFromDisabledManagementGroups indicates that a user removed a group from the DNS setting Disabled management groups
|
|
GroupRemovedFromDisabledManagementGroups
|
|
// RouteCreated indicates that a user created a route
|
|
RouteCreated
|
|
// RouteRemoved indicates that a user deleted a route
|
|
RouteRemoved
|
|
// RouteUpdated indicates that a user updated a route
|
|
RouteUpdated
|
|
// PeerSSHEnabled indicates that a user enabled SSH server on a peer
|
|
PeerSSHEnabled
|
|
// PeerSSHDisabled indicates that a user disabled SSH server on a peer
|
|
PeerSSHDisabled
|
|
// PeerRenamed indicates that a user renamed a peer
|
|
PeerRenamed
|
|
// PeerLoginExpirationEnabled indicates that a user enabled login expiration of a peer
|
|
PeerLoginExpirationEnabled
|
|
// PeerLoginExpirationDisabled indicates that a user disabled login expiration of a peer
|
|
PeerLoginExpirationDisabled
|
|
// NameserverGroupCreated indicates that a user created a nameservers group
|
|
NameserverGroupCreated
|
|
// NameserverGroupDeleted indicates that a user deleted a nameservers group
|
|
NameserverGroupDeleted
|
|
// NameserverGroupUpdated indicates that a user updated a nameservers group
|
|
NameserverGroupUpdated
|
|
// AccountPeerLoginExpirationEnabled indicates that a user enabled peer login expiration for the account
|
|
AccountPeerLoginExpirationEnabled
|
|
// AccountPeerLoginExpirationDisabled indicates that a user disabled peer login expiration for the account
|
|
AccountPeerLoginExpirationDisabled
|
|
// AccountPeerLoginExpirationDurationUpdated indicates that a user updated peer login expiration duration for the account
|
|
AccountPeerLoginExpirationDurationUpdated
|
|
// PersonalAccessTokenCreated indicates that a user created a personal access token
|
|
PersonalAccessTokenCreated
|
|
// PersonalAccessTokenDeleted indicates that a user deleted a personal access token
|
|
PersonalAccessTokenDeleted
|
|
// ServiceUserCreated indicates that a user created a service user
|
|
ServiceUserCreated
|
|
// ServiceUserDeleted indicates that a user deleted a service user
|
|
ServiceUserDeleted
|
|
// UserBlocked indicates that a user blocked another user
|
|
UserBlocked
|
|
// UserUnblocked indicates that a user unblocked another user
|
|
UserUnblocked
|
|
// UserDeleted indicates that a user deleted another user
|
|
UserDeleted
|
|
// GroupDeleted indicates that a user deleted group
|
|
GroupDeleted
|
|
// UserLoggedInPeer indicates that user logged in their peer with an interactive SSO login
|
|
UserLoggedInPeer
|
|
// PeerLoginExpired indicates that the user peer login has been expired and peer disconnected
|
|
PeerLoginExpired
|
|
// DashboardLogin indicates that the user logged in to the dashboard
|
|
DashboardLogin
|
|
// IntegrationCreated indicates that the user created an integration
|
|
IntegrationCreated
|
|
// IntegrationUpdated indicates that the user updated an integration
|
|
IntegrationUpdated
|
|
// IntegrationDeleted indicates that the user deleted an integration
|
|
IntegrationDeleted
|
|
// AccountPeerApprovalEnabled indicates that the user enabled peer approval for the account
|
|
AccountPeerApprovalEnabled
|
|
// AccountPeerApprovalDisabled indicates that the user disabled peer approval for the account
|
|
AccountPeerApprovalDisabled
|
|
// PeerApproved indicates that the peer has been approved
|
|
PeerApproved
|
|
// PeerApprovalRevoked indicates that the peer approval has been revoked
|
|
PeerApprovalRevoked
|
|
// TransferredOwnerRole indicates that the user transferred the owner role of the account
|
|
TransferredOwnerRole
|
|
// PostureCheckCreated indicates that the user created a posture check
|
|
PostureCheckCreated
|
|
// PostureCheckUpdated indicates that the user updated a posture check
|
|
PostureCheckUpdated
|
|
// PostureCheckDeleted indicates that the user deleted a posture check
|
|
PostureCheckDeleted
|
|
)
|
|
|
|
var activityMap = map[Activity]Code{
|
|
PeerAddedByUser: {"Peer added", "user.peer.add"},
|
|
PeerAddedWithSetupKey: {"Peer added", "setupkey.peer.add"},
|
|
UserJoined: {"User joined", "user.join"},
|
|
UserInvited: {"User invited", "user.invite"},
|
|
AccountCreated: {"Account created", "account.create"},
|
|
PeerRemovedByUser: {"Peer deleted", "user.peer.delete"},
|
|
RuleAdded: {"Rule added", "rule.add"},
|
|
RuleUpdated: {"Rule updated", "rule.update"},
|
|
RuleRemoved: {"Rule deleted", "rule.delete"},
|
|
PolicyAdded: {"Policy added", "policy.add"},
|
|
PolicyUpdated: {"Policy updated", "policy.update"},
|
|
PolicyRemoved: {"Policy deleted", "policy.delete"},
|
|
SetupKeyCreated: {"Setup key created", "setupkey.add"},
|
|
SetupKeyUpdated: {"Setup key updated", "setupkey.update"},
|
|
SetupKeyRevoked: {"Setup key revoked", "setupkey.revoke"},
|
|
SetupKeyOverused: {"Setup key overused", "setupkey.overuse"},
|
|
GroupCreated: {"Group created", "group.add"},
|
|
GroupUpdated: {"Group updated", "group.update"},
|
|
GroupAddedToPeer: {"Group added to peer", "peer.group.add"},
|
|
GroupRemovedFromPeer: {"Group removed from peer", "peer.group.delete"},
|
|
GroupAddedToUser: {"Group added to user", "user.group.add"},
|
|
GroupRemovedFromUser: {"Group removed from user", "user.group.delete"},
|
|
UserRoleUpdated: {"User role updated", "user.role.update"},
|
|
GroupAddedToSetupKey: {"Group added to setup key", "setupkey.group.add"},
|
|
GroupRemovedFromSetupKey: {"Group removed from user setup key", "setupkey.group.delete"},
|
|
GroupAddedToDisabledManagementGroups: {"Group added to disabled management DNS setting", "dns.setting.disabled.management.group.add"},
|
|
GroupRemovedFromDisabledManagementGroups: {"Group removed from disabled management DNS setting", "dns.setting.disabled.management.group.delete"},
|
|
RouteCreated: {"Route created", "route.add"},
|
|
RouteRemoved: {"Route deleted", "route.delete"},
|
|
RouteUpdated: {"Route updated", "route.update"},
|
|
PeerSSHEnabled: {"Peer SSH server enabled", "peer.ssh.enable"},
|
|
PeerSSHDisabled: {"Peer SSH server disabled", "peer.ssh.disable"},
|
|
PeerRenamed: {"Peer renamed", "peer.rename"},
|
|
PeerLoginExpirationEnabled: {"Peer login expiration enabled", "peer.login.expiration.enable"},
|
|
PeerLoginExpirationDisabled: {"Peer login expiration disabled", "peer.login.expiration.disable"},
|
|
NameserverGroupCreated: {"Nameserver group created", "nameserver.group.add"},
|
|
NameserverGroupDeleted: {"Nameserver group deleted", "nameserver.group.delete"},
|
|
NameserverGroupUpdated: {"Nameserver group updated", "nameserver.group.update"},
|
|
AccountPeerLoginExpirationDurationUpdated: {"Account peer login expiration duration updated", "account.setting.peer.login.expiration.update"},
|
|
AccountPeerLoginExpirationEnabled: {"Account peer login expiration enabled", "account.setting.peer.login.expiration.enable"},
|
|
AccountPeerLoginExpirationDisabled: {"Account peer login expiration disabled", "account.setting.peer.login.expiration.disable"},
|
|
PersonalAccessTokenCreated: {"Personal access token created", "personal.access.token.create"},
|
|
PersonalAccessTokenDeleted: {"Personal access token deleted", "personal.access.token.delete"},
|
|
ServiceUserCreated: {"Service user created", "service.user.create"},
|
|
ServiceUserDeleted: {"Service user deleted", "service.user.delete"},
|
|
UserBlocked: {"User blocked", "user.block"},
|
|
UserUnblocked: {"User unblocked", "user.unblock"},
|
|
UserDeleted: {"User deleted", "user.delete"},
|
|
GroupDeleted: {"Group deleted", "group.delete"},
|
|
UserLoggedInPeer: {"User logged in peer", "user.peer.login"},
|
|
PeerLoginExpired: {"Peer login expired", "peer.login.expire"},
|
|
DashboardLogin: {"Dashboard login", "dashboard.login"},
|
|
IntegrationCreated: {"Integration created", "integration.create"},
|
|
IntegrationUpdated: {"Integration updated", "integration.update"},
|
|
IntegrationDeleted: {"Integration deleted", "integration.delete"},
|
|
AccountPeerApprovalEnabled: {"Account peer approval enabled", "account.setting.peer.approval.enable"},
|
|
AccountPeerApprovalDisabled: {"Account peer approval disabled", "account.setting.peer.approval.disable"},
|
|
PeerApproved: {"Peer approved", "peer.approve"},
|
|
PeerApprovalRevoked: {"Peer approval revoked", "peer.approval.revoke"},
|
|
TransferredOwnerRole: {"Transferred owner role", "transferred.owner.role"},
|
|
PostureCheckCreated: {"Posture check created", "posture.check.created"},
|
|
PostureCheckUpdated: {"Posture check updated", "posture.check.updated"},
|
|
PostureCheckDeleted: {"Posture check deleted", "posture.check.deleted"},
|
|
}
|
|
|
|
// StringCode returns a string code of the activity
|
|
func (a Activity) StringCode() string {
|
|
if code, ok := activityMap[a]; ok {
|
|
return code.Code
|
|
}
|
|
return "UNKNOWN_ACTIVITY"
|
|
}
|
|
|
|
// Message returns a string representation of an activity
|
|
func (a Activity) Message() string {
|
|
if code, ok := activityMap[a]; ok {
|
|
return code.Message
|
|
}
|
|
return "UNKNOWN_ACTIVITY"
|
|
}
|
|
|
|
// RegisterActivityMap adds new codes to the activity map
|
|
func RegisterActivityMap(codes map[Activity]Code) {
|
|
maps.Copy(activityMap, codes)
|
|
}
|