mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-10-26 07:50:02 +02: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:
		| @@ -37,6 +37,12 @@ pub struct User { | ||||
|     pub client_kdf_iter: i32, | ||||
| } | ||||
|  | ||||
| enum UserStatus { | ||||
|     Enabled = 0, | ||||
|     Invited = 1, | ||||
|     _Disabled = 2, | ||||
| } | ||||
|  | ||||
| /// Local methods | ||||
| impl User { | ||||
|     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 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!({ | ||||
|             "_Enabled": !self.password_hash.is_empty(), | ||||
|             "_Status": status as i32, | ||||
|             "Id": self.uuid, | ||||
|             "Name": self.name, | ||||
|             "Email": self.email, | ||||
|   | ||||
| @@ -13,9 +13,9 @@ | ||||
|                             {{#if TwoFactorEnabled}} | ||||
|                             <span class="badge badge-success ml-2">2FA</span> | ||||
|                             {{/if}} | ||||
|                             {{#unless _Enabled}} | ||||
|                             <span class="badge badge-warning ml-2">Disabled</span> | ||||
|                             {{/unless}} | ||||
|                             {{#case _Status 1}} | ||||
|                             <span class="badge badge-warning ml-2">Invited</span> | ||||
|                             {{/case}} | ||||
|                             <span class="d-block">{{Email}}</span> | ||||
|                         </div> | ||||
|                         <div class="col"> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user