refactor: replace DeviceId with str or String

next
timokoesters 2020-06-07 18:38:00 +02:00
parent b4d65ab67d
commit 588049678b
No known key found for this signature in database
GPG Key ID: 24DA7517711A2BA4
4 changed files with 29 additions and 29 deletions

View File

@ -56,7 +56,7 @@ use ruma::{
room::{canonical_alias, guest_access, history_visibility, join_rules, member, redaction}, room::{canonical_alias, guest_access, history_visibility, join_rules, member, redaction},
EventJson, EventType, EventJson, EventType,
}, },
identifiers::{DeviceId, RoomAliasId, RoomId, RoomVersionId, UserId}, identifiers::{RoomAliasId, RoomId, RoomVersionId, UserId},
}; };
use serde_json::{json, value::RawValue}; use serde_json::{json, value::RawValue};
@ -2841,13 +2841,15 @@ pub fn get_devices_route(
MatrixResult(Ok(get_devices::Response { devices })) MatrixResult(Ok(get_devices::Response { devices }))
} }
#[get("/_matrix/client/r0/devices/<device_id>", data = "<body>")] #[get("/_matrix/client/r0/devices/<_device_id>", data = "<body>")]
pub fn get_device_route( pub fn get_device_route(
db: State<'_, Database>, db: State<'_, Database>,
body: Ruma<get_device::Request>, body: Ruma<get_device::Request>,
device_id: DeviceId, _device_id: String,
) -> MatrixResult<get_device::Response> { ) -> MatrixResult<get_device::Response> {
let user_id = body.user_id.as_ref().expect("user is authenticated"); let user_id = body.user_id.as_ref().expect("user is authenticated");
let device_id = body.device_id.as_ref().expect("user is authenticated");
let device = db.users.get_device_metadata(&user_id, &device_id).unwrap(); let device = db.users.get_device_metadata(&user_id, &device_id).unwrap();
match device { match device {
@ -2860,13 +2862,15 @@ pub fn get_device_route(
} }
} }
#[put("/_matrix/client/r0/devices/<device_id>", data = "<body>")] #[put("/_matrix/client/r0/devices/<_device_id>", data = "<body>")]
pub fn update_device_route( pub fn update_device_route(
db: State<'_, Database>, db: State<'_, Database>,
body: Ruma<update_device::Request>, body: Ruma<update_device::Request>,
device_id: DeviceId, _device_id: String,
) -> MatrixResult<update_device::Response> { ) -> MatrixResult<update_device::Response> {
let user_id = body.user_id.as_ref().expect("user is authenticated"); let user_id = body.user_id.as_ref().expect("user is authenticated");
let device_id = body.device_id.as_ref().expect("user is authenticated");
let device = db.users.get_device_metadata(&user_id, &device_id).unwrap(); let device = db.users.get_device_metadata(&user_id, &device_id).unwrap();
match device { match device {
@ -2887,13 +2891,14 @@ pub fn update_device_route(
} }
} }
#[delete("/_matrix/client/r0/devices/<device_id>", data = "<body>")] #[delete("/_matrix/client/r0/devices/<_device_id>", data = "<body>")]
pub fn delete_device_route( pub fn delete_device_route(
db: State<'_, Database>, db: State<'_, Database>,
body: Ruma<delete_device::Request>, body: Ruma<delete_device::Request>,
device_id: DeviceId, _device_id: String,
) -> MatrixResult<delete_device::Response, UiaaResponse> { ) -> MatrixResult<delete_device::Response, UiaaResponse> {
let user_id = body.user_id.as_ref().expect("user is authenticated"); let user_id = body.user_id.as_ref().expect("user is authenticated");
let device_id = body.device_id.as_ref().expect("user is authenticated");
// UIAA // UIAA
let uiaainfo = UiaaInfo { let uiaainfo = UiaaInfo {

View File

@ -11,7 +11,7 @@ use ruma::{
}, },
}, },
events::{to_device::AnyToDeviceEvent, EventJson, EventType}, events::{to_device::AnyToDeviceEvent, EventJson, EventType},
identifiers::{DeviceId, UserId}, identifiers::UserId,
}; };
use serde_json::value::RawValue; use serde_json::value::RawValue;
use std::{collections::BTreeMap, convert::TryFrom, time::SystemTime}; use std::{collections::BTreeMap, convert::TryFrom, time::SystemTime};
@ -29,7 +29,7 @@ impl Uiaa {
pub fn try_auth( pub fn try_auth(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
auth: &AuthData, auth: &AuthData,
uiaainfo: &UiaaInfo, uiaainfo: &UiaaInfo,
users: &super::users::Users, users: &super::users::Users,

View File

@ -6,7 +6,7 @@ use ruma::{
keys::{AlgorithmAndDeviceId, DeviceKeys, KeyAlgorithm, OneTimeKey}, keys::{AlgorithmAndDeviceId, DeviceKeys, KeyAlgorithm, OneTimeKey},
}, },
events::{to_device::AnyToDeviceEvent, EventJson, EventType}, events::{to_device::AnyToDeviceEvent, EventJson, EventType},
identifiers::{DeviceId, UserId}, identifiers::UserId,
}; };
use std::{collections::BTreeMap, convert::TryFrom, time::SystemTime}; use std::{collections::BTreeMap, convert::TryFrom, time::SystemTime};
@ -113,7 +113,7 @@ impl Users {
pub fn create_device( pub fn create_device(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
token: &str, token: &str,
initial_device_display_name: Option<String>, initial_device_display_name: Option<String>,
) -> Result<()> { ) -> Result<()> {
@ -130,7 +130,7 @@ impl Users {
self.userdeviceid_metadata.insert( self.userdeviceid_metadata.insert(
userdeviceid, userdeviceid,
serde_json::to_string(&Device { serde_json::to_string(&Device {
device_id: device_id.clone(), device_id: device_id.to_owned(),
display_name: initial_device_display_name, display_name: initial_device_display_name,
last_seen_ip: None, // TODO last_seen_ip: None, // TODO
last_seen_ts: Some(SystemTime::now()), last_seen_ts: Some(SystemTime::now()),
@ -144,7 +144,7 @@ impl Users {
} }
/// Removes a device from a user. /// Removes a device from a user.
pub fn remove_device(&self, user_id: &UserId, device_id: &DeviceId) -> Result<()> { pub fn remove_device(&self, user_id: &UserId, device_id: &str) -> Result<()> {
let mut userdeviceid = user_id.to_string().as_bytes().to_vec(); let mut userdeviceid = user_id.to_string().as_bytes().to_vec();
userdeviceid.push(0xff); userdeviceid.push(0xff);
userdeviceid.extend_from_slice(device_id.as_bytes()); userdeviceid.extend_from_slice(device_id.as_bytes());
@ -173,7 +173,7 @@ impl Users {
} }
/// Returns an iterator over all device ids of this user. /// Returns an iterator over all device ids of this user.
pub fn all_device_ids(&self, user_id: &UserId) -> impl Iterator<Item = Result<DeviceId>> { pub fn all_device_ids(&self, user_id: &UserId) -> impl Iterator<Item = Result<String>> {
let mut prefix = user_id.to_string().as_bytes().to_vec(); let mut prefix = user_id.to_string().as_bytes().to_vec();
prefix.push(0xff); prefix.push(0xff);
// All devices have metadata // All devices have metadata
@ -191,7 +191,7 @@ impl Users {
} }
/// Replaces the access token of one device. /// Replaces the access token of one device.
pub fn set_token(&self, user_id: &UserId, device_id: &DeviceId, token: &str) -> Result<()> { pub fn set_token(&self, user_id: &UserId, device_id: &str, token: &str) -> Result<()> {
let mut userdeviceid = user_id.to_string().as_bytes().to_vec(); let mut userdeviceid = user_id.to_string().as_bytes().to_vec();
userdeviceid.push(0xff); userdeviceid.push(0xff);
userdeviceid.extend_from_slice(device_id.as_bytes()); userdeviceid.extend_from_slice(device_id.as_bytes());
@ -219,7 +219,7 @@ impl Users {
pub fn add_one_time_key( pub fn add_one_time_key(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
one_time_key_key: &AlgorithmAndDeviceId, one_time_key_key: &AlgorithmAndDeviceId,
one_time_key_value: &OneTimeKey, one_time_key_value: &OneTimeKey,
) -> Result<()> { ) -> Result<()> {
@ -248,7 +248,7 @@ impl Users {
pub fn take_one_time_key( pub fn take_one_time_key(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
key_algorithm: &KeyAlgorithm, key_algorithm: &KeyAlgorithm,
) -> Result<Option<(AlgorithmAndDeviceId, OneTimeKey)>> { ) -> Result<Option<(AlgorithmAndDeviceId, OneTimeKey)>> {
let mut prefix = user_id.to_string().as_bytes().to_vec(); let mut prefix = user_id.to_string().as_bytes().to_vec();
@ -282,7 +282,7 @@ impl Users {
pub fn count_one_time_keys( pub fn count_one_time_keys(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
) -> Result<BTreeMap<KeyAlgorithm, UInt>> { ) -> Result<BTreeMap<KeyAlgorithm, UInt>> {
let mut userdeviceid = user_id.to_string().as_bytes().to_vec(); let mut userdeviceid = user_id.to_string().as_bytes().to_vec();
userdeviceid.push(0xff); userdeviceid.push(0xff);
@ -315,7 +315,7 @@ impl Users {
pub fn add_device_keys( pub fn add_device_keys(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
device_keys: &DeviceKeys, device_keys: &DeviceKeys,
globals: &super::globals::Globals, globals: &super::globals::Globals,
) -> Result<()> { ) -> Result<()> {
@ -335,7 +335,7 @@ impl Users {
pub fn get_device_keys( pub fn get_device_keys(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
) -> impl Iterator<Item = Result<DeviceKeys>> { ) -> impl Iterator<Item = Result<DeviceKeys>> {
let mut key = user_id.to_string().as_bytes().to_vec(); let mut key = user_id.to_string().as_bytes().to_vec();
key.push(0xff); key.push(0xff);
@ -376,7 +376,7 @@ impl Users {
&self, &self,
sender: &UserId, sender: &UserId,
target_user_id: &UserId, target_user_id: &UserId,
target_device_id: &DeviceId, target_device_id: &str,
event_type: &EventType, event_type: &EventType,
content: serde_json::Value, content: serde_json::Value,
globals: &super::globals::Globals, globals: &super::globals::Globals,
@ -401,7 +401,7 @@ impl Users {
pub fn take_to_device_events( pub fn take_to_device_events(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
max: usize, max: usize,
) -> Result<Vec<EventJson<AnyToDeviceEvent>>> { ) -> Result<Vec<EventJson<AnyToDeviceEvent>>> {
let mut events = Vec::new(); let mut events = Vec::new();
@ -423,7 +423,7 @@ impl Users {
pub fn update_device_metadata( pub fn update_device_metadata(
&self, &self,
user_id: &UserId, user_id: &UserId,
device_id: &DeviceId, device_id: &str,
device: &Device, device: &Device,
) -> Result<()> { ) -> Result<()> {
let mut userdeviceid = user_id.to_string().as_bytes().to_vec(); let mut userdeviceid = user_id.to_string().as_bytes().to_vec();
@ -441,11 +441,7 @@ impl Users {
} }
/// Get device metadata. /// Get device metadata.
pub fn get_device_metadata( pub fn get_device_metadata(&self, user_id: &UserId, device_id: &str) -> Result<Option<Device>> {
&self,
user_id: &UserId,
device_id: &DeviceId,
) -> Result<Option<Device>> {
let mut userdeviceid = user_id.to_string().as_bytes().to_vec(); let mut userdeviceid = user_id.to_string().as_bytes().to_vec();
userdeviceid.push(0xff); userdeviceid.push(0xff);
userdeviceid.extend_from_slice(device_id.as_bytes()); userdeviceid.extend_from_slice(device_id.as_bytes());

View File

@ -43,7 +43,6 @@ GET /profile/:user_id/displayname publicly accessible
GET /device/{deviceId} gives a 404 for unknown devices GET /device/{deviceId} gives a 404 for unknown devices
PUT /device/{deviceId} gives a 404 for unknown devices PUT /device/{deviceId} gives a 404 for unknown devices
After deactivating account, can't log in with an email After deactivating account, can't log in with an email
Can create filter
Should reject keys claiming to belong to a different user Should reject keys claiming to belong to a different user
Can add account data Can add account data
Checking local federation server Checking local federation server