diff --git a/storage/inboundJobs.go b/storage/inboundJobs.go index 03b003c..d527e26 100644 --- a/storage/inboundJobs.go +++ b/storage/inboundJobs.go @@ -19,7 +19,7 @@ const ( // Store inbound jobs from api and ap in the db until they finished processing // Ensures data consistency in case the server is forced to restart unexpectedly -// No DeletedAt field since don't want completed jobs to linger in the db for any longer than necessary +// Inbound jobs must allways be processed in order from oldest to newest to ensure consistency type InboundJob struct { gorm.Model // Raw data, could be json or gob data, check source for how to interpret diff --git a/storage/roles.go b/storage/roles.go index 7e1c464..19eb990 100644 --- a/storage/roles.go +++ b/storage/roles.go @@ -5,7 +5,7 @@ import ( ) //go:generate go build -o RolesGenerator ../cmd/RolesGenerator/main.go -//go:generate ./RolesGenerator -input=roles.go -output=rolesUtil.go +//go:generate ./RolesGenerator -input=roles.go -output=rolesUtil_generated.go //go:generate rm RolesGenerator // A role is, in concept, similar to how Discord handles roles diff --git a/storage/rolesUtil.go b/storage/rolesUtil_generated.go similarity index 99% rename from storage/rolesUtil.go rename to storage/rolesUtil_generated.go index 28014b3..c5f68b5 100644 --- a/storage/rolesUtil.go +++ b/storage/rolesUtil_generated.go @@ -1,4 +1,4 @@ -// This file is autogenerated, do not edit +// Code generated by cmd/RolesGenerator DO NOT EDIT. // If you need to refresh the content, run go generate again package storage @@ -8,89 +8,32 @@ func CollapseRolesIntoOne(roles ...*Role) Role { startingRole := RoleDeepCopy(&DefaultUserRole) slices.SortFunc(roles, func(a, b *Role) int { return int(int64(a.Priority)-int64(b.Priority)) }) for _, role := range roles { - if role.CanRecoverDeletedNotes != nil { - *startingRole.CanRecoverDeletedNotes = *role.CanRecoverDeletedNotes - } - if role.CanSendFollowerOnlyNotes != nil { - *startingRole.CanSendFollowerOnlyNotes = *role.CanSendFollowerOnlyNotes - } - if role.CanIncludeLinks != nil { - *startingRole.CanIncludeLinks = *role.CanIncludeLinks - } - if role.CanChangeDisplayName != nil { - *startingRole.CanChangeDisplayName = *role.CanChangeDisplayName - } if role.CanSupressInteractionsBetweenUsers != nil { *startingRole.CanSupressInteractionsBetweenUsers = *role.CanSupressInteractionsBetweenUsers } - if role.CanSendMedia != nil { - *startingRole.CanSendMedia = *role.CanSendMedia - } - if role.AutoCwPosts != nil { - *startingRole.AutoCwPosts = *role.AutoCwPosts - } - if role.CanDeleteNotes != nil { - *startingRole.CanDeleteNotes = *role.CanDeleteNotes - } - if role.CanAssignRoles != nil { - *startingRole.CanAssignRoles = *role.CanAssignRoles - } - if role.CanOverwriteDisplayNames != nil { - *startingRole.CanOverwriteDisplayNames = *role.CanOverwriteDisplayNames - } if role.CanQuote != nil { *startingRole.CanQuote = *role.CanQuote } - if role.CanBoost != nil { - *startingRole.CanBoost = *role.CanBoost - } - if role.ScanCreatedLocalNotes != nil { - *startingRole.ScanCreatedLocalNotes = *role.ScanCreatedLocalNotes - } - if role.WithholdNotesBasedOnRegex != nil { - *startingRole.WithholdNotesBasedOnRegex = *role.WithholdNotesBasedOnRegex - } - if role.FullAdmin != nil { - *startingRole.FullAdmin = *role.FullAdmin - } - if role.CanManageCustomEmotes != nil { - *startingRole.CanManageCustomEmotes = *role.CanManageCustomEmotes - } - if role.CanViewDeletedNotes != nil { - *startingRole.CanViewDeletedNotes = *role.CanViewDeletedNotes - } - if role.CanManageAvatarDecorations != nil { - *startingRole.CanManageAvatarDecorations = *role.CanManageAvatarDecorations - } - if role.CanSendPublicNotes != nil { - *startingRole.CanSendPublicNotes = *role.CanSendPublicNotes + if role.CanIncludeSurvey != nil { + *startingRole.CanIncludeSurvey = *role.CanIncludeSurvey } if role.BlockedUsers != nil { startingRole.BlockedUsers = append(startingRole.BlockedUsers, role.BlockedUsers...) } - if role.MentionLimit != nil { - *startingRole.MentionLimit = *role.MentionLimit - } if role.AutoCwPostsText != nil { *startingRole.AutoCwPostsText = *role.AutoCwPostsText } - if role.CanIncludeSurvey != nil { - *startingRole.CanIncludeSurvey = *role.CanIncludeSurvey - } - if role.ScanCreatedPublicNotes != nil { - *startingRole.ScanCreatedPublicNotes = *role.ScanCreatedPublicNotes - } - if role.CanSendReplies != nil { - *startingRole.CanSendReplies = *role.CanSendReplies - } - if role.HasMentionCountLimit != nil { - *startingRole.HasMentionCountLimit = *role.HasMentionCountLimit + if role.ScanCreatedLocalNotes != nil { + *startingRole.ScanCreatedLocalNotes = *role.ScanCreatedLocalNotes } if role.WithholdNotesForManualApproval != nil { *startingRole.WithholdNotesForManualApproval = *role.WithholdNotesForManualApproval } - if role.CanConfirmWithheldNotes != nil { - *startingRole.CanConfirmWithheldNotes = *role.CanConfirmWithheldNotes + if role.FullAdmin != nil { + *startingRole.FullAdmin = *role.FullAdmin + } + if role.CanManageAvatarDecorations != nil { + *startingRole.CanManageAvatarDecorations = *role.CanManageAvatarDecorations } if role.CanSendCustomEmotes != nil { *startingRole.CanSendCustomEmotes = *role.CanSendCustomEmotes @@ -104,8 +47,29 @@ func CollapseRolesIntoOne(roles ...*Role) Role { if role.CanSendPrivateNotes != nil { *startingRole.CanSendPrivateNotes = *role.CanSendPrivateNotes } - if role.CanAffectOtherAdmins != nil { - *startingRole.CanAffectOtherAdmins = *role.CanAffectOtherAdmins + if role.AutoNsfwMedia != nil { + *startingRole.AutoNsfwMedia = *role.AutoNsfwMedia + } + if role.ScanCreatedPublicNotes != nil { + *startingRole.ScanCreatedPublicNotes = *role.ScanCreatedPublicNotes + } + if role.CanBoost != nil { + *startingRole.CanBoost = *role.CanBoost + } + if role.AutoCwPosts != nil { + *startingRole.AutoCwPosts = *role.AutoCwPosts + } + if role.WithholdNotesBasedOnRegex != nil { + *startingRole.WithholdNotesBasedOnRegex = *role.WithholdNotesBasedOnRegex + } + if role.CanSendAnnouncements != nil { + *startingRole.CanSendAnnouncements = *role.CanSendAnnouncements + } + if role.CanManageAds != nil { + *startingRole.CanManageAds = *role.CanManageAds + } + if role.CanIncludeLinks != nil { + *startingRole.CanIncludeLinks = *role.CanIncludeLinks } if role.CanSubmitReports != nil { *startingRole.CanSubmitReports = *role.CanSubmitReports @@ -113,30 +77,66 @@ func CollapseRolesIntoOne(roles ...*Role) Role { if role.CanLogin != nil { *startingRole.CanLogin = *role.CanLogin } - if role.CanMentionOthers != nil { - *startingRole.CanMentionOthers = *role.CanMentionOthers - } - if role.AutoNsfwMedia != nil { - *startingRole.AutoNsfwMedia = *role.AutoNsfwMedia - } - if role.CanManageAds != nil { - *startingRole.CanManageAds = *role.CanManageAds - } - if role.CanSendAnnouncements != nil { - *startingRole.CanSendAnnouncements = *role.CanSendAnnouncements + if role.MentionLimit != nil { + *startingRole.MentionLimit = *role.MentionLimit } if role.ScanCreatedFollowerOnlyNotes != nil { *startingRole.ScanCreatedFollowerOnlyNotes = *role.ScanCreatedFollowerOnlyNotes } - if role.ScanCreatedPrivateNotes != nil { - *startingRole.ScanCreatedPrivateNotes = *role.ScanCreatedPrivateNotes + if role.CanOverwriteDisplayNames != nil { + *startingRole.CanOverwriteDisplayNames = *role.CanOverwriteDisplayNames + } + if role.CanSendMedia != nil { + *startingRole.CanSendMedia = *role.CanSendMedia + } + if role.CanSendFollowerOnlyNotes != nil { + *startingRole.CanSendFollowerOnlyNotes = *role.CanSendFollowerOnlyNotes + } + if role.CanChangeDisplayName != nil { + *startingRole.CanChangeDisplayName = *role.CanChangeDisplayName } if role.DisallowInteractionsWith != nil { startingRole.DisallowInteractionsWith = append(startingRole.DisallowInteractionsWith, role.DisallowInteractionsWith...) } + if role.CanViewDeletedNotes != nil { + *startingRole.CanViewDeletedNotes = *role.CanViewDeletedNotes + } + if role.CanRecoverDeletedNotes != nil { + *startingRole.CanRecoverDeletedNotes = *role.CanRecoverDeletedNotes + } + if role.ScanCreatedPrivateNotes != nil { + *startingRole.ScanCreatedPrivateNotes = *role.ScanCreatedPrivateNotes + } if role.WithholdNotesRegexes != nil { startingRole.WithholdNotesRegexes = append(startingRole.WithholdNotesRegexes, role.WithholdNotesRegexes...) } + if role.CanManageCustomEmotes != nil { + *startingRole.CanManageCustomEmotes = *role.CanManageCustomEmotes + } + if role.CanMentionOthers != nil { + *startingRole.CanMentionOthers = *role.CanMentionOthers + } + if role.HasMentionCountLimit != nil { + *startingRole.HasMentionCountLimit = *role.HasMentionCountLimit + } + if role.CanAffectOtherAdmins != nil { + *startingRole.CanAffectOtherAdmins = *role.CanAffectOtherAdmins + } + if role.CanAssignRoles != nil { + *startingRole.CanAssignRoles = *role.CanAssignRoles + } + if role.CanSendPublicNotes != nil { + *startingRole.CanSendPublicNotes = *role.CanSendPublicNotes + } + if role.CanSendReplies != nil { + *startingRole.CanSendReplies = *role.CanSendReplies + } + if role.CanDeleteNotes != nil { + *startingRole.CanDeleteNotes = *role.CanDeleteNotes + } + if role.CanConfirmWithheldNotes != nil { + *startingRole.CanConfirmWithheldNotes = *role.CanConfirmWithheldNotes + } } return startingRole } @@ -149,6 +149,137 @@ func RoleDeepCopy(o *Role) Role { n.Priority = o.Priority n.IsUserRole = o.IsUserRole n.IsBuiltIn = o.IsBuiltIn + if o.CanOverwriteDisplayNames == nil { n.CanOverwriteDisplayNames = nil } else { + t := *o.CanOverwriteDisplayNames + n.CanOverwriteDisplayNames = &t + } + if o.CanManageAds == nil { n.CanManageAds = nil } else { + t := *o.CanManageAds + n.CanManageAds = &t + } + if o.CanIncludeLinks == nil { n.CanIncludeLinks = nil } else { + t := *o.CanIncludeLinks + n.CanIncludeLinks = &t + } + if o.CanSubmitReports == nil { n.CanSubmitReports = nil } else { + t := *o.CanSubmitReports + n.CanSubmitReports = &t + } + if o.CanLogin == nil { n.CanLogin = nil } else { + t := *o.CanLogin + n.CanLogin = &t + } + if o.MentionLimit == nil { n.MentionLimit = nil } else { + t := *o.MentionLimit + n.MentionLimit = &t + } + if o.ScanCreatedFollowerOnlyNotes == nil { n.ScanCreatedFollowerOnlyNotes = nil } else { + t := *o.ScanCreatedFollowerOnlyNotes + n.ScanCreatedFollowerOnlyNotes = &t + } + if o.CanRecoverDeletedNotes == nil { n.CanRecoverDeletedNotes = nil } else { + t := *o.CanRecoverDeletedNotes + n.CanRecoverDeletedNotes = &t + } + if o.CanSendMedia == nil { n.CanSendMedia = nil } else { + t := *o.CanSendMedia + n.CanSendMedia = &t + } + if o.CanSendFollowerOnlyNotes == nil { n.CanSendFollowerOnlyNotes = nil } else { + t := *o.CanSendFollowerOnlyNotes + n.CanSendFollowerOnlyNotes = &t + } + if o.CanChangeDisplayName == nil { n.CanChangeDisplayName = nil } else { + t := *o.CanChangeDisplayName + n.CanChangeDisplayName = &t + } + n.DisallowInteractionsWith = slices.Clone(o.DisallowInteractionsWith) + if o.CanViewDeletedNotes == nil { n.CanViewDeletedNotes = nil } else { + t := *o.CanViewDeletedNotes + n.CanViewDeletedNotes = &t + } + if o.ScanCreatedPrivateNotes == nil { n.ScanCreatedPrivateNotes = nil } else { + t := *o.ScanCreatedPrivateNotes + n.ScanCreatedPrivateNotes = &t + } + n.WithholdNotesRegexes = slices.Clone(o.WithholdNotesRegexes) + if o.CanManageCustomEmotes == nil { n.CanManageCustomEmotes = nil } else { + t := *o.CanManageCustomEmotes + n.CanManageCustomEmotes = &t + } + if o.CanMentionOthers == nil { n.CanMentionOthers = nil } else { + t := *o.CanMentionOthers + n.CanMentionOthers = &t + } + if o.HasMentionCountLimit == nil { n.HasMentionCountLimit = nil } else { + t := *o.HasMentionCountLimit + n.HasMentionCountLimit = &t + } + if o.CanAffectOtherAdmins == nil { n.CanAffectOtherAdmins = nil } else { + t := *o.CanAffectOtherAdmins + n.CanAffectOtherAdmins = &t + } + if o.CanAssignRoles == nil { n.CanAssignRoles = nil } else { + t := *o.CanAssignRoles + n.CanAssignRoles = &t + } + if o.CanSendPublicNotes == nil { n.CanSendPublicNotes = nil } else { + t := *o.CanSendPublicNotes + n.CanSendPublicNotes = &t + } + if o.CanSendReplies == nil { n.CanSendReplies = nil } else { + t := *o.CanSendReplies + n.CanSendReplies = &t + } + if o.CanDeleteNotes == nil { n.CanDeleteNotes = nil } else { + t := *o.CanDeleteNotes + n.CanDeleteNotes = &t + } + if o.CanConfirmWithheldNotes == nil { n.CanConfirmWithheldNotes = nil } else { + t := *o.CanConfirmWithheldNotes + n.CanConfirmWithheldNotes = &t + } + if o.WithholdNotesForManualApproval == nil { n.WithholdNotesForManualApproval = nil } else { + t := *o.WithholdNotesForManualApproval + n.WithholdNotesForManualApproval = &t + } + if o.CanSupressInteractionsBetweenUsers == nil { n.CanSupressInteractionsBetweenUsers = nil } else { + t := *o.CanSupressInteractionsBetweenUsers + n.CanSupressInteractionsBetweenUsers = &t + } + if o.CanQuote == nil { n.CanQuote = nil } else { + t := *o.CanQuote + n.CanQuote = &t + } + if o.CanIncludeSurvey == nil { n.CanIncludeSurvey = nil } else { + t := *o.CanIncludeSurvey + n.CanIncludeSurvey = &t + } + n.BlockedUsers = slices.Clone(o.BlockedUsers) + if o.AutoCwPostsText == nil { n.AutoCwPostsText = nil } else { + t := *o.AutoCwPostsText + n.AutoCwPostsText = &t + } + if o.ScanCreatedLocalNotes == nil { n.ScanCreatedLocalNotes = nil } else { + t := *o.ScanCreatedLocalNotes + n.ScanCreatedLocalNotes = &t + } + if o.ScanCreatedPublicNotes == nil { n.ScanCreatedPublicNotes = nil } else { + t := *o.ScanCreatedPublicNotes + n.ScanCreatedPublicNotes = &t + } + if o.FullAdmin == nil { n.FullAdmin = nil } else { + t := *o.FullAdmin + n.FullAdmin = &t + } + if o.CanManageAvatarDecorations == nil { n.CanManageAvatarDecorations = nil } else { + t := *o.CanManageAvatarDecorations + n.CanManageAvatarDecorations = &t + } + if o.CanSendCustomEmotes == nil { n.CanSendCustomEmotes = nil } else { + t := *o.CanSendCustomEmotes + n.CanSendCustomEmotes = &t + } if o.CanSendCustomReactions == nil { n.CanSendCustomReactions = nil } else { t := *o.CanSendCustomReactions n.CanSendCustomReactions = &t @@ -161,156 +292,25 @@ func RoleDeepCopy(o *Role) Role { t := *o.CanSendPrivateNotes n.CanSendPrivateNotes = &t } - if o.CanSendReplies == nil { n.CanSendReplies = nil } else { - t := *o.CanSendReplies - n.CanSendReplies = &t - } - if o.HasMentionCountLimit == nil { n.HasMentionCountLimit = nil } else { - t := *o.HasMentionCountLimit - n.HasMentionCountLimit = &t - } - if o.WithholdNotesForManualApproval == nil { n.WithholdNotesForManualApproval = nil } else { - t := *o.WithholdNotesForManualApproval - n.WithholdNotesForManualApproval = &t - } - if o.CanConfirmWithheldNotes == nil { n.CanConfirmWithheldNotes = nil } else { - t := *o.CanConfirmWithheldNotes - n.CanConfirmWithheldNotes = &t - } - if o.CanSendCustomEmotes == nil { n.CanSendCustomEmotes = nil } else { - t := *o.CanSendCustomEmotes - n.CanSendCustomEmotes = &t - } - if o.CanLogin == nil { n.CanLogin = nil } else { - t := *o.CanLogin - n.CanLogin = &t - } - if o.CanMentionOthers == nil { n.CanMentionOthers = nil } else { - t := *o.CanMentionOthers - n.CanMentionOthers = &t - } if o.AutoNsfwMedia == nil { n.AutoNsfwMedia = nil } else { t := *o.AutoNsfwMedia n.AutoNsfwMedia = &t } - if o.CanAffectOtherAdmins == nil { n.CanAffectOtherAdmins = nil } else { - t := *o.CanAffectOtherAdmins - n.CanAffectOtherAdmins = &t - } - if o.CanSubmitReports == nil { n.CanSubmitReports = nil } else { - t := *o.CanSubmitReports - n.CanSubmitReports = &t - } - if o.ScanCreatedPrivateNotes == nil { n.ScanCreatedPrivateNotes = nil } else { - t := *o.ScanCreatedPrivateNotes - n.ScanCreatedPrivateNotes = &t - } - n.DisallowInteractionsWith = slices.Clone(o.DisallowInteractionsWith) - n.WithholdNotesRegexes = slices.Clone(o.WithholdNotesRegexes) - if o.CanManageAds == nil { n.CanManageAds = nil } else { - t := *o.CanManageAds - n.CanManageAds = &t - } - if o.CanSendAnnouncements == nil { n.CanSendAnnouncements = nil } else { - t := *o.CanSendAnnouncements - n.CanSendAnnouncements = &t - } - if o.ScanCreatedFollowerOnlyNotes == nil { n.ScanCreatedFollowerOnlyNotes = nil } else { - t := *o.ScanCreatedFollowerOnlyNotes - n.ScanCreatedFollowerOnlyNotes = &t - } - if o.CanIncludeLinks == nil { n.CanIncludeLinks = nil } else { - t := *o.CanIncludeLinks - n.CanIncludeLinks = &t - } - if o.CanChangeDisplayName == nil { n.CanChangeDisplayName = nil } else { - t := *o.CanChangeDisplayName - n.CanChangeDisplayName = &t - } - if o.CanSupressInteractionsBetweenUsers == nil { n.CanSupressInteractionsBetweenUsers = nil } else { - t := *o.CanSupressInteractionsBetweenUsers - n.CanSupressInteractionsBetweenUsers = &t - } - if o.CanRecoverDeletedNotes == nil { n.CanRecoverDeletedNotes = nil } else { - t := *o.CanRecoverDeletedNotes - n.CanRecoverDeletedNotes = &t - } - if o.CanSendFollowerOnlyNotes == nil { n.CanSendFollowerOnlyNotes = nil } else { - t := *o.CanSendFollowerOnlyNotes - n.CanSendFollowerOnlyNotes = &t - } - if o.AutoCwPosts == nil { n.AutoCwPosts = nil } else { - t := *o.AutoCwPosts - n.AutoCwPosts = &t - } - if o.CanDeleteNotes == nil { n.CanDeleteNotes = nil } else { - t := *o.CanDeleteNotes - n.CanDeleteNotes = &t - } - if o.CanSendMedia == nil { n.CanSendMedia = nil } else { - t := *o.CanSendMedia - n.CanSendMedia = &t - } if o.CanBoost == nil { n.CanBoost = nil } else { t := *o.CanBoost n.CanBoost = &t } - if o.ScanCreatedLocalNotes == nil { n.ScanCreatedLocalNotes = nil } else { - t := *o.ScanCreatedLocalNotes - n.ScanCreatedLocalNotes = &t + if o.AutoCwPosts == nil { n.AutoCwPosts = nil } else { + t := *o.AutoCwPosts + n.AutoCwPosts = &t } if o.WithholdNotesBasedOnRegex == nil { n.WithholdNotesBasedOnRegex = nil } else { t := *o.WithholdNotesBasedOnRegex n.WithholdNotesBasedOnRegex = &t } - if o.CanAssignRoles == nil { n.CanAssignRoles = nil } else { - t := *o.CanAssignRoles - n.CanAssignRoles = &t - } - if o.CanOverwriteDisplayNames == nil { n.CanOverwriteDisplayNames = nil } else { - t := *o.CanOverwriteDisplayNames - n.CanOverwriteDisplayNames = &t - } - if o.CanQuote == nil { n.CanQuote = nil } else { - t := *o.CanQuote - n.CanQuote = &t - } - n.BlockedUsers = slices.Clone(o.BlockedUsers) - if o.MentionLimit == nil { n.MentionLimit = nil } else { - t := *o.MentionLimit - n.MentionLimit = &t - } - if o.AutoCwPostsText == nil { n.AutoCwPostsText = nil } else { - t := *o.AutoCwPostsText - n.AutoCwPostsText = &t - } - if o.FullAdmin == nil { n.FullAdmin = nil } else { - t := *o.FullAdmin - n.FullAdmin = &t - } - if o.CanManageCustomEmotes == nil { n.CanManageCustomEmotes = nil } else { - t := *o.CanManageCustomEmotes - n.CanManageCustomEmotes = &t - } - if o.CanViewDeletedNotes == nil { n.CanViewDeletedNotes = nil } else { - t := *o.CanViewDeletedNotes - n.CanViewDeletedNotes = &t - } - if o.CanManageAvatarDecorations == nil { n.CanManageAvatarDecorations = nil } else { - t := *o.CanManageAvatarDecorations - n.CanManageAvatarDecorations = &t - } - if o.CanSendPublicNotes == nil { n.CanSendPublicNotes = nil } else { - t := *o.CanSendPublicNotes - n.CanSendPublicNotes = &t - } - if o.ScanCreatedPublicNotes == nil { n.ScanCreatedPublicNotes = nil } else { - t := *o.ScanCreatedPublicNotes - n.ScanCreatedPublicNotes = &t - } - if o.CanIncludeSurvey == nil { n.CanIncludeSurvey = nil } else { - t := *o.CanIncludeSurvey - n.CanIncludeSurvey = &t + if o.CanSendAnnouncements == nil { n.CanSendAnnouncements = nil } else { + t := *o.CanSendAnnouncements + n.CanSendAnnouncements = &t } return n }