/[dolibarr]/dolibarr/htdocs/user.class.php
ViewVC logotype

Diff of /dolibarr/htdocs/user.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.70 by eldy, Mon Sep 26 01:10:06 2005 UTC revision 1.71 by eldy, Mon Sep 26 19:37:20 2005 UTC
# Line 483  class User Line 483  class User
483      }      }
484    
485    
486    /**      /**
487     *    \brief      Désactive un utilisateur       *      \brief      Désactive un utilisateur
488     */       *      \return     int     <0 si ko, >0 si ok
489                 */
490      function disable()      function disable()
491      {      {
492            $error=0;
493            
494          // Désactive utilisateur          // Désactive utilisateur
495          $sql = "UPDATE ".MAIN_DB_PREFIX."user";          $sql = "UPDATE ".MAIN_DB_PREFIX."user";
496          $sql.= " SET login = NULL";          $sql.= " SET login = NULL";
497          $sql.= " WHERE rowid = ".$this->id;          $sql.= " WHERE rowid = ".$this->id;
498          $result = $this->db->query($sql);          $result = $this->db->query($sql);
499    
500            if ($result)
501            {
502                // Appel des triggers
503                include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
504                $interface=new Interfaces($this->db);
505                $result=$interface->run_triggers('USER_DISABLE',$this,$user,$lang,$conf);
506                if ($result < 0) $error++;
507                // Fin appel triggers
508            }
509    
510            if ($error)
511            {
512                return -$error;
513            }
514            else
515            {
516                return 1;
517            }
518      }      }
519        
520        
521    /**      /**
522     *    \brief      Supprime complètement un utilisateur       *    \brief      Supprime complètement un utilisateur
523     */       */
           
524      function delete()      function delete()
525      {      {
526          // Supprime droits          // Supprime droits
# Line 526  class User Line 546  class User
546      }      }
547        
548    
549    /**      /**
550     *        \brief      Crée un utilisateur en base       *      \brief      Crée un utilisateur en base
551     *        \return     si erreur <0, si ok renvoie id compte créé       *      \return     int         si erreur <0, si ok renvoie id compte créé
552     */       */
553                function create()
   function create()  
