commit cb930a0858172bc64f99578f6050863712fd1225
parent 94810c106a96adab678434a93c9defe125fc8809
Author: Daniel GarcĂa <dani-garcia@users.noreply.github.com>
Date: Fri, 7 Dec 2018 14:32:40 +0100
Remove some required values during login, now uses default values
Diffstat:
8 files changed, 17 insertions(+), 27 deletions(-)
diff --git a/src/api/identity.rs b/src/api/identity.rs
@@ -92,9 +92,9 @@ fn _password_login(data: ConnectData, conn: DbConn, remote: Option<SocketAddr>)
))
}
- let device_type: i32 = util::try_parse_string(data.device_type.as_ref()).expect("Invalid type");
- let device_id = data.device_identifier.clone().expect("Missing device id");
- let device_name = data.device_name.clone().expect("Missing device name");
+ let device_type = util::try_parse_string(data.device_type.as_ref()).unwrap_or(0);
+ let device_id = data.device_identifier.clone().unwrap_or_else(|| crate::util::get_uuid());
+ let device_name = data.device_name.clone().unwrap_or("unknown_device".into());
// Find device or create new
let mut device = match Device::find_by_uuid(&device_id, &conn) {
@@ -325,10 +325,7 @@ fn validate_data(data: &ConnectData) -> EmptyResult {
_check_is_some(&data.client_id, "client_id cannot be blank")?;
_check_is_some(&data.password, "password cannot be blank")?;
_check_is_some(&data.scope, "scope cannot be blank")?;
- _check_is_some(&data.username, "username cannot be blank")?;
- _check_is_some(&data.device_identifier, "device_identifier cannot be blank")?;
- _check_is_some(&data.device_name, "device_name cannot be blank")?;
- _check_is_some(&data.device_type, "device_type cannot be blank")
+ _check_is_some(&data.username, "username cannot be blank")
}
}
}
diff --git a/src/db/models/cipher.rs b/src/db/models/cipher.rs
@@ -1,8 +1,6 @@
use chrono::{NaiveDateTime, Utc};
use serde_json::Value;
-use uuid::Uuid;
-
use super::{User, Organization, Attachment, FolderCipher, CollectionCipher, UserOrganization, UserOrgType, UserOrgStatus};
#[derive(Debug, Identifiable, Queryable, Insertable, Associations)]
@@ -41,7 +39,7 @@ impl Cipher {
let now = Utc::now().naive_utc();
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
created_at: now,
updated_at: now,
diff --git a/src/db/models/collection.rs b/src/db/models/collection.rs
@@ -1,7 +1,5 @@
use serde_json::Value;
-use uuid::Uuid;
-
use super::{Organization, UserOrganization, UserOrgType, UserOrgStatus};
#[derive(Debug, Identifiable, Queryable, Insertable, Associations)]
@@ -18,7 +16,7 @@ pub struct Collection {
impl Collection {
pub fn new(org_uuid: String, name: String) -> Self {
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
org_uuid,
name,
diff --git a/src/db/models/folder.rs b/src/db/models/folder.rs
@@ -1,8 +1,6 @@
use chrono::{NaiveDateTime, Utc};
use serde_json::Value;
-use uuid::Uuid;
-
use super::{User, Cipher};
#[derive(Debug, Identifiable, Queryable, Insertable, Associations)]
@@ -33,7 +31,7 @@ impl Folder {
let now = Utc::now().naive_utc();
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
created_at: now,
updated_at: now,
diff --git a/src/db/models/organization.rs b/src/db/models/organization.rs
@@ -1,7 +1,6 @@
use std::cmp::Ordering;
use serde_json::Value;
-use uuid::Uuid;
use super::{User, CollectionUser, Invitation};
#[derive(Debug, Identifiable, Queryable, Insertable)]
@@ -159,7 +158,7 @@ impl Organization {
pub fn new(name: String, billing_email: String) -> Self {
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
name,
billing_email,
@@ -206,7 +205,7 @@ impl Organization {
impl UserOrganization {
pub fn new(user_uuid: String, org_uuid: String) -> Self {
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
user_uuid,
org_uuid,
diff --git a/src/db/models/two_factor.rs b/src/db/models/two_factor.rs
@@ -1,7 +1,5 @@
use serde_json::Value;
-use uuid::Uuid;
-
use super::User;
#[derive(Debug, Identifiable, Queryable, Insertable, Associations)]
@@ -36,7 +34,7 @@ pub enum TwoFactorType {
impl TwoFactor {
pub fn new(user_uuid: String, type_: TwoFactorType, data: String) -> Self {
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
user_uuid,
type_: type_ as i32,
enabled: true,
diff --git a/src/db/models/user.rs b/src/db/models/user.rs
@@ -1,8 +1,6 @@
use chrono::{NaiveDateTime, Utc};
use serde_json::Value;
-use uuid::Uuid;
-
use crate::crypto;
use crate::CONFIG;
@@ -50,7 +48,7 @@ impl User {
let email = mail.to_lowercase();
Self {
- uuid: Uuid::new_v4().to_string(),
+ uuid: crate::util::get_uuid(),
created_at: now,
updated_at: now,
name: email.clone(),
@@ -61,7 +59,7 @@ impl User {
salt: crypto::get_random_64(),
password_iterations: CONFIG.password_iterations,
- security_stamp: Uuid::new_v4().to_string(),
+ security_stamp: crate::util::get_uuid(),
password_hint: None,
private_key: None,
@@ -100,7 +98,7 @@ impl User {
}
pub fn reset_security_stamp(&mut self) {
- self.security_stamp = Uuid::new_v4().to_string();
+ self.security_stamp = crate::util::get_uuid();
}
pub fn is_server_admin(&self) -> bool {
diff --git a/src/util.rs b/src/util.rs
@@ -92,6 +92,10 @@ pub fn get_display_size(size: i32) -> String {
format!("{} {}", size, UNITS[unit_counter])
}
+pub fn get_uuid() -> String {
+ uuid::Uuid::new_v4().to_string()
+}
+
///
/// String util methods