IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Modification du backend pour gestion utilisateur table sf_user + utilisateur


Sujet :

Symfony PHP

  1. #1
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut Modification du backend pour gestion utilisateur table sf_user + utilisateur
    Bonjour à tous,
    Je cherche le fichier que je pourrai modifier afin d'emboiter le formulaire de ma table utilisateur dans le formulaire de ma table sf_user dans ma partie backend afin de pouvoir gérer les utilisateurs.
    J'ai ma table utilisateur qui est lié à la table sf_user dans mon schéma.yml.

    Mais quel fichier utiliser ?

    Merci d'avance pour vos réponses !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu devrais trouver ce dont tu as besoin tout simplement ici :http://www.symfony-project.org/jobee...r_12_sub_class

    En gros, tu vas créer une nouvelle classe de formulaire qui va hériter de celui actuellement utilisé, et rajouter un embedded form à l'intérieur. Et ensuite, tu modifies le generator.yml pour lui dire d'utiliser la nouvelle classe de formulaire que tu viens de définir.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    De mémoire aucun module user est créé dans le backend, tu devras peux être en créer un en y mettant que le répertoire config.

    # apps/backend/modules/sf_guard_user/config/generator.yml
    config:
    form:
    class: BackendUserEmbedForm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // lib/form/doctrine/BackendUserEmbedForm.class.php
    class BackendUserEmbedForm extends JesaispluslenomdelaclasseFormduplugin
    {
     
      }
    }

  4. #4
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut
    Tout d'abord merci pour vos réponses.
    Mais je n'ai pas tout compris en fait . Le tutoriel Jobeet n'étant pas très clair dessus j'ai trouvé, et après je n'ai pas le nom du plugin pour pouvoir tester la création du module 'sf_guard_user' avec le dossier 'config'.

    J'espère avoir une suite !

    Merci d'avance pour vos réponses !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Quel est le nom de ton module dans ton backend, qui gère les utilisateurs actuellement ?
    Il est fonctionnel mais il ne propose de modifier que les champs de la table sf_guard_user c'est bien ça ?

  6. #6
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut
    Merci pour ta réponse.
    Alors j'ai les 2. Je m'explique. J'ai dans mon arborescence le module utilisateur qui affiche les informations de l'utilisateur (nom, prénom...) mais pas sfGuardUser. Je n'ai pas le module à proprement parler dans mon arborescence de sfGuardUser, mais je savais qu'en tapant dans mon url 'sf_guard_user', j'avais accès à la table 'sf_guard_user', du coup, j'ai gardé ces deux liens dans mon backend (un vers ma table utilisateur et un vers ma table sf_guard_user) et en gros je veux mixer les deux pour avoir qu'un lien (soit j'ajoute les informations de sf_guard_user dans utilisateur ou l'inverse).

    Sinon voici mon generator.yml de mon module utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    generator:
      class: sfDoctrineGenerator
      param:
        model_class:           utilisateur
        theme:                 admin
        non_verbose_templates: true
        with_show:             false
        singular:              ~
        plural:                ~
        route_prefix:          utilisateur
        with_doctrine_route:   true
        actions_base_class:    sfActions
     
        config:
          actions: ~
          fields:
          list:
            title: Gestion des utilisateurs
            display: [prenom, pseudo, email, is_super_admin, is_active]
            object_actions:
              _edit:      ~
              _delete:    ~
          filter:
            display: [nom, prenom, pseudo, email, is_super_admin, is_active]
          form:    ~
          edit:
            title: Edition de l'utilisateur "%%nom%%"
          new:
            title: Nouvel utilisateur
    Je ne sais pas où ce trouve la même chose pour les pages sf_guard_user...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Tiens en fait, voici un lien pour faire exactement ce que tu veux faire :
    http://www.symfony-project.org/blog/...ineguardplugin


  8. #8
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut
    Cool !

    C'est bien ce que je voulais ! Maintenant juste un peu de custom...
    En effet, j'ai le les champs 'username' et 'password' avant tous ce qui est 'nom', 'prénom', ... J'aurai voulu :
    1) Enlever le libelle 'Utilisateur' qui décale les champs de ma table 'utilisateur' (en gros qu'on ne voit pas qu'on à deux formulaires), il me semblait qu'il fallait faire un embedMergeForm (ici), mais j'ai une grossière erreur :
    Call to undefined method sfGuardUserAdminForm::embedMergeForm.
    2) J'aimerai pouvoir réorganiser mes champs dans un certain sens : Ne pas avoir 'Username' et 'Password' avant les informations 'nom' ou 'prénom'. En gros faire une organisation à ma sauce
    3) Pour la date de naissance, je peux seulement choisir une année de 2005 à 2015 . j'aimerais pouvoir remonter beaucoup plus loin (si une personne de 50 ans s'inscrit)
    4) Pouvoir enlever tous ce qui est permissions et groups : Je pense que ça vient du fichier generator.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    generator:
      class: sfDoctrineGenerator
      param:
        config:
          form:
            class: sfGuardUserAdminForm
            display:
              "NONE":                   [username, password, password_again, Utilisateur]
              "Permissions and groups": [is_active, is_super_admin, groups_list, permissions_list]
    J'ai tenté de supprimer la dernière ligne mais rien...


    Merci d'avance pour vos réponses !

  9. #9
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut
    J'ai réussi à modifier les permissions et groupes pour les supprimer. J'ai supprimé la ligne que je disais, mais aussi j'ai surchargé l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    generator:
      class: sfDoctrineGenerator
      param:
        config:
          list:    
            title: Gestion des utilisateurs
            #display: [username, nom, prénom, email, created_at]
            display: [username, Utilisateur, created_at]
            object_actions:
              _edit:      ~
              _delete:    ~
          filter:
            display: [username, created_at, updated_at]
     
          form:
            class: sfGuardUserAdminForm
            display:
              "NONE":                   [username, password, password_again, Utilisateur]
          edit:
            title: Edition de l'utilisateur "%%username%%"
            display: [username, password, password_again, Utilisateur]
          new:
            title: Nouvel utilisateur
            display: [username, password, password_again, Utilisateur]
    2 nouveaux problèmes se sont rajoutés aux 3 autres :
    - Si l'on regarde ma ligne commenté (avec le #), j'ai voulu ajouter dans ma liste des utilisateurs les noms et prénoms de ceux-ci mais impossible, cela me dit :
    Unknown record property / related component "nom" on "sfGuardUser"
    Ce qui est normal vu qu'ils ne sont pas contenu dans sfGiardUser, mais comment les afficher alors ?
    - Si j'insère un utilisateur dans mon backend, que j'essaie de le supprimer, j'obtiens un joli message de contrainte SQL :
    QLSTATE[HY000]: General error: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`crimovies`.`utilisateur`, CONSTRAINT `utilisateur_sf_guard_user_id_sf_guard_user_id` FOREIGN KEY (`sf_guard_user_id`) REFERENCES `sf_guard_user` (`id`))
    Comment éviter ce message si je dois supprimer un utilisateur ?

    Merci d'avance pour vos réponses !

  10. #10
    Invité
    Invité(e)
    Par défaut
    Je peux au moins répondre à la dernière question : Dans ton schema.yml, sur ton Utilisateur, dans la relation vers sfGuardUser, tu peux rajouter un
    onDelete: CASCADE

  11. #11
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut
    Ah merci, ça c'est déjà une chose de bien.

    Merci encore pour tes réponses !

  12. #12
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je pense que ce que tu cherches existe déjà.

    Regarde ce plugin qui fonctionne en complément de sfGuard : sfDoctrineApply

    C'est un peu bricolage et il est dommage qu'ils n'utilisent volontairement pas les fonctions d'email de symfony 1.4 ce qui oblige à installer zend framework.

    Mais pourquoi réinventer la roue ?

  13. #13
    Membre éclairé Avatar de blasil64
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par défaut
    Bonjour,
    Non, ce n'est pas exactement ce que je cherche, au niveau fonctionnalités, j'ai ce que je veux au niveau de mon backend. C'est juste un petit problème d'affichage :

    Ici, j'aimerai enlever ce libellé Utilisateur et pouvoir afficher les champs dans l'ordre que je désire... De plus, au niveau de l'ajout de la date de naissance, je ne peux seulement choisir qu'une année de 2005 à 2015.


    Ici, ce serait pour afficher le prénom de l'utilisateur par exemple.


    Pareil ici, afficher le titre du film et le prénom ou le pseudo de l'utilisateur...

    Merci d'avance pour votre aide !

  14. #14
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Marchera pas la premier solution.

    Tu as fait un embeded et tu est en génération automatique du formulaire.

    1) La seul solution serait de passer sur un module créé manuellement (même nom dans l'arborescence local que le template du plugin. Et tu positionne à la main, champs par champ, les zones.

    2) Même solution, tu crées, en local, un module et un template qui à le même nom que celui du plugin, il passera avant.

Discussions similaires

  1. [AC-2010] Code Pour "Gestions des tables liées"
    Par Phyl dans le forum VBA Access
    Réponses: 10
    Dernier message: 21/04/2012, 19h14
  2. Tables pour la gestion des profils d'utilisateurs
    Par NeoGeoo dans le forum Débuter
    Réponses: 7
    Dernier message: 06/11/2010, 22h09
  3. Utiliser sa propre table pour gestion utilisateur
    Par seb974 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/04/2010, 10h38
  4. [Frameworks] pour Gestion des utilisateurs...
    Par blackhorus dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/04/2006, 05h25
  5. [MySQL] Problème pour la modification d'un champ d'une table
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 09/02/2006, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo