
# Champs utilisateur et audit

Quatre types de champs référencent des utilisateurs issus du système d'authentification. Trois sont des champs d'audit auto-renseignés qui suivent qui a créé, mis à jour ou supprimé un enregistrement ; l'un est une référence utilisateur éditable. Tous nécessitent que `auth` soit configuré et partagent les [propriétés de base des champs](/fr/docs/tables-overview#proprietes-de-base-des-champs).

| Type         | Comportement                                                                                        |
| ------------ | --------------------------------------------------------------------------------------------------- |
| `user`       | Référence éditable vers un utilisateur. Sélection unique ou multiple.                               |
| `created-by` | Défini automatiquement sur l'utilisateur ayant créé l'enregistrement. En lecture seule.             |
| `updated-by` | Défini automatiquement sur le dernier utilisateur ayant modifié l'enregistrement. En lecture seule. |
| `deleted-by` | Défini automatiquement sur l'utilisateur ayant effectué la suppression douce. NULL lorsque actif.   |

## `user`

Une référence éditable vers un ou plusieurs utilisateurs (par ex. un assigné).

| Propriété       | Description                                                                      |
| --------------- | -------------------------------------------------------------------------------- |
| `allowMultiple` | Booléen. Lorsqu'il vaut `true`, autorise la sélection de plusieurs utilisateurs. |

```yaml
- { id: 1, name: assigned_to, type: user, required: true, allowMultiple: false }
```

## Champs d'audit système

`created-by`, `updated-by` et `deleted-by` sont **gérés par le système** — leurs valeurs sont définies automatiquement et ne peuvent pas être éditées manuellement. Ils stockent une référence à un identifiant d'utilisateur et ne prennent aucune propriété spécifique au type au-delà des propriétés de base des champs (souvent `indexed: true`).

| Type         | Comportement                                                                                                                                                   |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `created-by` | Capture l'utilisateur ayant créé l'enregistrement. En lecture seule.                                                                                           |
| `updated-by` | Capture le dernier utilisateur ayant modifié l'enregistrement. En lecture seule.                                                                               |
| `deleted-by` | Capture l'utilisateur ayant effectué la suppression douce de l'enregistrement. `NULL` lorsque l'enregistrement est actif ou supprimé par un processus système. |

```yaml
fields:
  - { id: 2, name: created_by, type: created-by, indexed: true }
  - { id: 3, name: updated_by, type: updated-by, indexed: true }
  - { id: 4, name: deleted_by, type: deleted-by, indexed: true }
```

:::callout
**Authentification requise.** Tous les champs utilisateur et audit résolvent les références d'identifiant d'utilisateur via le système d'authentification, donc `auth` doit être configuré. Associez `deleted-by` à l'horodatage [`deleted-at`](/fr/docs/datetime-fields) pour une piste d'audit complète de la suppression douce (qui a supprimé, et quand).
:::
