> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Schéma utilisateur

> Étendez l'entité User intégrée avec des champs supplémentaires pour votre application.

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      Vous consultez la documentation pour développeurs
    </div>

    <div className="dev-docs-banner-text">
      Cette documentation est destinée aux développeurs travaillant avec la plateforme développeur Base44. Pour des informations sur la gestion des données de votre application via l'éditeur d'applications, consultez <a href="/Building-your-app/Managing-your-app-data">Gestion des données d'application</a>.
    </div>
  </div>
</div>

L'entité User existe dans chaque projet Base44 par défaut et stocke des informations sur les utilisateurs de votre application. Vous pouvez ajouter des champs pour stocker des données utilisateur supplémentaires, puis utiliser ces champs dans les [règles de sécurité](/developers/backend/resources/entities/security) pour contrôler l'accès aux données ou dans votre application pour personnaliser l'expérience.

## Champs intégrés

Chaque entité User inclut un ensemble de champs intégrés par défaut.

| Champ       | Type   | Description                      |
| ----------- | ------ | -------------------------------- |
| `full_name` | string | Nom d'affichage de l'utilisateur |
| `email`     | string | Adresse e-mail de l'utilisateur  |
| `role`      | string | Soit `admin` soit `user`         |

L'entité User a également les [champs intégrés généraux](/developers/backend/resources/entities/entity-schemas#built-in-fields) qui existent sur toutes les entités, tels que `id` et `created_date`.

Ces champs sont gérés par le système et ne peuvent pas être redéfinis dans votre schéma.

## Champs personnalisés

Pour ajouter des champs personnalisés, définissez un schéma User contenant uniquement vos champs supplémentaires. Essayer de redéfinir un des champs intégrés provoquera une erreur de validation.

Créez un fichier `User.json` ou `User.jsonc` dans le répertoire des entités de votre projet. Par défaut, c'est `base44/entities/`, mais vous pouvez personnaliser le chemin dans votre [configuration de projet](/developers/backend/overview/project-structure#configjsonc).

```json entities/User.json theme={null}
{
  "type": "object",
  "properties": {
    "company": { "type": "string" },
    "phone": { "type": "string" },
    "job_title": { "type": "string" },
    "bio": { 
      "type": "string",
      "maxLength": 500
    }
  },
  "required": ["company"]
}
```

Poussez ensuite vos entités vers Base44 en utilisant [`entities push`](/developers/references/cli/commands/entities-push) ou [`deploy`](/developers/references/cli/commands/deploy).

## Exemple complet

Voici un schéma User complet avec divers types de champs :

```json theme={null}
{
  "type": "object",
  "properties": {
    "company": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "job_title": {
      "type": "string",
      "maxLength": 100
    },
    "bio": {
      "type": "string",
      "maxLength": 500
    },
    "website": {
      "type": "string",
      "format": "uri"
    },
    "preferences": {
      "type": "object",
      "properties": {
        "theme": {
          "type": "string",
          "enum": ["light", "dark"],
          "default": "light"
        },
        "notifications": {
          "type": "boolean",
          "default": true
        }
      }
    }
  },
  "required": ["company"]
}
```

## Utiliser vos champs

Une fois que vous avez défini et poussé votre schéma User, vous pouvez référencer vos champs dans les règles de sécurité et y accéder dans le code de votre application.

### Dans les règles de sécurité

Vous pouvez utiliser des champs utilisateur pour contrôler l'accès à d'autres entités. Par exemple, vous pouvez restreindre les utilisateurs à ne voir que les enregistrements qui appartiennent à leur entreprise.

Pour référencer des champs utilisateur dans les [règles de sécurité](/developers/backend/resources/entities/security), utilisez la syntaxe de modèle `{{user.data.*}}` :

```json theme={null}
{
  "rls": {
    "read": {"data.company": "{{user.data.company}}"},
    "update": {"data.company": "{{user.data.company}}"}
  }
}
```

Cette règle garantit que les utilisateurs ne peuvent lire et mettre à jour que les enregistrements dont le champ `company` correspond au leur.

### Dans le code

Accédez aux champs utilisateur via le [SDK](/developers/references/sdk/getting-started/overview) :

```typescript theme={null}
// Get current user's fields
const currentUser = await base44.auth.me();
console.log(currentUser.company); // "Acme Inc"

// Update current user's fields
await base44.auth.updateMe({
  phone: "+1-555-0123",
  job_title: "Senior Developer"
});

// List all users with service role (backend functions only)
const allUsers = await base44.asServiceRole.entities.User.list();
```

<Info>
  Cet exemple utilise un client `base44`. Consultez [Configuration du client](/developers/references/sdk/getting-started/client) pour les instructions de configuration.
</Info>

## Voir aussi

* [Présentation des entités](/developers/backend/resources/entities/overview) : apprenez la configuration du schéma de base de données
* [Schémas d'entités](/developers/backend/resources/entities/entity-schemas) : définissez la structure de votre entité
* [Sécurité](/developers/backend/resources/entities/security) : configurer les règles de sécurité au niveau ligne
* [Structure du projet](/developers/backend/overview/project-structure) : comment les schémas d'entités s'intègrent dans votre projet

<Note>Cette page a été traduite à l'aide de l'IA. Pour les informations les plus précises et à jour, consultez la [version anglaise](/). </Note>
