// Code generated by cmd/RolesGenerator DO NOT EDIT. // If you need to refresh the content, run go generate again package storage import "slices" 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.CanSupressInteractionsBetweenUsers != nil { *startingRole.CanSupressInteractionsBetweenUsers = *role.CanSupressInteractionsBetweenUsers } if role.CanQuote != nil { *startingRole.CanQuote = *role.CanQuote } if role.CanIncludeSurvey != nil { *startingRole.CanIncludeSurvey = *role.CanIncludeSurvey } if role.BlockedUsers != nil { startingRole.BlockedUsers = append(startingRole.BlockedUsers, role.BlockedUsers...) } if role.AutoCwPostsText != nil { *startingRole.AutoCwPostsText = *role.AutoCwPostsText } if role.ScanCreatedLocalNotes != nil { *startingRole.ScanCreatedLocalNotes = *role.ScanCreatedLocalNotes } if role.WithholdNotesForManualApproval != nil { *startingRole.WithholdNotesForManualApproval = *role.WithholdNotesForManualApproval } if role.FullAdmin != nil { *startingRole.FullAdmin = *role.FullAdmin } if role.CanManageAvatarDecorations != nil { *startingRole.CanManageAvatarDecorations = *role.CanManageAvatarDecorations } if role.CanSendCustomEmotes != nil { *startingRole.CanSendCustomEmotes = *role.CanSendCustomEmotes } if role.CanSendCustomReactions != nil { *startingRole.CanSendCustomReactions = *role.CanSendCustomReactions } if role.CanSendLocalNotes != nil { *startingRole.CanSendLocalNotes = *role.CanSendLocalNotes } if role.CanSendPrivateNotes != nil { *startingRole.CanSendPrivateNotes = *role.CanSendPrivateNotes } 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 } if role.CanLogin != nil { *startingRole.CanLogin = *role.CanLogin } if role.MentionLimit != nil { *startingRole.MentionLimit = *role.MentionLimit } if role.ScanCreatedFollowerOnlyNotes != nil { *startingRole.ScanCreatedFollowerOnlyNotes = *role.ScanCreatedFollowerOnlyNotes } 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 } func RoleDeepCopy(o *Role) Role { n := Role{} n.Model = o.Model n.Name = o.Name 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 } if o.CanSendLocalNotes == nil { n.CanSendLocalNotes = nil } else { t := *o.CanSendLocalNotes n.CanSendLocalNotes = &t } if o.CanSendPrivateNotes == nil { n.CanSendPrivateNotes = nil } else { t := *o.CanSendPrivateNotes n.CanSendPrivateNotes = &t } if o.AutoNsfwMedia == nil { n.AutoNsfwMedia = nil } else { t := *o.AutoNsfwMedia n.AutoNsfwMedia = &t } if o.CanBoost == nil { n.CanBoost = nil } else { t := *o.CanBoost n.CanBoost = &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.CanSendAnnouncements == nil { n.CanSendAnnouncements = nil } else { t := *o.CanSendAnnouncements n.CanSendAnnouncements = &t } return n }