* */ /** * Class usergroup_content : contains all the functions to manage the groups and users through session variables * * @author Claire Figueras * @license GPL * @package Maarch LetterBox 2.3 * @version 1.1 */ class usergroup_content extends dbquery { /** * Inits the session variables related to the user administration. * */ public function init_session() { $_SESSION['m_admin']['users'] = array(); $_SESSION['m_admin']['users']['UserId'] = ""; $_SESSION['m_admin']['users']['pass'] = ""; $_SESSION['m_admin']['users']['FirstName'] = ""; $_SESSION['m_admin']['users']['LastName'] = ""; $_SESSION['m_admin']['users']['Phone'] = ""; $_SESSION['m_admin']['users']['Mail'] = ""; $_SESSION['m_admin']['users']['Department'] = ""; $_SESSION['m_admin']['users']['Status'] = ""; $_SESSION['m_admin']['users']['Elu'] = "N"; $_SESSION['m_admin']['users']['Fonction'] = ""; $_SESSION['m_admin']['users']['groups'] = array(); $_SESSION['m_admin']['users']['nbbelonginggroups'] = 0; $_SESSION['m_admin']['init'] = false ; } /** * Removes the group on the tables passed in parameters for the user. * * @param array $tab array of the groups to remove */ public function remove_session($tab) { $tabtmp = array(); for($i=0; $i < count($_SESSION['m_admin']['users']['groups']); $i++) { if( !in_array($_SESSION['m_admin']['users']['groups'][$i]['GROUP_ID'], $tab)) { array_push($tabtmp, $_SESSION['m_admin']['users']['groups'][$i]); } } $_SESSION['m_admin']['users']['groups'] = array(); $_SESSION['m_admin']['users']['groups'] = $tabtmp; } /** * No group is the primary group for the user. * */ public function erase_primary_group_session() { for($i=0; $i < count($_SESSION['m_admin']['users']['groups']); $i++) { $_SESSION['m_admin']['users']['groups'][$i]["PRIMARY"] = 'N'; } } /** * Set the primary group for a user in the session variables. * * @param string $group_id group identifier */ public function set_primary_group_session($group_id) { for($i=0; $i < count($_SESSION['m_admin']['users']['groups']); $i++) { if ( $_SESSION['m_admin']['users']['groups'][$i]["GROUP_ID"] == $group_id) { $_SESSION['m_admin']['users']['groups'][$i]["PRIMARY"] = 'Y'; break; } } } /** * Adds a group in the session variables related to the user administration * * @param string $group group identifier * @param string $role role in the group (empty by default) * @param string $label group label */ public function add_usertmp_to_group_session($group, $role = "", $label) { $tab = array(); $tab = array("USER_ID" => "", "GROUP_ID" => $group , "PRIMARY" => 'N', "ROLE" => $role, 'LABEL' => $label ); //print_r($tab); //exit; array_push($_SESSION['m_admin']['users']['groups'], $tab); } /** * Loads in the session variables the groups of the user passed in parameter * * @param string $user_id user identifier */ public function load_group_session($user_id) { $this->connect(); $this->query("select u.USER_ID, u.GROUP_ID, u.PRIMARY_GROUP, u.ROLE, g.GROUP_DESC from ".$_SESSION['tablename']['usergroup_content'] ." u, ".$_SESSION['tablename']['usergroups']." g where u.user_id = '".$user_id."' and u.GROUP_ID = g.GROUP_ID"); if($this->nb_result() == 0) { $_SESSION['m_admin']['users']['groups'] = array(); } else { $grouptab=array(); $val=array(); $i=0; while($value = $this->fetch_array()) { $val[$i]=array("USER_ID" => $value[0],"GROUP_ID" => $value[1], "PRIMARY" => $value[2], "ROLE" => $value[3], "LABEL" => $value[4] ); array_push($grouptab,$val[$i]); $i++; } $_SESSION['m_admin']['users']['groups'] = $grouptab; $_SESSION['m_admin']['users']['nbbelonginggroups'] = count($grouptab); } $_SESSION['m_admin']['load_group'] = false; } /** * Updates the database (usergroup_content table) with the session variables. * */ public function load_db() { $this->connect(); $this->query("DELETE FROM ".$_SESSION['tablename']['usergroup_content'] ." where USER_ID = '".$_SESSION['m_admin']['users']['UserId']."'"); for($i=0; $i < count($_SESSION['m_admin']['users']['groups'] ); $i++) { $this->query("INSERT INTO ".$_SESSION['tablename']['usergroup_content']." VALUES ('".$_SESSION['m_admin']['users']['UserId']."', '".$_SESSION['m_admin']['users']['groups'][$i]['GROUP_ID']."', '".$_SESSION['m_admin']['users']['groups'][$i]['PRIMARY']."', '".$_SESSION['m_admin']['users']['groups'][$i]['ROLE']."')"); } } } ?>