Get existing users

This commit is contained in:
James Jennett-Wheeler 2023-10-26 17:47:10 +01:00
parent 9d74f34b9a
commit 8f78889fd2

View File

@ -84,6 +84,9 @@ async function registerUser(user: MatrixUser): Promise<AccessToken> {
async function getUserData(user: MatrixUser): Promise<UserInfo> {
return (await axios.get('/_synapse/admin/v2/users/@' + user.username + ":" + getUserDomain())).data
}
async function getUserLogin(user: MatrixUser): Promise<AccessToken> {
return (await axios.get('/_synapse/admin/v1/users/@' + user.username + ":" + getUserDomain() + "/login")).data
}
async function parseUserMemberships(rcUser: RcUser): Promise<void> {
await Promise.all(
@ -128,9 +131,13 @@ export async function createMapping(
export async function createUser(rcUser: RcUser): Promise<MatrixUser> {
const user = mapUser(rcUser)
try {
const user_data = await getUserData(user)
log.info(`User ${rcUser.username} exists:`, user_data)
const userData = await getUserData(user)
user.user_id = userData.name
user.displayname = userData.displayname
user.admin = user.admin || userData.admin
const accessToken = await getUserLogin(user)
user.access_token = accessToken.access_token
log.info(`User ${rcUser.username} exists:`, user)
} catch (error) {
const nonce = await getUserRegistrationNonce()
const mac = generateHmac({ ...user, nonce })
@ -139,7 +146,6 @@ export async function createUser(rcUser: RcUser): Promise<MatrixUser> {
user.access_token = accessToken.access_token
log.info(`User ${rcUser.username} created:`, user)
}
throw "End here"
await parseUserMemberships(rcUser)
return user