linea21-core
[ class tree: linea21-core ] [ index: linea21-core ] [ all elements ]

Source for file class.user.php

Documentation is available at class.user.php

  1. <?php
  2. /**
  3.  * @package linea21.core
  4.  * @subpackage user
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  User Management
  10.  */
  11.  
  12. class user {
  13.   /* @param
  14.    * */
  15.   var $TDB_USER = T_USER// nom de la table.
  16.   var $URI_INPUT = "library/userfiles/users/avatars/"// dossier racine de stockage des photos
  17.   var $NB_USERS = 30// affichage par défaut du nombre d'utilisateurs
  18.   var $UPLOAD_MAX_MO = 20480// taille maximale d'upload des avatars en octets
  19.   var $ID;
  20.   var $LOGIN;
  21.   var $PASSWORD;
  22.   var $COMMUNITY = USER_COMMUNITY;
  23.   var $CATEGORY;
  24.   var $RIGHT;
  25.   var $PROFILE;
  26.   var $DATE_CREA;
  27.   var $VALIDITY;
  28.   var $LAST_MODIFY;
  29.  
  30.   var $R_ID;
  31.   var $R_DASHBOARD;
  32.   var $R_WORKSHOP;
  33.   var $R_PROJECT;
  34.   var $R_PUBLICATION;
  35.   var $R_NEWS;
  36.   var $R_YELLOWPAGES;
  37.   var $R_THEME;
  38.   var $R_SCALE;
  39.   var $R_LEVEL;
  40.  
  41.   var $P_ID;
  42.   var $P_EMAIL;
  43.  
  44.   var $P_FIRSTNAME;
  45.   var $P_LASTNAME;
  46.   var $P_CITY;
  47.   var $P_BIRTHDATE;
  48.   var $P_LEISURES;
  49.   var $P_JOB;
  50.   var $P_AVATAR;
  51.   var $P_QUOTATION;
  52.   var $P_SIGNATURE;
  53.  
  54.   protected $dispatcher = null;
  55.  
  56.   public function __construct()
  57.   {
  58.     $this->dispatcher = $GLOBALS['dispatcher'];
  59.   }
  60.  
  61.   public function __call($method$arguments)
  62.   {
  63.     $event $this->dispatcher->notifyUntil(new sfEvent($this'user.extensible_function'array(
  64.       'method'    => $method,
  65.       'arguments' => $arguments
  66.     )));
  67.     if (!$event->isProcessed())
  68.     {
  69.       throw new Exception(sprintf('Call to undefined method %s::%s.'get_class($this)$method));
  70.     }
  71.  
  72.     return $event->getReturnValue();
  73.   }
  74.  
  75.   /**
  76.    * user::CheckDataIntegrity()
  77.    * Vérification intégrité des données
  78.    *
  79.    * @access public
  80.    * @param array $table : contient les composants d'un user
  81.    * @param object $sql_object 
  82.    * @return boolean si vrai renvoie true sinon message d'erreurs (string)
  83.    */
  84.   function CheckDataIntegrity($table$sql_object null)
  85.   {
  86.     if (isset($sql_object)) {
  87.       $result $this->_checkLoginValidity($table[0]$sql_object);
  88.       if (is_string($result)) return $result;
  89.     }
  90.     $result $this->_checkEmailValidity($table[1]);
  91.     if (is_string($result)) return $result;
  92.     return true;
  93.   }
  94.  
  95.   /**
  96.    * user::_checkLoginValidity()
  97.    * validation d'un login
  98.    *
  99.    * @access private
  100.    * @param string $login : login rentré par l'utilisateur
  101.    * @param object $sql_object 
  102.    * @return bool $result
  103.    *  si valide true sinon message d'erreur (string)
  104.    */
  105.   function _checkLoginValidity($login$sql_object)
  106.   {
  107.     $login trim($login);
  108.     if (!preg_match('|^[a-zA-Z0-9]+$|'$login)) return _t('user','login_prohibited');
  109.     if (strlen($login5return _t('user','login_tooshort');
  110.     if (strlen($login20_t('user','login_toolong');
  111.     $q "SELECT user_id FROM " $this->TDB_USER . " WHERE lower(user_login)= '" strtolower($login"' AND user_validity='Y';";
  112.  
  113.     $result $sql_object->DBSelect($q);
  114.  
  115.     if ($result != 0return _t('user','login_used');
  116.  
  117.     return true;
  118.   }
  119.  
  120.   /**
  121.    * user::checkPasswordValidity()
  122.    * validation d'un password
  123.    *
  124.    * @access publi
  125.    * @param string $password password rentre par l'utilisateur
  126.    * @param string $pass2 (option)
  127.    * @return bool si valide true sinon message d'erreur (string)
  128.    */
  129.   function checkPasswordValidity($password$pass2 = -1)
  130.   {
  131.     if (strlen($password5return _t('user','pass_tooshort');
  132.     if (strlen($password15return _t('user','pass_toolong');
  133.     if ($pass2 != -&& $password != $pass2return _t('user','pass_not_same');
  134.  
  135.     return true;
  136.   }
  137.  
  138.   /**
  139.    * user::_checkEmailValidity()
  140.    * validation d'un email
  141.    *
  142.    * @access private
  143.    * @param string $email email rentre par l'utilisateur
  144.    * @return string $result
  145.    *  return 1 si valide sinon message d'erreur (string)
  146.    */
  147.   function _checkEmailValidity($email)
  148.   {
  149.  
  150.     $is_valid validEmail($email);
  151.  
  152.     if(!$is_valid{
  153.       return _t('user','invalid_mail'" :'" $email "'";
  154.     else {
  155.       return true;
  156.     }
  157.  
  158.   }
  159.  
  160.   /**
  161.    * user::_setUserCategory()
  162.    * determine automatique la categorie d'un utilisateur en fonction de ses droits
  163.    * et renseigne l'objet
  164.    *
  165.    * @access private
  166.    * @param array $table_right tableau des droits de l'utilisateur
  167.    * @return bool $result
  168.    */
  169.   function _setUserCategory($table_right)
  170.   {
  171.     if (isset($table_right['category_user']&& $table_right['category_user'== 'A'$this->CATEGORY = 1;
  172.     else {
  173.       if(in_array('A'array_values($table_right))) $this->CATEGORY = 1;
  174.       elseif ($table_right['dashboard'== 'O' || $table_right['publication'== 'O' || $table_right['news'== 'O' || $table_right['workshop'== 'O'$this->CATEGORY = 2;
  175.       else $this->CATEGORY = 3;
  176.     }
  177.  
  178.     return true;
  179.   }
  180.  
  181.   /**
  182.    * user::_AddProfile()
  183.    * Ajout d'un profil
  184.    *
  185.    * @access private
  186.    * @param object $sql_object 
  187.    * @return integer $last_id
  188.    */
  189.   function _AddProfile($sql_object)
  190.   {
  191.     $q "INSERT INTO " T_PROFILE " (profile_firstname, profile_lastname, profile_email, profile_email_display, profile_city, profile_birthdate, profile_leisures, profile_job, profile_avatar, profile_quotation, profile_signature, profile_date_crea) VALUES ('" $this->P_FIRSTNAME . "', '" $this->P_LASTNAME . "', '" $this->P_EMAIL . "', '" $this->P_EMAIL_DISPLAY . "','', '0001-01-01', '', '', '', '', '', NOW());";
  192.     $last_id $sql_object->DBInsert ($q1);
  193.     return $last_id;
  194.   }
  195.  
  196.   /**
  197.    * user::_AddRight()
  198.    * stockage des droits d' un utilisateur BDD
  199.    *
  200.    * @access private
  201.    * @param array $table_right contient les droits
  202.    * @param object $sql_object 
  203.    * @return integer $last_id
  204.    */
  205.   function _AddRight($table_right$sql_object)
  206.   {
  207.     $this->R_DASHBOARD = $table_right['dashboard'];
  208.     $this->R_WORKSHOP = $table_right['workshop'];
  209.     $this->R_PROJECT = $table_right['project'];
  210.     $this->R_PUBLICATION = $table_right['publication'];
  211.     $this->R_NEWS = $table_right['news'];
  212.     $this->R_YELLOWPAGES = $table_right['yellowpages'];
  213.     $this->R_THEME = $table_right['theme'];
  214.     $this->R_SCALE = $table_right['scale'];
  215.     $this->R_LEVEL = $table_right['level'];
  216.     $this->R_CATEGORY_USER = $table_right['category_user'];
  217.     $q "INSERT INTO " T_RIGHT " (rights_dashboard, rights_workshop, rights_project, rights_publication, rights_news, rights_yellowpages, rights_theme, rights_scale, rights_level, rights_category_user, rights_date_crea)VALUES ('" $this->R_DASHBOARD . "', '" $this->R_WORKSHOP . "', '" $this->R_PROJECT . "', '" $this->R_PUBLICATION . "', '" $this->R_NEWS . "', '" $this->R_YELLOWPAGES . "', '" $this->R_THEME . "', '" $this->R_SCALE . "', '" $this->R_LEVEL . "', '" $this->R_CATEGORY_USER . "', NOW());";
  218.     $last_id $sql_object->DBInsert ($q1);
  219.     return $last_id;
  220.   }
  221.  
  222.   /**
  223.    * user::GetUserWorkshops()
  224.    * Ajout d'un utilisateur à un ou plusieurs workshops
  225.    *
  226.    * @access public
  227.    * @param int $user_id identifiant du workshop
  228.    * @param array $workgroups workgroups ID
  229.    * @param string $user_right droit confié a l'utilisateur sur le workshop
  230.    * @param object $sql_object 
  231.    * @return integer $last_id
  232.    */
  233.   function GetUserWorkshops($user_id$sql_object)
  234.   {
  235.     if (is_numeric($user_id)) {
  236.       $this->ID = $user_id;
  237.     else return false;
  238.  
  239.     $q "SELECT jwu_workshop_id, workshop_denomination, jwu_user_right FROM ".J_WORK_USERS."
  240.               LEFT OUTER JOIN " T_WORK " ON jwu_workshop_id=workshop_id
  241.               WHERE jwu_user_id=".$this->ID.";";
  242.     $r $sql_object->DBSelect ($q);
  243.  
  244.     return $r;
  245.   }
  246.   
  247.   /**
  248.   * user::changeWorkshopsNotification()
  249.   * Change workshops notification for a given user
  250.   *
  251.   * @access public
  252.   * @param object $sql_object 
  253.   * @return integer $last_id
  254.   */
  255.   function changeWorkshopsNotification($user_id$exceptions$sql_object)
  256.   {
  257.   
  258.       $q "DELETE FROM " T_WORK_NOTIFY " WHERE user_id=" $user_id";";
  259.       $r $sql_object->DBQuery ($q);
  260.       
  261.       foreach($exceptions as $el{
  262.         list($type$workgroup)explode('-'$el);
  263.         $q "INSERT INTO " T_WORK_NOTIFY " (user_id, workshop_id, type) VALUES(".$user_id.", ".$workgroup.", '".$type."');";
  264.         $r $sql_object->DBInsert ($q);
  265.       }
  266.   
  267.       return $r;
  268.   }
  269.  
  270.   /**
  271.    * user::DeleteWorkshops()
  272.    * Remove all workshops for a given user
  273.    *
  274.    * @access public
  275.    * @param object $sql_object 
  276.    * @return integer $last_id
  277.    */
  278.   function DeleteWorkshops($user_id$user_right$sql_object)
  279.   {
  280.     if (is_numeric($user_id)) {
  281.       $this->ID = $user_id;
  282.     else return false;
  283.  
  284.     $q "DELETE FROM " J_WORK_USERS " WHERE jwu_user_id=" $this->ID . " AND jwu_user_right='".$user_right."';";
  285.     $r $sql_object->DBQuery ($q);
  286.  
  287.     return $r;
  288.   }
  289.  
  290.   /**
  291.    * user::AddWorkshops()
  292.    * Ajout d'un utilisateur à un ou plusieurs workshops
  293.    *
  294.    * @access public
  295.    * @param int $user_id identifiant du workshop
  296.    * @param array $workgroups workgroups ID
  297.    * @param string $user_right droit confié a l'utilisateur sur le workshop
  298.    * @param object $sql_object 
  299.    * @return integer $last_id
  300.    */
  301.   function AddWorkshops($user_id$workgroups$user_right $sql_object)
  302.   {
  303.     if (is_numeric($user_id)) {
  304.       $this->ID = $user_id;
  305.     else return false;
  306.  
  307.     if(count($workgroups)==0return true;
  308.  
  309.     for ($i 0;$i count($workgroups);$i++{
  310.  
  311.       // check if user already belong to the group
  312.       $q "SELECT COUNT(jwu_id) AS nb FROM " J_WORK_USERS " WHERE jwu_user_id=" $this->ID . " AND jwu_workshop_id=" $workgroups[$i";";
  313.       $data $sql_object->DBSelect($q'OBJECT');
  314.  
  315.       if ($data[0]->nb != 1{
  316.         $q "INSERT INTO " J_WORK_USERS " (jwu_workshop_id, jwu_user_id, jwu_user_right) VALUES(" $workgroups[$i", " $this->ID . ",'" $user_right "');";
  317.         $last_id $sql_object->DBInsert ($q1);
  318.       }
  319.       
  320.     }
  321.  
  322.     return true;
  323.   }
  324.  
  325.   /**
  326.    * user::ModifiyWorkshops()
  327.    * Update workgroups for a given user
  328.    *
  329.    * @access public
  330.    * @param int $user_id identifiant du workshop
  331.    * @param array $workgroups workgroups to add
  332.    * @param string $user_right droit confié a l'utilisateur sur le workshop
  333.    * @param object $sql_object 
  334.    * @return integer $r
  335.    */
  336.   function ModifiyWorkshops($user_id$workgroups$user_right $sql_object)
  337.   {
  338.     if (is_numeric($user_id)) {
  339.       $this->ID = $user_id;
  340.     else return false;
  341.  
  342.     if($this->DeleteWorkshops($this->ID$user_right$sql_object)) {
  343.       $r $this->AddWorkshops($this->ID$workgroups$user_right$sql_object);
  344.     }
  345.  
  346.     return $r;
  347.   }
  348.  
  349.   /**
  350.    * user::generateNewPasskey()
  351.    * creation aleatoire d'un passkey
  352.    *
  353.    * @access public
  354.    * @param string $user_id 
  355.    * @param object $sql_object 
  356.    * @return string $password
  357.    */
  358.   function generateNewPasskey($user_id$sql_object)
  359.   {
  360.     $this->PASSKEY $this->GetNewPassword(30);
  361.     $q "UPDATE " $this->TDB_USER . " SET user_forget_passkey='" $this->PASSKEY "' WHERE user_id='" $user_id "';";
  362.  
  363.     $r $sql_object->DBQuery ($q);
  364.     if($rreturn $this->PASSKEY;
  365.     else return false;
  366.   }
  367.  
  368.   /**
  369.    * user::resetPasskey()
  370.    * creation aleatoire d'un passkey
  371.    *
  372.    * @access public
  373.    * @param string $user_id 
  374.    * @param object $sql_object 
  375.    * @return string $password
  376.    */
  377.   function resetPasskey($user_id$sql_object)
  378.   {
  379.     $q "UPDATE " $this->TDB_USER . " SET user_forget_passkey='' WHERE user_id='" $user_id "';";
  380.  
  381.     $r $sql_object->DBQuery ($q);
  382.     return $r;
  383.   }
  384.  
  385.   /**
  386.    * user::GetNewPassword()
  387.    * creation aleatoire d'un password
  388.    *
  389.    * @access public
  390.    * @param int $length taille du password
  391.    * @return string $password
  392.    */
  393.   function GetNewPassword($length PASSWD_LENGTH)
  394.   {
  395.     $str 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  396.     $password '';
  397.     for ($i 0$i $length$i++{
  398.       $password .= substr($strrand(0strlen($str1)1);
  399.     }
  400.     return $password;
  401.   }
  402.  
  403.   /**
  404.    * user::InitUserRight()
  405.    * formatage du tableau de droit suivant profil prédeterminé
  406.    *
  407.    * @access public
  408.    * @param string $type niveau utilisateur : SIMPLE_USER ou ADMIN_USER
  409.    * @return array $table_right : tableau des droits de l'utilisateur
  410.    */
  411.   function InitUserRight($type 'SIMPLE_USER')
  412.   {
  413.     $table_user array ("dashboard" => 'U'"workshop" => 'U'"publication" => 'U'"project" => 'U',
  414.             "news" => 'U'"yellowpages" => 'U'"theme" => 'U',
  415.             "scale" => 'U'"level" => 'U'"category_user" => 'U');
  416.  
  417.     switch ($type{
  418.       case 'SIMPLE_USER':
  419.         $table_right $table_user;
  420.         break;
  421.       case 'ADMIN_USER':
  422.         $table_right array ("dashboard" => 'A'"workshop" => 'A'"publication" => 'A',
  423.                     "project" => 'A'"news" => 'A'"yellowpages" => 'A',
  424.                     "theme" => 'A'"scale" => 'A'"level" => 'A',
  425.                     "category_user" => 'A');
  426.         break;
  427.       default:
  428.         $table_right $table_user;
  429.         break;
  430.     }
  431.  
  432.     return $table_right;
  433.   }
  434.  
  435.  
  436.   /**
  437.    * user::UpdateUserPassword()
  438.    * changement de password (mise à jour) dans la bdd
  439.    *
  440.    * @access public
  441.    * @param int $ID identifiant utilisateur
  442.    * @param string $pass nouveau password non crypté
  443.    * @param object $sql_object 
  444.    * @return bool $result
  445.    */
  446.   function UpdateUserPassword($ID$pass$sql_object)
  447.   {
  448.     if (is_numeric($ID)) {
  449.       $this->ID = $ID;
  450.     else exit;
  451.     $this->PASSWORD = crypt($passSALT_CRYPT);
  452.     $q "UPDATE " $this->TDB_USER . " SET user_password='" $this->PASSWORD . "' WHERE user_id='" $this->ID . "';";
  453.     $result $sql_object->DBQuery ($q);
  454.  
  455.     return $result;
  456.   }
  457.  
  458.   /**
  459.    * user::AddUser()
  460.    * Ajout d'un utilisateur
  461.    *
  462.    * @access public
  463.    * @param array $table_user contient les composants de l'utilisateur
  464.    * @param array $table_right contient les droits attribués au nouvel utilisateur
  465.    * @param object $sql_object 
  466.    * @return integer $last_id
  467.    *  renvoie un message d'erreur ou un numerique id de l'insertion
  468.    */
  469.   function AddUser($table_user$table_right$sql_object)
  470.   {
  471.     $table_user=$sql_object->DBescape($table_user);
  472.  
  473.     $this->LOGIN = strip_input(trim($table_user[0]));
  474.     $this->P_EMAIL = strtolower($table_user[1]);
  475.     $this->P_EMAIL_DISPLAY = $table_user[2];
  476.     $this->P_FIRSTNAME = strip_input(trim($table_user[3]));
  477.     $this->P_LASTNAME = strip_input(trim($table_user[4]));
  478.     $this->PASSWORD = crypt($table_user[5]SALT_CRYPT);
  479.     $this->_SetUserCategory($table_right);
  480.     $this->PROFILE = $this->_AddProfile($sql_object);
  481.     $this->RIGHT = $this->_AddRight($table_right$sql_object);
  482.     $q "INSERT INTO " $this->TDB_USER . " (user_login, user_password, user_community, user_category, user_rights, user_profile, user_date_crea) VALUES ('" $this->LOGIN . "', '" $this->PASSWORD . "', " $this->COMMUNITY . ", " $this->CATEGORY . ", " $this->RIGHT . ", " $this->PROFILE . ", NOW());";
  483.  
  484.     $res $sql_object->DBInsert ($q1);
  485.  
  486.     if($res && (defined('NEWSLETTER_AUTO_SUB'&& NEWSLETTER_AUTO_SUB == 1)) {
  487.       include_once('../class/class.newsletter.php');
  488.       $newsletter new newsletter;
  489.       $newsletter->AddEmail($this->P_EMAIL$sql_object);
  490.     }
  491.  
  492.     return $res;
  493.   }
  494.  
  495.   /**
  496.    * user::DeleteUser()
  497.    * suppression d'un utilisateur
  498.    *
  499.    * @access public
  500.    * @param int $ID identifiant de l'utilisateur
  501.    * @param object $sql_object 
  502.    * @return bool $result
  503.    */
  504.   function DeleteUser($ID$sql_object)
  505.   {
  506.     if (is_numeric($ID)) {
  507.       $this->ID = $ID;
  508.     else return false;
  509.     $q "UPDATE " $this->TDB_USER . " SET user_validity='N' WHERE user_id=" $this->ID . ";";
  510.     $result $sql_object->DBQuery ($q);
  511.     $q "DELETE FROM " J_WORK_USERS " WHERE jwu_user_id=" $this->ID . ";";
  512.     $res $sql_object->DBQuery ($q);
  513.  
  514.     return $res;
  515.   }
  516.  
  517.   /**
  518.    * user::ModifyProfile()
  519.    * modification d'un profil utilisateur
  520.    *
  521.    * @access public
  522.    * @param int $id identifiant d'un profil
  523.    * @param object $sql_object 
  524.    * @param array $table_profile contient les composants d'un profil
  525.    * @return bool $result
  526.    */
  527.   function ModifyProfile($ID$table_profile$sql_object)
  528.   {
  529.     $table_profile=$sql_object->DBescape($table_profile);
  530.  
  531.     if (is_numeric($ID)) {
  532.       $this->ID = $ID;
  533.     else return false;
  534.  
  535.     $this->P_EMAIL = strtolower($table_profile[0]);
  536.  
  537.     $q "UPDATE " $this->TDB_USER . " SET user_last_modify=NOW() WHERE user_id='" $this->ID . "';";
  538.     $result $sql_object->DBSelect ($q);
  539.  
  540.     $q "SELECT user_profile FROM " $this->TDB_USER . " WHERE user_id='" $this->ID . "' LIMIT 1;";
  541.     $data $sql_object->DBSelect ($q'OBJECT');
  542.     if ($data!=&& count($data== 1{
  543.       $this->P_ID = $data[0]->user_profile;
  544.     else return false;
  545.     $this->P_EMAIL_DISPLAY = strtoupper($table_profile[1]);
  546.     $this->P_CITY = strip_input(ucfirst(trim($table_profile[2])));
  547.     $this->P_BIRTHDATE = ($table_profile[3]=='--''0001-01-01' formatDate($table_profile[3]true);
  548.     $this->P_LEISURES = strip_input(trim($table_profile[4]));
  549.     $this->P_JOB = strip_input(trim($table_profile[5]));
  550.     $this->P_QUOTATION = strip_input(trim($table_profile[6]));
  551.     $this->P_SIGNATURE = strip_input(trim($table_profile[7]));
  552.     $this->P_FIRSTNAME = strip_input(trim($table_profile[8]));
  553.     $this->P_LASTNAME = strip_input(trim($table_profile[9]));
  554.     $this->P_AVATAR = strip_input($table_profile[10]);
  555.  
  556.     $q "UPDATE " T_PROFILE " SET profile_firstname='" $this->P_FIRSTNAME . "', profile_lastname='" $this->P_LASTNAME . "', profile_email='" $this->P_EMAIL . "', profile_email_display='" $this->P_EMAIL_DISPLAY . "', profile_city='" $this->P_CITY . "', profile_birthdate='" $this->P_BIRTHDATE . "', profile_leisures='" $this->P_LEISURES . "', profile_job='" $this->P_JOB . "', profile_quotation='" $this->P_QUOTATION . "', profile_signature='" $this->P_SIGNATURE . "', profile_avatar='" $this->P_AVATAR . "' WHERE profile_id='" $this->P_ID . "';";
  557.  
  558.     $result $sql_object->DBQuery ($q);
  559.  
  560.     return $result;
  561.   }
  562.  
  563.   /**
  564.    * user::ModifyRight()
  565.    * modification des droits d'un utilisateur
  566.    *
  567.    * @access public
  568.    * @param int $ID identifiant de l'utilisateur
  569.    * @param object $sql_object 
  570.    * @param array $table_right contient un tableau associatif de droit
  571.    * @return bool $result
  572.    */
  573.   function ModifyRight($ID$table_right$sql_object)
  574.   {
  575.     if (is_numeric($ID)) {
  576.       $this->ID = $ID;
  577.     else return false;
  578.  
  579.     $update '';
  580.     $sep ', ';
  581.     if (isset($table_right['dashboard'])) {
  582.       $this->R_DASHBOARD = $table_right['dashboard'];
  583.       $update .= "rights_dashboard='" $this->R_DASHBOARD . "'";
  584.     }
  585.     if (isset($table_right['project'])) {
  586.       $this->R_PROJECT = $table_right['project'];
  587.       $update .= $sep "rights_project='" $this->R_PROJECT . "'";
  588.     }
  589.     if (isset($table_right['publication'])) {
  590.       $this->R_PUBLICATION = $table_right['publication'];
  591.       $update .= $sep "rights_publication='" $this->R_PUBLICATION . "'";
  592.     }
  593.     if (isset($table_right['workshop'])) {
  594.       $this->R_WORKSHOP = $table_right['workshop'];
  595.       $update .= $sep "rights_workshop='" $this->R_WORKSHOP . "'";
  596.     }
  597.     if (isset($table_right['news'])) {
  598.       $this->R_NEWS = $table_right['news'];
  599.       $update .= $sep "rights_news='" $this->R_NEWS . "'";
  600.     }
  601.     if (isset($table_right['yellowpages'])) {
  602.       $this->R_YELLOWPAGES = $table_right['yellowpages'];
  603.       $update .= $sep "rights_yellowpages='" $this->R_YELLOWPAGES . "'";
  604.     }
  605.     if (isset($table_right['theme'])) {
  606.       $this->R_THEME = $table_right['theme'];
  607.       $update .= $sep "rights_theme='" $this->R_THEME . "'";
  608.     }
  609.     if (isset($table_right['scale'])) {
  610.       $this->R_SCALE = $table_right['scale'];
  611.       $update .= $sep "rights_scale='" $this->R_SCALE . "'";
  612.     }
  613.     if (isset($table_right['level'])) {
  614.       $this->R_LEVEL = $table_right['level'];
  615.       $update .= $sep "rights_level='" $this->R_LEVEL . "'";
  616.     }
  617.     if (isset($table_right['category_user'])) {
  618.       $this->R_CATEGORY_USER = $table_right['category_user'];
  619.       $update .= $sep "rights_category_user='" $this->R_CATEGORY_USER . "'";
  620.     }
  621.  
  622.     $q "UPDATE " $this->TDB_USER . " SET user_last_modify=NOW() WHERE user_id='" $this->ID . "';";
  623.     $result $sql_object->DBSelect ($q);
  624.     $q "SELECT user_rights FROM " $this->TDB_USER . " WHERE user_id='" $this->ID . "';";
  625.     $result $sql_object->DBSelect ($q);
  626.  
  627.     if ($result == 0return false;
  628.     if (count($result== 1{
  629.       $this->R_ID = $result[0]['user_rights'];
  630.     else return false;
  631.     $q "UPDATE " T_RIGHT " SET " $update " WHERE rights_id='" $this->R_ID . "';";
  632.     $result $sql_object->DBQuery ($q);
  633.  
  634.     if ($result{
  635.       $this->_SetUserCategory($table_right);
  636.       $q "UPDATE " $this->TDB_USER . " SET user_category='" $this->CATEGORY . "' WHERE user_id='" $this->ID . "';";
  637.  
  638.       $result $sql_object->DBQuery ($q);
  639.     }
  640.     return $result;
  641.   }
  642.  
  643.  
  644. }
  645.  
  646. ?>

Documentation generated on Thu, 03 May 2012 15:03:21 +0200 by phpDocumentor 1.4.1