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

MkFramework Discussion :

Tous les modules authentifiés sauf un


Sujet :

MkFramework

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Tous les modules authentifiés sauf un
    Bonjour Imikado,

    Une petite question. Il est possible de demander à ce qu'un module soit soumis à authentification en ajoutant l'appel _root::getAuth()->enable(); dans la fonction before, mais est-il possible facilement de faire l'inverse, car dans mon cas ce sont tous les modules (30) qui sont sous authentification sauf 1, et je n'ai pas le courage de modifier les 30 ...

    En tout cas je suis toujours autant ravi d'utiliser MKF !!

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Merci,
    je pense qu'il y a une solution "bricolage" qui peut vous aider, c'est une chose que je cherche a mettre en place pour une prochaine version du framework
    En attendant vous avez une solution en modifiant public/index.php

    Vous avez ceci
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $oRoot->addConf('../conf/mode.ini.php');
    $oRoot->addConf('../conf/connexion.ini.php');
    $oRoot->addConf('../conf/site.ini.php');
    $oRoot->addRequest($_GET);
    $oRoot->addRequest($_POST);
    $oRoot->run();

    L'idée c'est de lui dire de forcer la variable auth.enable à la volée pour desactiver sur votre module

    Créer un fichier /conf/authdisable.ini.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $oRoot->addConf('../conf/mode.ini.php');
    $oRoot->addConf('../conf/connexion.ini.php');
    $oRoot->addConf('../conf/site.ini.php');
     
    if(_root::getModule()=='votreModuleException'){
      $oRoot->addConf('../conf/authdisable.ini.php');
    }
     
    $oRoot->addRequest($_GET);
    $oRoot->addRequest($_POST);
    $oRoot->run();
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Vous voyez l'idée ?

    pour la transparence, là je suis sur un autre projet (refacto des modules de génération + traduction du builder), mais je voudrais permettre d'appeler pour un lot de module une méthode commune, notamment pour ce genre de cas

    Une chose que je mettrais bientot sur le site pour la transparence c'est un kanban, ainsi on verra sur quel projet je travail et ceux qui arrive
    Cela permettra d'avoir une bonne vision sur la roadmap du projet, et je vous l'annonce de suite, il va y avoir des trucs bien sympa qui devrait encore plus enrichir le framework tout en restant compatible avec les projets existants
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Oui, merci beaucoup, je vais tester çà Je vous tiens au courant.

  5. #5
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    oki, pensez à passer en "résolu" si c'est ok
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    J'ai ce message : Fatal error: Call to a member function getModule() on a non-object in html/lib/framework/class_root.php on line 494.

    Si je retire la condition if(_root::getModule() == 'cometh'), ça fonctionne bien. Je pense, sans certitude, que l'on attaque la condition avant d'atteindre le module.

  7. #7
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Deux choses: mettre d'abord le chargement du tableau GET (pour avoir les modules), puis l'appel de chargement du tableau des requetes

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $oRoot->addConf('../conf/mode.ini.php');
    $oRoot->addConf('../conf/connexion.ini.php');
    $oRoot->addConf('../conf/site.ini.php');
     
    $oRoot->addRequest($_GET);
     
    $oRoot->loadRequest();
    if(_root::getModule()=='votreModuleException'){
      $oRoot->addConf('../conf/authdisable.ini.php');
    }
     
    $oRoot->addRequest($_POST);
    $oRoot->run();
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    J'ai un message similaire : Fatal error: Call to a member function getModule() on a non-object in html/public/index.php on line 47 , hormis que cette fois il le detecte sur la page public/index.php et non sur la class_root.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Oups, toutes mes excuses, je n'avais pas fait le loadRequest.

  10. #10
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    oui c'est un peu particulier ce que l'on fait ici, bientot il y aura la possibilité de coder un sorte de before des before

    Ainsi on pourra mettre une "centralisation" de certain morceau de code, notamment comme ici
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Malheuresement toujours pas
    Il demande l'authentification.

    La condition est toujours false.

    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
    $oRoot->addConf('../conf/mode.ini.php');
    $oRoot->addConf('../conf/connexion.ini.php');
    $oRoot->addConf('../conf/site.ini.php');
     
    $oRoot->addRequest($_GET);
    $oRoot->loadRequest();
     
    var_dump(_root::getModule());
    if(_root::getModule() == 'cometh'){
    	$oRoot->addConf('../conf/authdisable.ini.php');
    }
     
    $oRoot->addRequest($_POST);
    die;
    $oRoot->run();
    Le _root::getModule() reste désespérement à NULL.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Après, ce n'est pas grave Imikado, ma question initiale était de savoir si il y avait la fonction inverse de _root::getAuth()->enable(); pour laquelle je serais passé à coté
    Je ne veux pas monopoliser du temps, surtout si il est prévu quelque chose ultérieurement.

    MKF est déjà très bien comme ça

  13. #13
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Non pas actuellement, mais c'est dans les cartons

    Ok on va faire plus simple et efficace

    Code php : 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
     
     
    $oRoot->addConf('../conf/mode.ini.php');
    $oRoot->addConf('../conf/connexion.ini.php');
    $oRoot->addConf('../conf/site.ini.php');
     
    if(isset($_GET[':nav'])) {
        //si pas d'action remplie
        if(!preg_match('/::/', $_GET[':nav'])){
            $_GET[':nav'].='::index';
        }
     
        //sinon on splitte pour identifier le module
        list($sModule,$sAction)=explode('::',$_GET[':nav']);
         if($sModule=='votreModuleException'){
          $oRoot->addConf('../conf/authdisable.ini.php');
        }
    }
     
     $oRoot->addRequest($_GET);
    $oRoot->addRequest($_POST);
    $oRoot->run();
    Et juste pour aider la promo du framework, un topic est ouvert sur le choix de son framework et pouquoi : http://www.developpez.net/forums/d15...2015-pourquoi/
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  14. #14
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Bonjour à tous,

    Je reviens au premier message:
    Il est possible de demander à ce qu'un module soit soumis à authentification en ajoutant l'appel _root::getAuth()->enable(); dans la fonction before,
    Eclairez moi un peu: il s'agit de l'authentification proposée par le module auth de MKF nespa!?
    Comment faire alors pour interdir l'accès d'un module depuis l'url? J'ai un module 'comptes' dans lequel je demande une authentification (bidouillée par moi même) avant d'accéder aux autres actions. Comment forcer l'appel de la page de connexion( _connexion) lorsque l'url contient une action quelconque de ce module?

  15. #15
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    L'authentification se gère de deux manière sur le framework (avec le module généré par le builder)

    soit: on authentifie TOUT le site, et l'on renvoi vers un module particulier dès que l'on est pas autorisé
    soit on authentifie CHACUN des modules un à un en ajoutant _root::getAuth()->enable(); dans la methode before
    soit : cette solution , on authentifie TOUT le site SAUF certains modules que l'on renseigne ici

    Plus d'infos sur les deux premiers points: http://mkframework.com/faq.html#authenabled
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  16. #16
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    L'authentification se gère de deux manière sur le framework (avec le module généré par le builder)
    Justement je n'utilise pas le module authentification généré par le builder, j'ai plutôt un formulaire dans le layout et c'est à travers lui que je vérifie les informations de connexion dans ma base afin de permettre l'accès au module 'comptes'.
    Faut-il que j'utilise le module authentification du builder?
    Dans conf/site.ini.php j'ai ceci:
    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
     
    [auth]
    ;note : >= php5.2 dans le php.ini 
    session.use_cookies = 1
    session.use_only_cookies = 1
    session.cookie_httponly=1
    session.cookie_secure=0
    session.cookie_domain=
    session.cookie_path=
    session.cookie_lifetime=
    enabled=0
    class=plugin_auth
    module=comptes::connexion
    ;timeout d'inactivite (entre 2 pages), temps en secondes
    session.timeout.enabled=1
    session.timeout.lifetime=1800
    Mais rien.

  17. #17
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Ce serait plus "simple" pour vous d'utiliser la gestion authentification par le framework en effet

    Mais si vous voulez "migrer" plus facilement, vous pouvez au moment ou vous authentifier l'utilisateur appeler:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _root::getAuth()->checkLoginPass($tAccount,$sLogin,$sPass);

    L'idée c'est de stoquer: dans $tAccount en clé le login/ valeur $tAccount[$sLogin][$sPass] = $oVotreObjetUser
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  18. #18
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Je vois ce que tu vous voulez dire.
    Pour une ancienne application de test j'ai utilisé l'authentification avec inscription du builder et j'avais mis cette authentification sur le site en entier, c'était parfait(merci au passage).
    Pour le cas actuel je ne voulais pas une page entièrement dédié à la connexion, voilà pourquoi j'ai mis le formulaire dans le layout afin qu'il soit présent partout sur le site. Ensuite je me suis inspirée de la fonction 'checkLoginPass()' pour vérifier les identifiants. Est-ce que si je décide d'utiliser le module authentification du builder, j'aurai la possibilité de paramétrer en sorte qu'il utilise le formulaire présent dans mon layout?

  19. #19
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Dans l'état actuel, je vous conseille "juste" d'utiliser la methode indiqué qui fait deux choses:
    1. check le login/pass
    2. enregistre en session le user connecté
    3. active l'authentification


    Parcontre , la question se pose sur ou redirigé si la personne n'est pas connecté, ce qui peut poser soucis ici, il faudrait ici non pas activer "auth.enabled" à 1 dans le fichier de configuration mais plutot ajouter dans la méthode before _root::getAuth()->enable() pour qu'uniquement sur ces modules on verifie cette authentification
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  20. #20
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    ok, je teste

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA-E]Exporter / importer tous les modules et frm d'un projet
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 6
    Dernier message: 16/03/2013, 18h37
  2. Comment fermer tous les modules ouverts
    Par chim33 dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/02/2009, 14h11
  3. Supprimer tous les modules (d'un fichier donné)
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/06/2007, 12h20
  4. [VBA]Exporter / importer tous les modules et frm d'un projet
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/02/2007, 16h31
  5. Constante commune à tous les modules du projet
    Par Mors_Ubyte dans le forum Access
    Réponses: 1
    Dernier message: 19/07/2006, 14h48

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