Documentation ¶
Index ¶
- Variables
- func CheckAndProcessInvite(ctx context.Context, userID string, body *MembershipRequest, ...) (inviteStoredOnIDServer bool, err error)
- func CheckAssociation(ctx context.Context, creds Credentials, cfg config.Dendrite) (bool, string, string, error)
- func CreateSession(ctx context.Context, req EmailAssociationRequest, cfg config.Dendrite) (string, error)
- func PublishAssociation(creds Credentials, userID string, cfg config.Dendrite) error
- type Credentials
- type EmailAssociationCheckRequest
- type EmailAssociationRequest
- type MembershipRequest
Constants ¶
This section is empty.
Variables ¶
var ( // ErrMissingParameter is the error raised if a request for 3PID invite has // an incomplete body ErrMissingParameter = errors.New("'address', 'id_server' and 'medium' must all be supplied") // ErrNotTrusted is the error raised if an identity server isn't in the list // of trusted servers in the configuration file. ErrNotTrusted = errors.New("untrusted server") )
Functions ¶
func CheckAndProcessInvite ¶
func CheckAndProcessInvite( ctx context.Context, userID string, body *MembershipRequest, cfg config.Dendrite, rsRpcCli roomserverapi.RoomserverRPCAPI, cache service.Cache, membership string, roomID string, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (inviteStoredOnIDServer bool, err error)
CheckAndProcessInvite analyses the body of an incoming membership request. If the fields relative to a third-party-invite are all supplied, lookups the matching Matrix ID from the given identity server. If no Matrix ID is associated to the given 3PID, asks the identity server to store the invite and emit a "m.room.third_party_invite" event. Returns a representation of the HTTP response to send to the user. Returns a representation of a non-200 HTTP response if something went wrong in the process, or if some 3PID fields aren't supplied but others are. If none of the 3PID-specific fields are supplied, or if a Matrix ID is supplied by the identity server, returns nil to indicate that the request must be processed as a non-3PID membership request. In the latter case, fills the Matrix ID in the request body so a normal invite membership event can be emitted.
func CheckAssociation ¶
func CheckAssociation( ctx context.Context, creds Credentials, cfg config.Dendrite, ) (bool, string, string, error)
CheckAssociation checks the status of an ongoing association validation on an identity server. Returns a boolean set to true if the association has been validated, false if not. If the association has been validated, also returns the related third-party identifier and its medium. Returns an error if there was a problem sending the request or decoding the response, or if the identity server responded with a non-OK status.
func CreateSession ¶
func CreateSession( ctx context.Context, req EmailAssociationRequest, cfg config.Dendrite, ) (string, error)
CreateSession creates a session on an identity server. Returns the session's ID. Returns an error if there was a problem sending the request or decoding the response, or if the identity server responded with a non-OK status.
func PublishAssociation ¶
func PublishAssociation(creds Credentials, userID string, cfg config.Dendrite) error
PublishAssociation publishes a validated association between a third-party identifier and a Matrix ID. Returns an error if there was a problem sending the request or decoding the response, or if the identity server responded with a non-OK status.
Types ¶
type Credentials ¶
type Credentials struct { SID string `json:"sid"` IDServer string `json:"id_server"` Secret string `json:"client_secret"` }
Credentials represents the "ThreePidCredentials" structure defined at https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-account-3pid
type EmailAssociationCheckRequest ¶
type EmailAssociationCheckRequest struct { Creds Credentials `json:"threePidCreds"` Bind bool `json:"bind"` }
EmailAssociationCheckRequest represents the request defined at https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-account-3pid
type EmailAssociationRequest ¶
type EmailAssociationRequest struct { IDServer string `json:"id_server"` Secret string `json:"client_secret"` Email string `json:"email"` SendAttempt int `json:"send_attempt"` }
EmailAssociationRequest represents the request defined at https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-register-email-requesttoken
type MembershipRequest ¶
type MembershipRequest struct { UserID string `json:"user_id"` Reason string `json:"reason"` IDServer string `json:"id_server"` Medium string `json:"medium"` Address string `json:"address"` AutoJoin bool `json:"auto_join"` }
MembershipRequest represents the body of an incoming POST request on /rooms/{roomID}/(join|kick|ban|unban|leave|invite)