generic_login.anubis 2.74 KB

   
   
   
            Rationalisation de la gestion des logins et des mots de passe
   
read common.anubis   
read making_a_web_site.anubis
read generic_form.anubis
   
   
   
   
   *** (1) Connection sur site sécurisée
   
   ou formulaire de saisie du login et du mot de passe
   
   
   Le formulaire de saisie  du login et du mot de passe pour se  connecter à un site https
   se compose :
     .1. d'un éventuel message pour signaler que la paire (login,passwd) est erronée,
     .2. du formulaire proprement dit pour lequel il faut donner :
          - le titre du formulaire
          - les textes figurant devant les 2 texts input
          - le text du bouton submit
          - le nom de l'action,
          - la couleur de fond

   
   
public define HTML_Off_Form
   login_form
     (
       String     wrong_message,
       RGB        background_color,
       String     title_text,
       String     pseudo_text,
       String     passwd_text,
       String     submit_text,
       String     login_action
     ).


   
   
   *** (2) Vérification de la saisie 
   
   
public define Maybe($User)
   check_login_passwd
     (
       String -> Maybe($User)     check_pseudo,
       $User -> ByteArray         get_passwd,
       List(Web_arg)              lwa
     ).
   
   
   
   --- That's all for the public part ! --------------------------------------------------
   
   
   
   *** [1] Connection sur site sécurisée

public define HTML_Off_Form
   login_form
     (
       String     wrong_message,
       RGB        background_color,
       String     title_text,
       String     pseudo_text,
       String     passwd_text,
       String     submit_text,
       String     login_action
     ) =
    generic_form
      ("login_form",background_color,700,
        [
          title            (title_text),
          explain          (wrong_message),
          input            ("pseudo",pseudo_text,narrow,"",mandatory),
          password_input   ("passwd",passwd_text,mandatory),
          submit           (login_action,failure,submit_text,[])
        ]).
   
    
   
   *** [2] Vérification de la saisie
   
public define Maybe($User)
   check_login_passwd
     (
       String -> Maybe($User)     check_pseudo,
       $User -> ByteArray         get_passwd,
       List(Web_arg)              lwa
     ) =
   if web_arg_value(lwa,"pseudo") is 
     {
       not_found  then failure,
       found(ps)  then 
   if web_arg_value(lwa,"passwd") is 
     {
       not_found  then failure,
       found(pwd) then 
         if check_pseudo(ps) is 
           {
             failure       then failure, 
             success(user) then 
                if sha1(pwd)=get_passwd(user)
                   then success(user)
                   else failure
           }
     }}.