0
0
Fork 0
mirror of https://github.com/dani-garcia/vaultwarden synced 2024-12-14 09:33:44 +01:00

Implement better user status API, in the future we'll probably want a way to disable users.

We should migrate from the empty password hash to a separate column then.
This commit is contained in:
Daniel García 2019-04-13 00:01:52 +02:00
parent 2e12114350
commit 0136c793b4
No known key found for this signature in database
GPG key ID: FC8A7D14C3CD543A
2 changed files with 17 additions and 4 deletions

View file

@ -37,6 +37,12 @@ pub struct User {
pub client_kdf_iter: i32, pub client_kdf_iter: i32,
} }
enum UserStatus {
Enabled = 0,
Invited = 1,
_Disabled = 2,
}
/// Local methods /// Local methods
impl User { impl User {
pub const CLIENT_KDF_TYPE_DEFAULT: i32 = 0; // PBKDF2: 0 pub const CLIENT_KDF_TYPE_DEFAULT: i32 = 0; // PBKDF2: 0
@ -119,8 +125,15 @@ impl User {
let orgs_json: Vec<Value> = orgs.iter().map(|c| c.to_json(&conn)).collect(); let orgs_json: Vec<Value> = orgs.iter().map(|c| c.to_json(&conn)).collect();
let twofactor_enabled = !TwoFactor::find_by_user(&self.uuid, conn).is_empty(); let twofactor_enabled = !TwoFactor::find_by_user(&self.uuid, conn).is_empty();
// TODO: Might want to save the status field in the DB
let status = if self.password_hash.is_empty() {
UserStatus::Invited
} else {
UserStatus::Enabled
};
json!({ json!({
"_Enabled": !self.password_hash.is_empty(), "_Status": status as i32,
"Id": self.uuid, "Id": self.uuid,
"Name": self.name, "Name": self.name,
"Email": self.email, "Email": self.email,

View file

@ -13,9 +13,9 @@
{{#if TwoFactorEnabled}} {{#if TwoFactorEnabled}}
<span class="badge badge-success ml-2">2FA</span> <span class="badge badge-success ml-2">2FA</span>
{{/if}} {{/if}}
{{#unless _Enabled}} {{#case _Status 1}}
<span class="badge badge-warning ml-2">Disabled</span> <span class="badge badge-warning ml-2">Invited</span>
{{/unless}} {{/case}}
<span class="d-block">{{Email}}</span> <span class="d-block">{{Email}}</span>
</div> </div>
<div class="col"> <div class="col">