init
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user