This commit is contained in:
2026-08-16 13:00:29 +02:00
parent e6d6968e52
commit 7fc8edd1d0
71 changed files with 2359 additions and 448 deletions
+30 -6
View File
@@ -32,7 +32,11 @@ async fn require_server_permission(
.map(|value| ServerPermission::from_bits_truncate(value.permissions as u64))
.unwrap_or_default();
if granted.contains(permission) { Ok(()) } else { Err(HTTPError::Forbidden) }
if granted.contains(permission) {
Ok(())
} else {
Err(HTTPError::Forbidden)
}
}
/// Liste tous les serveurs
@@ -241,9 +245,23 @@ pub async fn list_user_permissions(
State(state): State<AppState>,
Path(server_id): Path<Uuid>,
) -> Result<Json<Vec<ServerUserPermissionResponse>>, HTTPError> {
state.repositories.server.get_by_id(server_id).await?.ok_or(HTTPError::NotFound)?;
let permissions = state.repositories.server.get_user_permissions(server_id).await?;
Ok(Json(permissions.into_iter().map(mapper::server_user_permission_to_response).collect()))
state
.repositories
.server
.get_by_id(server_id)
.await?
.ok_or(HTTPError::NotFound)?;
let permissions = state
.repositories
.server
.get_user_permissions(server_id)
.await?;
Ok(Json(
permissions
.into_iter()
.map(mapper::server_user_permission_to_response)
.collect(),
))
}
/// Définit ou remplace les permissions directes d'un utilisateur sur un serveur.
@@ -268,8 +286,14 @@ pub async fn set_user_permission(
Json(payload): Json<SetServerPermissionRequest>,
) -> Result<Json<ServerUserPermissionResponse>, HTTPError> {
require_server_permission(&state, &user, server_id, ServerPermission::MANAGE_MEMBERS).await?;
state.repositories.server.get_user(server_id, user_id).await?
.ok_or(HTTPError::BadRequest("User is not a member of this server".to_string()))?;
state
.repositories
.server
.get_user(server_id, user_id)
.await?
.ok_or(HTTPError::BadRequest(
"User is not a member of this server".to_string(),
))?;
state
.repositories
.server