554      {      {
555          global $langs;          global $langs;
556                
557            $this->db->begin();
558    
559          $sql = "SELECT login FROM ".MAIN_DB_PREFIX."user WHERE login ='".$this->login."';";          $sql = "SELECT login FROM ".MAIN_DB_PREFIX."user WHERE login ='".$this->login."';";
560          $result=$this->db->query($sql);          $resql=$this->db->query($sql);
561          if ($result)          if ($resql)
562          {          {
563              $num = $this->db->num_rows($result);              $num = $this->db->num_rows($resql);
564              $this->db->free($result);              $this->db->free($resql);
565                
566              if ($num)              if ($num)
567              {              {
568                  $this->error = $langs->trans("ErrorLoginAlreadyExists");                  $this->error = $langs->trans("ErrorLoginAlreadyExists");
# Line 549  class User Line 570  class User
570              }              }
571              else              else
572              {              {
573                  $sql = "INSERT INTO ".MAIN_DB_PREFIX."user (datec,login,email) VALUES(now(),'$this->login','$this->email');";                  $sql = "INSERT INTO ".MAIN_DB_PREFIX."user (datec,login) VALUES(now(),'$this->login');";
574                  $result=$this->db->query($sql);                  $result=$this->db->query($sql);
575        
576                  if ($result)                  if ($result)
577                  {                  {
578                      $table =  "".MAIN_DB_PREFIX."user";                      $table =  "".MAIN_DB_PREFIX."user";
579                      $this->id = $this->db->last_insert_id($table);                      $this->id = $this->db->last_insert_id($table);
580        
581                      if ($this->set_default_rights() < 0) return -4;                      // Set default rights
582                        if ($this->set_default_rights() < 0)
583                      if ($this->update() < 0) return -3;                      {
584                            $this->db->rollback();
585                      return $this->id;          
586                            $this->error=$this->db->error();
587                            return -4;
588                        }
589                        
590                        // Update minor fields
591                        if ($this->update() < 0)
592                        {
593                            $this->db->rollback();
594            
595                            $this->error=$this->db->error();
596                            return -5;
597                        }
598        
599                        // Appel des triggers
600                        include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
601                        $interface=new Interfaces($this->db);
602                        $result=$interface->run_triggers('USER_CREATE',$this,$user,$lang,$conf);
603                        if ($result < 0) $error++;
604                        // Fin appel triggers
605        
606                        if (! $error)
607                        {
608                            $this->db->commit();
609            
610                            return $this->id;
611                        }
612                        else
613                        {
614                            $this->db->rollback();
615            
616                            $this->error=$interface->error;
617                            return -3;
618                        }
619                  }                  }
620                  else                  else
621                  {                  {
622                      dolibarr_print_error($this->db);                      $this->db->rollback();
623                        $this->error=$this->db->error();
624                      return -2;                      return -2;
625                  }                  }
626              }              }
627          }          }
628          else          else
629          {          {
630              dolibarr_print_error($this->db);              $this->db->rollback();
631                $this->error=$this->db->error();
632              return -1;              return -1;
633          }          }
634      }      }
635    
636    /**  
637     * \brief     Créé en base un utilisateur depuis l'objetc contact      /**
638     * \param     contact      Objet du contact source       *      \brief      Créé en base un utilisateur depuis l'objet contact
639     *       *      \param      contact     Objet du contact source
640     */       *      \return     int         si erreur <0, si ok renvoie id compte créé
641                 */
642    function create_from_contact($contact)      function create_from_contact($contact)
643      {      {
644          global $langs;          global $langs;
645        
646            // Positionne paramètres
647            $this->nom = $contact->nom;
648            $this->prenom = $contact->prenom;
649    
650            $this->login = strtolower(substr($contact->prenom, 0, 3)) . strtolower(substr($contact->nom, 0, 3));
651            $this->admin = 0;
652    
653            $this->email = $contact->email;
654        
655            $this->db->begin();
656        
657            // Crée et positionne $this->id
658            $result=$this->create();
659                    
660        $this->nom = $contact->nom;          if ($result > 0)
661        $this->prenom = $contact->prenom;          {
662        $this->email = $contact->email;              $sql = "UPDATE ".MAIN_DB_PREFIX."user";
663                $sql.= " SET fk_socpeople=".$contact->id.", fk_societe=".$contact->societeid;
664        $this->login = strtolower(substr($contact->prenom, 0, 3)) . strtolower(substr($contact->nom, 0, 3));              $sql.= " WHERE rowid=".$this->id;
665                $resql=$this->db->query($sql);
666        $sql = "SELECT login FROM ".MAIN_DB_PREFIX."user WHERE login ='$this->login'";  
667                if ($resql)
668        if ($this->db->query($sql))              {
669          {                  $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople";
670            $num = $this->db->num_rows();                  $sql.= " SET fk_user = ".$this->id;
671            $this->db->free();                  $sql.= " WHERE idp = ".$contact->id;
672                    $resql=$this->db->query($sql);
673            if ($num)          
674              {                  if ($resql)
675                $this->error = $langs->trans("ErrorLoginAlreadyExists");                  {
676                return 0;                      $this->db->commit();
677              }                      return $this->id;
678            else                  }
679              {                              else
680                $sql = "INSERT INTO ".MAIN_DB_PREFIX."user (datec, login, fk_socpeople, fk_societe)";                  {
681                $sql .= " VALUES (now(),'$this->login',$contact->id, $contact->societeid);";                      $this->error=$this->db->error()." - $sql";
682                if ($this->db->query($sql))                      dolibarr_syslog("User::create_from_contact - 20 - ".$this->error);
683                  {  
684                    if ($this->db->affected_rows())                      $this->db->rollback();
685                      {                      return -2;
686                $table =  "".MAIN_DB_PREFIX."user";                  }                        
687                        $this->id = $this->db->last_insert_id($table);              }
688                        $this->admin = 0;              else
689                        $this->update();              {
690                                          $this->error=$this->db->error()." - $sql";
691                        $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET fk_user = $this->id WHERE idp = $contact->id";                  dolibarr_syslog("User::create_from_contact - 10 - ".$this->error);
692                        $this->db->query($sql);  
693                    $this->db->rollback();
694                        $this->set_default_rights();                  return -1;
695                }
696                        return $this->id;          }
697                      }          else
698                  }          {
699                else              // $this->error deja positionné
700                  {              dolibarr_syslog("User::create_from_contact - 0");
701                    dolibarr_print_error($this->db);  
702                  }              $this->db->rollback();
703              }              return $result;
704          }          }
705        else      
         {  
           dolibarr_print_error($this->db);  
         }  
         
706      }      }
707    
708    /**    /**
# Line 679  class User Line 745  class User
745    
746    /**    /**
747     *    \brief      Mise à jour en base d'un utilisateur     *    \brief      Mise à jour en base d'un utilisateur
748     *    \return     <0 si echec, >=0 si ok     *    \param      create      1 si update durant le create, 0 sinon
749       *    \return     int         <0 si echec, >=0 si ok
750     */     */
751    function update()    function update($create=0)
752      {      {
753          global $langs;          global $langs;
754                    
755            $error=0;
756            
757          if (!strlen($this->code)) $this->code = $this->login;          if (!strlen($this->code)) $this->code = $this->login;
758    
759          $sql = "UPDATE ".MAIN_DB_PREFIX."user SET ";          $sql = "UPDATE ".MAIN_DB_PREFIX."user SET ";
# Line 707  class User Line 776  class User
776          {          {
777              if ($this->db->affected_rows())              if ($this->db->affected_rows())
778              {              {
779                    if (! $create)
780                    {
781                        // Appel des triggers
782                        include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
783                        $interface=new Interfaces($this->db);
784                        $result=$interface->run_triggers('USER_MODIFY',$this,$user,$lang,$conf);
785                        if ($result < 0) $error++;
786                        // Fin appel triggers
787                    }
788                    
789                  return 1;                  return 1;
790              }              }
791              return 0;              return 0;

Legend:
Removed from v.1.70  
changed lines
  Added in v.1.71

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26