mirror of
https://github.com/element-hq/dendrite.git
synced 2025-09-15 05:32:25 +03:00
Implement server whitelist
This commit is contained in:
parent
add73ec866
commit
b2ecd5648c
14 changed files with 332 additions and 0 deletions
|
@ -31,6 +31,7 @@ type Database struct {
|
|||
FederationQueueJSON tables.FederationQueueJSON
|
||||
FederationJoinedHosts tables.FederationJoinedHosts
|
||||
FederationBlacklist tables.FederationBlacklist
|
||||
FederationWhitelist tables.FederationWhitelist
|
||||
FederationAssumedOffline tables.FederationAssumedOffline
|
||||
FederationRelayServers tables.FederationRelayServers
|
||||
FederationOutboundPeeks tables.FederationOutboundPeeks
|
||||
|
@ -148,6 +149,14 @@ func (d *Database) AddServerToBlacklist(
|
|||
})
|
||||
}
|
||||
|
||||
func (d *Database) AddServerToWhitelist(
|
||||
serverName spec.ServerName,
|
||||
) error {
|
||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||
return d.FederationWhitelist.InsertWhitelist(context.TODO(), txn, serverName)
|
||||
})
|
||||
}
|
||||
|
||||
func (d *Database) RemoveServerFromBlacklist(
|
||||
serverName spec.ServerName,
|
||||
) error {
|
||||
|
@ -156,18 +165,38 @@ func (d *Database) RemoveServerFromBlacklist(
|
|||
})
|
||||
}
|
||||
|
||||
func (d *Database) RemoveServerFromWhitelist(
|
||||
serverName spec.ServerName,
|
||||
) error {
|
||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||
return d.FederationWhitelist.DeleteWhitelist(context.TODO(), txn, serverName)
|
||||
})
|
||||
}
|
||||
|
||||
func (d *Database) RemoveAllServersFromBlacklist() error {
|
||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||
return d.FederationBlacklist.DeleteAllBlacklist(context.TODO(), txn)
|
||||
})
|
||||
}
|
||||
|
||||
func (d *Database) RemoveAllServersFromWhitelist() error {
|
||||
return d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {
|
||||
return d.FederationWhitelist.DeleteAllWhitelist(context.TODO(), txn)
|
||||
})
|
||||
}
|
||||
|
||||
func (d *Database) IsServerBlacklisted(
|
||||
serverName spec.ServerName,
|
||||
) (bool, error) {
|
||||
return d.FederationBlacklist.SelectBlacklist(context.TODO(), nil, serverName)
|
||||
}
|
||||
|
||||
func (d *Database) IsServerWhitelisted(
|
||||
serverName spec.ServerName,
|
||||
) (bool, error) {
|
||||
return d.FederationWhitelist.SelectWhitelist(context.TODO(), nil, serverName)
|
||||
}
|
||||
|
||||
func (d *Database) SetServerAssumedOffline(
|
||||
ctx context.Context,
|
||||
serverName spec.ServerName,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue