MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / update_password

Method update_password

chirpstack/src/api/user.rs:220–250  ·  view source on GitHub ↗
(
        &self,
        request: Request<api::UpdateUserPasswordRequest>,
    )

Source from the content-addressed store, hash-verified

218 }
219
220 async fn update_password(
221 &self,
222 request: Request<api::UpdateUserPasswordRequest>,
223 ) -> Result<Response<()>, Status> {
224 let req = request.get_ref();
225 let user_id = Uuid::from_str(&req.user_id).map_err(|e| e.status())?;
226 self.validator
227 .validate(
228 request.extensions(),
229 validator::ValidateUserAccess::new(validator::Flag::UpdateProfile, user_id),
230 )
231 .await?;
232
233 // get
234 let mut u = user::get(&user_id).await.map_err(|e| e.status())?;
235
236 // set password
237 u.updated_at = Utc::now();
238 u.set_password_hash(&req.password).map_err(|e| e.status())?;
239
240 // update
241 let _ = user::set_password_hash(&u.id, &u.password_hash)
242 .await
243 .map_err(|e| e.status())?;
244
245 let mut resp = Response::new(());
246 resp.metadata_mut()
247 .insert("x-log-user_id", req.user_id.parse().unwrap());
248
249 Ok(resp)
250 }
251}
252
253#[cfg(test)]

Callers 1

test_userFunction · 0.80

Calls 7

set_password_hashFunction · 0.85
statusMethod · 0.80
set_password_hashMethod · 0.80
insertMethod · 0.80
unwrapMethod · 0.80
getFunction · 0.50
validateMethod · 0.45

Tested by 1

test_userFunction · 0.64