aboutsummaryrefslogtreecommitdiff
path: root/userapi
diff options
context:
space:
mode:
authorWill Hunt <will@half-shot.uk>2021-03-03 16:27:44 +0000
committerGitHub <noreply@github.com>2021-03-03 16:27:44 +0000
commita2773922d2fe40e6d95d73f532640702709ab526 (patch)
treeaaf2f63073eb840655d6b244d0c85b534d7b91c3 /userapi
parentd15836e260130f85edd5d9a104e5304f001d2681 (diff)
Send events to appservice based on room membership (#1680)
* Check membership of room * Use QueryStateAfterEventsResponse * Fix complexity * Changes that I made a long time ago * Rename to appserviceJoinedAtEvent * Check membership in GetMemberships * Update QueryMembershipsForRoom * Tweaks in client API * Update appserviceJoinedAtEvent * Comments * Try QueryMembershipForUser instead * Undo some changes to client API that shouldn't be needed * More /event tweaks * Refactor /event bit * Go back to QueryMembershipsForRoom because appservices are hard * Fix bugs in onMessage * Add comments Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Diffstat (limited to 'userapi')
-rw-r--r--userapi/api/api.go3
-rw-r--r--userapi/internal/api.go3
2 files changed, 5 insertions, 1 deletions
diff --git a/userapi/api/api.go b/userapi/api/api.go
index 809ba047..45e4e834 100644
--- a/userapi/api/api.go
+++ b/userapi/api/api.go
@@ -241,6 +241,9 @@ type Device struct {
LastSeenTS int64
LastSeenIP string
UserAgent string
+ // If the device is for an appservice user,
+ // this is the appservice ID.
+ AppserviceID string
}
// Account represents a Matrix account on this home server.
diff --git a/userapi/internal/api.go b/userapi/internal/api.go
index e104714b..0d01afa1 100644
--- a/userapi/internal/api.go
+++ b/userapi/internal/api.go
@@ -381,7 +381,8 @@ func (a *UserInternalAPI) queryAppServiceToken(ctx context.Context, token, appSe
// Use AS dummy device ID
ID: types.AppServiceDeviceID,
// AS dummy device has AS's token.
- AccessToken: token,
+ AccessToken: token,
+ AppserviceID: appService.ID,
}
localpart, err := userutil.ParseUsernameParam(appServiceUserID, &a.ServerName)