Passer au contenu principal
Vous consultez la documentation pour développeurs
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 Gestion des données d’application.
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é 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.
ChampTypeDescription
full_namestringNom d’affichage de l’utilisateur
emailstringAdresse e-mail de l’utilisateur
rolestringSoit admin soit user
L’entité User a également les champs intégrés généraux 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.
entities/User.json
{
  "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 ou deploy.

Exemple complet

Voici un schéma User complet avec divers types de champs :
{
  "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é, utilisez la syntaxe de modèle {{user.data.*}} :
{
  "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 :
// 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();
Cet exemple utilise un client base44. Consultez Configuration du client pour les instructions de configuration.

Voir aussi

Cette page a été traduite à l’aide de l’IA. Pour les informations les plus précises et à jour, consultez la version anglaise.