Page 1 sur 1

Quelle logique pour créer un admin et un user lambda ?

Posté : 30 avr. 2022, 16:29
par mgm
Bonjour,

je me permets de vous solliciter pour avoir votre avis. Quelle logique adopteriez pour faire un projet avec une partie administrateur.
J'hésite entre créer une seul table USER qui aurait un role Admin: true ou false.
Ou créer une table Admin et une table user.

Merci la team ! :D

Re: Quelle logique pour créer un admin et un user lambda ?

Posté : 01 mai 2022, 09:23
par Faunalapoule
Je te conseil de faire une seule et même table avec un colonne rôle en VARCHAR et avec pour valeur par défaut user

Une fois que tu a fais cela, tu fait une page avec tes noms de utilisateur et des boutons pour mettre le rôle en admin ou en user.

Pour savoir si un utilisateur, par exemple Dupon_le_chaton et admin tu copie ce code
function admin(){
    if(isset($_SESSION['admin'])){
        global $db;
        $a = [
            'email'     =>  $_SESSION['admin'],
            'role'      =>  'admin'
        ];

        $sql = "SELECT * FROM admins WHERE email=:email AND role=:role";
        $req = $db->prepare($sql);
        $req->execute($a);
        $exist = $req->rowCount($sql);

        return $exist;
    }else{
        return 0;
    }
}
Il te faut au préalable un formulaire de connexio qui renvois en nom de session admin et en valeur l'email.

Et pour le code de l'utilisateur c'est la même chose, voici le code
function user(){
    if(isset($_SESSION['admin'])){
        global $db;
        $a=[
            'email' => $_SESSION['admin'],
            'role' => 'user'
        ];

        $sql = "SELECT * FROM admins WHERE email=:email AND role=:role";
        $req = $db->prepare($sql);
        $req->execute($a);
        $exist = $req->rowCount($sql);

        return $exist;
    }else{
       return 0; 
    }
}
Tu peux bien sur modifier le code !!!

Re: Quelle logique pour créer un admin et un user lambda ?

Posté : 01 mai 2022, 11:15
par Faunalapoule
Je te conseil de faire une seule et même table avec un colonne rôle en VARCHAR et avec pour valeur par défaut user

Une fois que tu a fais cela, tu fait une page avec tes noms de utilisateur et des boutons pour mettre le rôle en admin ou en user.

Pour savoir si un utilisateur, par exemple Dupon_le_chaton et admin tu copie ce code
function admin(){
    if(isset($_SESSION['admin'])){
        global $db;
        $a = [
            'email'     =>  $_SESSION['admin'],
            'role'      =>  'admin'
        ];

Oups :oops:  :oops:  :oops: ,  J'ai oublié de te dire que cela marche si c'est un autre membre !!!

        $sql = "SELECT * FROM admins WHERE email=:email AND role=:role";
        $req = $db->prepare($sql);
        $req->execute($a);
        $exist = $req->rowCount($sql);

        return $exist;
    }else{
        return 0;
    }
}
Il te faut au préalable un formulaire de connexio qui renvois en nom de session admin et en valeur l'email.

Et pour le code de l'utilisateur c'est la même chose, voici le code
function user(){
    if(isset($_SESSION['admin'])){
        global $db;
        $a=[
            'email' => $_SESSION['admin'],
            'role' => 'user'
        ];

        $sql = "SELECT * FROM admins WHERE email=:email AND role=:role";
        $req = $db->prepare($sql);
        $req->execute($a);
        $exist = $req->rowCount($sql);

        return $exist;
    }else{
       return 0; 
    }
}
Tu peux bien sur modifier le code !!!
OUpS :oops: :oops: :oops: , cela marche aussi pour un autre membre

Re: Quelle logique pour créer un admin et un user lambda ?

Posté : 03 mai 2022, 00:08
par two3d
Une table : oui
Type de colonne : TYNINT(1) (Parce qu'il prend moins de place qu'un VARCHAR)
Nom de la colonne : admin

Valeur de la colonne pour un Admin : 1
Valeur de la colonne pour un Utilisateur lambda : 0

Pour la vérification sur chaque page tu fais une requête et si la colonne "admin" est à 1, il est admin.

Re: Quelle logique pour créer un admin et un user lambda ?

Posté : 03 mai 2022, 15:55
par mgm
Je te remercie pour ta réponse claire et précise ! Très bonne journée