Documentation
¶
Index ¶
- Constants
- type CommandEvent
- type CommandHandler
- type PSRecommendation
- type PolicyEvaluator
- func (pe *PolicyEvaluator) ApplyBan(ctx context.Context, userID id.UserID, roomID id.RoomID, ...)
- func (pe *PolicyEvaluator) ApplyPolicy(ctx context.Context, userID id.UserID, policy policylist.Match, isNew bool)
- func (pe *PolicyEvaluator) CompileACL() (*event.ServerACLEventContent, time.Duration)
- func (pe *PolicyEvaluator) DeferredUpdateACL()
- func (pe *PolicyEvaluator) EvaluateAddedRule(ctx context.Context, policy *policylist.Policy)
- func (pe *PolicyEvaluator) EvaluateAll(ctx context.Context)
- func (pe *PolicyEvaluator) EvaluateAllMembers(ctx context.Context, members []id.UserID)
- func (pe *PolicyEvaluator) EvaluateRemovedRule(ctx context.Context, policy *policylist.Policy)
- func (pe *PolicyEvaluator) EvaluateRoom(ctx context.Context, roomID id.RoomID, isNewRule bool)
- func (pe *PolicyEvaluator) EvaluateUser(ctx context.Context, userID id.UserID, isNewRule bool)
- func (pe *PolicyEvaluator) FindListByShortcode(shortcode string) *config.WatchedPolicyList
- func (pe *PolicyEvaluator) GetProtectedRooms() []id.RoomID
- func (pe *PolicyEvaluator) GetWatchedListMeta(roomID id.RoomID) *config.WatchedPolicyList
- func (pe *PolicyEvaluator) GetWatchedLists() []id.RoomID
- func (pe *PolicyEvaluator) GetWatchedListsForACLs() []id.RoomID
- func (pe *PolicyEvaluator) HandleAcceptMakeJoin(ctx context.Context, roomID id.RoomID, userID id.UserID) *mautrix.RespError
- func (pe *PolicyEvaluator) HandleCommand(ctx context.Context, evt *event.Event)
- func (pe *PolicyEvaluator) HandleConfigChange(ctx context.Context, evt *event.Event)
- func (pe *PolicyEvaluator) HandleMember(ctx context.Context, evt *event.Event)
- func (pe *PolicyEvaluator) HandleMessage(ctx context.Context, evt *event.Event)
- func (pe *PolicyEvaluator) HandlePolicyListChange(ctx context.Context, policyRoom id.RoomID, added, removed *policylist.Policy)
- func (pe *PolicyEvaluator) HandleProtectedRoomMeta(ctx context.Context, evt *event.Event)
- func (pe *PolicyEvaluator) HandleReaction(ctx context.Context, evt *event.Event)
- func (pe *PolicyEvaluator) HandleReport(ctx context.Context, senderClient *mautrix.Client, targetUserID id.UserID, ...) error
- func (pe *PolicyEvaluator) HandleUserMayInvite(ctx context.Context, inviter, invitee id.UserID, roomID id.RoomID) *mautrix.RespError
- func (pe *PolicyEvaluator) HandleUserMayJoinRoom(ctx context.Context, userID id.UserID, roomID id.RoomID, isInvited bool)
- func (pe *PolicyEvaluator) IsProtectedRoom(roomID id.RoomID) bool
- func (pe *PolicyEvaluator) IsWatchingList(roomID id.RoomID) bool
- func (pe *PolicyEvaluator) Load(ctx context.Context)
- func (pe *PolicyEvaluator) PromptRoomPolicy(ctx context.Context, roomID id.RoomID, policy policylist.Match, isNewRule bool)
- func (pe *PolicyEvaluator) RedactUser(ctx context.Context, userID id.UserID, reason string, allowReredact bool)
- func (pe *PolicyEvaluator) ReevaluateActions(ctx context.Context, actions []*database.TakenAction)
- func (pe *PolicyEvaluator) ReevaluateAffectedByLists(ctx context.Context, policyLists []id.RoomID)
- func (pe *PolicyEvaluator) ReevaluateBan(ctx context.Context, action *database.TakenAction)
- func (pe *PolicyEvaluator) RejectPendingInvites(ctx context.Context, inviter id.UserID, rec *policylist.Policy)
- func (pe *PolicyEvaluator) SendPolicy(ctx context.Context, policyList id.RoomID, entityType policylist.EntityType, ...) (*mautrix.RespSendEvent, error)
- func (pe *PolicyEvaluator) UndoBan(ctx context.Context, userID id.UserID, roomID id.RoomID) bool
- func (pe *PolicyEvaluator) UpdateACL(ctx context.Context)
- type PolicyServer
- type PolicyServerResponse
Constants ¶
View Source
const SuccessReaction = "✅"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommandEvent ¶ added in v0.5.0
type CommandEvent = commands.Event[*PolicyEvaluator]
type CommandHandler ¶ added in v0.5.0
type CommandHandler = commands.Handler[*PolicyEvaluator]
type PSRecommendation ¶ added in v0.6.0
type PSRecommendation string
const ( PSRecommendationOk PSRecommendation = "ok" PSRecommendationSpam PSRecommendation = "spam" )
type PolicyEvaluator ¶
type PolicyEvaluator struct { Bot *bot.Bot Store *policylist.Store SynapseDB *synapsedb.SynapseDB DB *database.Database DryRun bool ManagementRoom id.RoomID Admins *exsync.Set[id.UserID] RoomHashes *roomhash.Map AutoRejectInvites bool FilterLocalInvites bool // contains filtered or unexported fields }
func NewPolicyEvaluator ¶
func NewPolicyEvaluator( bot *bot.Bot, store *policylist.Store, managementRoom id.RoomID, db *database.Database, synapseDB *synapsedb.SynapseDB, claimProtected func(roomID id.RoomID, eval *PolicyEvaluator, claim bool) *PolicyEvaluator, createPuppetClient func(userID id.UserID) *mautrix.Client, autoRejectInvites, filterLocalInvites, dryRun bool, hackyAutoRedactPatterns []glob.Glob, policyServer *PolicyServer, roomHashes *roomhash.Map, ) *PolicyEvaluator
func (*PolicyEvaluator) ApplyBan ¶
func (pe *PolicyEvaluator) ApplyBan( ctx context.Context, userID id.UserID, roomID id.RoomID, policy *policylist.Policy, shouldRedact bool, )
func (*PolicyEvaluator) ApplyPolicy ¶
func (pe *PolicyEvaluator) ApplyPolicy(ctx context.Context, userID id.UserID, policy policylist.Match, isNew bool)
func (*PolicyEvaluator) CompileACL ¶ added in v0.3.0
func (pe *PolicyEvaluator) CompileACL() (*event.ServerACLEventContent, time.Duration)
func (*PolicyEvaluator) DeferredUpdateACL ¶ added in v0.5.0
func (pe *PolicyEvaluator) DeferredUpdateACL()
func (*PolicyEvaluator) EvaluateAddedRule ¶
func (pe *PolicyEvaluator) EvaluateAddedRule(ctx context.Context, policy *policylist.Policy)
func (*PolicyEvaluator) EvaluateAll ¶
func (pe *PolicyEvaluator) EvaluateAll(ctx context.Context)
func (*PolicyEvaluator) EvaluateAllMembers ¶
func (pe *PolicyEvaluator) EvaluateAllMembers(ctx context.Context, members []id.UserID)
func (*PolicyEvaluator) EvaluateRemovedRule ¶
func (pe *PolicyEvaluator) EvaluateRemovedRule(ctx context.Context, policy *policylist.Policy)
func (*PolicyEvaluator) EvaluateRoom ¶ added in v0.6.0
func (*PolicyEvaluator) EvaluateUser ¶
func (*PolicyEvaluator) FindListByShortcode ¶ added in v0.2.0
func (pe *PolicyEvaluator) FindListByShortcode(shortcode string) *config.WatchedPolicyList
func (*PolicyEvaluator) GetProtectedRooms ¶
func (pe *PolicyEvaluator) GetProtectedRooms() []id.RoomID
func (*PolicyEvaluator) GetWatchedListMeta ¶
func (pe *PolicyEvaluator) GetWatchedListMeta(roomID id.RoomID) *config.WatchedPolicyList
func (*PolicyEvaluator) GetWatchedLists ¶
func (pe *PolicyEvaluator) GetWatchedLists() []id.RoomID
func (*PolicyEvaluator) GetWatchedListsForACLs ¶ added in v0.3.0
func (pe *PolicyEvaluator) GetWatchedListsForACLs() []id.RoomID
func (*PolicyEvaluator) HandleAcceptMakeJoin ¶ added in v0.4.0
func (*PolicyEvaluator) HandleCommand ¶
func (pe *PolicyEvaluator) HandleCommand(ctx context.Context, evt *event.Event)
func (*PolicyEvaluator) HandleConfigChange ¶
func (pe *PolicyEvaluator) HandleConfigChange(ctx context.Context, evt *event.Event)
func (*PolicyEvaluator) HandleMember ¶
func (pe *PolicyEvaluator) HandleMember(ctx context.Context, evt *event.Event)
func (*PolicyEvaluator) HandleMessage ¶ added in v0.2.0
func (pe *PolicyEvaluator) HandleMessage(ctx context.Context, evt *event.Event)
func (*PolicyEvaluator) HandlePolicyListChange ¶
func (pe *PolicyEvaluator) HandlePolicyListChange(ctx context.Context, policyRoom id.RoomID, added, removed *policylist.Policy)
func (*PolicyEvaluator) HandleProtectedRoomMeta ¶ added in v0.3.0
func (pe *PolicyEvaluator) HandleProtectedRoomMeta(ctx context.Context, evt *event.Event)
func (*PolicyEvaluator) HandleReaction ¶ added in v0.6.0
func (pe *PolicyEvaluator) HandleReaction(ctx context.Context, evt *event.Event)
func (*PolicyEvaluator) HandleReport ¶ added in v0.2.0
func (*PolicyEvaluator) HandleUserMayInvite ¶ added in v0.3.0
func (*PolicyEvaluator) HandleUserMayJoinRoom ¶ added in v0.3.0
func (*PolicyEvaluator) IsProtectedRoom ¶
func (pe *PolicyEvaluator) IsProtectedRoom(roomID id.RoomID) bool
func (*PolicyEvaluator) IsWatchingList ¶
func (pe *PolicyEvaluator) IsWatchingList(roomID id.RoomID) bool
func (*PolicyEvaluator) Load ¶
func (pe *PolicyEvaluator) Load(ctx context.Context)
func (*PolicyEvaluator) PromptRoomPolicy ¶ added in v0.6.0
func (pe *PolicyEvaluator) PromptRoomPolicy(ctx context.Context, roomID id.RoomID, policy policylist.Match, isNewRule bool)
func (*PolicyEvaluator) RedactUser ¶
func (*PolicyEvaluator) ReevaluateActions ¶
func (pe *PolicyEvaluator) ReevaluateActions(ctx context.Context, actions []*database.TakenAction)
func (*PolicyEvaluator) ReevaluateAffectedByLists ¶
func (pe *PolicyEvaluator) ReevaluateAffectedByLists(ctx context.Context, policyLists []id.RoomID)
func (*PolicyEvaluator) ReevaluateBan ¶ added in v0.4.0
func (pe *PolicyEvaluator) ReevaluateBan(ctx context.Context, action *database.TakenAction)
func (*PolicyEvaluator) RejectPendingInvites ¶ added in v0.3.0
func (pe *PolicyEvaluator) RejectPendingInvites(ctx context.Context, inviter id.UserID, rec *policylist.Policy)
func (*PolicyEvaluator) SendPolicy ¶ added in v0.2.0
func (pe *PolicyEvaluator) SendPolicy(ctx context.Context, policyList id.RoomID, entityType policylist.EntityType, stateKey, rawEntity string, content *event.ModPolicyContent) (*mautrix.RespSendEvent, error)
func (*PolicyEvaluator) UpdateACL ¶ added in v0.3.0
func (pe *PolicyEvaluator) UpdateACL(ctx context.Context)
type PolicyServer ¶ added in v0.6.0
type PolicyServer struct { Federation *federation.Client ServerAuth *federation.ServerAuth CacheMaxSize int CacheMaxAge time.Duration // contains filtered or unexported fields }
func NewPolicyServer ¶ added in v0.6.0
func NewPolicyServer(serverName string) *PolicyServer
func (*PolicyServer) HandleCheck ¶ added in v0.6.0
func (ps *PolicyServer) HandleCheck( ctx context.Context, evtID id.EventID, pdu *event.Event, evaluator *PolicyEvaluator, redact bool, ) (res *PolicyServerResponse, err error)
func (*PolicyServer) UpdateRecommendation ¶ added in v0.6.0
func (ps *PolicyServer) UpdateRecommendation(userID id.UserID, roomIDs []id.RoomID, rec PSRecommendation)
type PolicyServerResponse ¶ added in v0.6.0
type PolicyServerResponse struct {
Recommendation PSRecommendation `json:"recommendation"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.