policyeval

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2025 License: AGPL-3.0 Imports: 36 Imported by: 0

Documentation

Index

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 (*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 (pe *PolicyEvaluator) EvaluateRoom(ctx context.Context, roomID id.RoomID, isNewRule bool)

func (*PolicyEvaluator) EvaluateUser

func (pe *PolicyEvaluator) EvaluateUser(ctx context.Context, userID id.UserID, isNewRule bool)

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 (pe *PolicyEvaluator) HandleAcceptMakeJoin(ctx context.Context, roomID id.RoomID, userID id.UserID) *mautrix.RespError

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 (pe *PolicyEvaluator) HandleReport(ctx context.Context, senderClient *mautrix.Client, targetUserID id.UserID, roomID id.RoomID, eventID id.EventID, reason string) error

func (*PolicyEvaluator) HandleUserMayInvite added in v0.3.0

func (pe *PolicyEvaluator) HandleUserMayInvite(ctx context.Context, inviter, invitee id.UserID, roomID id.RoomID) *mautrix.RespError

func (*PolicyEvaluator) HandleUserMayJoinRoom added in v0.3.0

func (pe *PolicyEvaluator) HandleUserMayJoinRoom(ctx context.Context, userID id.UserID, roomID id.RoomID, isInvited bool)

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 (pe *PolicyEvaluator) RedactUser(ctx context.Context, userID id.UserID, reason string, allowReredact bool)

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) UndoBan added in v0.4.0

func (pe *PolicyEvaluator) UndoBan(ctx context.Context, userID id.UserID, roomID id.RoomID) bool

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"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL