X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=mw%2Fapp%2Fdata%2Fmodules%2Fsql%2Fmw_data_users.php;fp=mw%2Fapp%2Fdata%2Fmodules%2Fsql%2Fmw_data_users.php;h=0000000000000000000000000000000000000000;hb=0df77b6e0e0eee4060e73ca0d6955bf232aa23cc;hp=f1171dafd8756084e9fdd0b10d3072b73721ac09;hpb=d669e951c9bcd5a4d1baf3ff8b60431f73e14054;p=mtweb diff --git a/mw/app/data/modules/sql/mw_data_users.php b/mw/app/data/modules/sql/mw_data_users.php deleted file mode 100644 index f1171da..0000000 --- a/mw/app/data/modules/sql/mw_data_users.php +++ /dev/null @@ -1,414 +0,0 @@ -sgbd(); - $env = $this->env(); - $users = array("list" => array(), "total" => 0); - try{ - $SELECT = "SELECT #--users.*"; - $FROM = " FROM #--users"; - $WHERE = ""; - $WHERE .= (isset($alpha) ? ($WHERE ? " AND" : " WHERE")." LEFT(login, 1)=".$this->eq($alpha) : ""); - if(isset($id_role)){ - $SELECT .= ", #--users_roles.id_role"; - $FROM .= - " LEFT JOIN #--users_roles ON (" - ." #--users_roles.id_user=#--users.id" - ." AND #--users_roles.id_role=".$this->eq($id_role) - .")"; - $WHERE .= ($WHERE ? " AND" : " WHERE")." mw_users_roles.id_role IS NOT NULL"; - } - $LIMIT = ($env->config("max_list") ? " LIMIT ".$env->config("max_list")." OFFSET ".$start : ""); - $sql = "SELECT count(*) as n FROM(".$SELECT.$FROM.$WHERE.") res"; - $rst = $sgbd->query($sql); - if($v_rst = $sgbd->fetch_assoc($rst)) $users["total"] = $v_rst["n"]; - $sgbd->free_result($rst); - if($users["total"] > 0){ - $sql = "SELECT * FROM(".$SELECT.$FROM.$WHERE.$LIMIT.") res"; - $rst = $sgbd->query($sql); - while($v_rst = $sgbd->fetch_assoc($rst)) $users["list"][$v_rst["id"]] = $v_rst; - $sgbd->free_result($rst); - foreach($users["list"] as $id_user => $user){ - if(($roles = $this->list_user_roles($id_user)) !== false){ - $users["list"][$id_user]["roles"] = $roles; - } - else{ - $users = false; - break; - } - } - } - } - catch(Exception $e) { $users = false; } - return $users; - } - - function list_user_roles($id_user){ - $sgbd = $this->sgbd(); - $roles = array(); - try{ - $rst = $sgbd->query("SELECT id_role FROM #--users_roles WHERE id_user=".$this->eq($id_user)); - while($v_rst = $sgbd->fetch_assoc($rst)) $roles[] = $v_rst["id_role"]; - $sgbd->free_result($rst); - } - catch(Exception $e) { $roles = false; } - return $roles; - } - - function user_by_id($id){ - $env = $this->env(); - $user = $env->get_model("users"); - if($user->load("id", $id) === false) return false; - return $user->get_values(); - } - - function user($login){ - $env = $this->env(); - $user = $env->get_model("users"); - if($user->load("login", $login) === false) return false; - return $user->get_values(); - } - - function user_exists($login){ - $sgbd = $this->sgbd(); - $EXISTS = 0; - try{ - $sql = "SELECT count(*) as n from #--users WHERE login=".$this->eq($login); - $rst = $sgbd->query($sql); - if($v_rst = $sgbd->fetch_assoc($rst)) $EXISTS = $v_rst["n"]; - $sgbd->free_result($rst); - } - catch(Exception $e) { $EXISTS = false; } - return $EXISTS; - } - - function add_user($login, $password, $email, $roles){ - $sgbd = $this->sgbd(); - $user_id = false; - try{ - $sql = - "INSERT INTO #--users(login, password, email) VALUES" - ."( ".$this->eq($login) - .", ".$this->eq($password) - .", ".$this->eq($email) - .")"; - $sgbd->query($sql); - $user_id = $sgbd->insert_id(); - foreach($roles as $id_role){ - $sql = - "INSERT INTO #--users_roles(id_user, id_role) VALUES" - ."( ".$user_id - .", ".$this->eq($id_role) - .")"; - $sgbd->query($sql); - } - } - catch(Exception $e) { $user_id = false; } - return $user_id; - } - - function set_user($id, $login, $password, $email, $roles){ - $sgbd = $this->sgbd(); - try{ - $sql = - "UPDATE #--users SET" - ." login=".$this->eq($login) - .", password=".$this->eq($password) - .", email=".$this->eq($email) - ." WHERE id=".$this->eq($id); - $sgbd->query($sql); - if(!$this->clear_user_roles($id)) return false; - foreach($roles as $id_role){ - if(!$this->add_user_role($id, $id_role)) return false; - } - } - catch(Exception $e) { return false; } - return true; - } - - function clear_user_roles($id_user){ - $sgbd = $this->sgbd(); - try{ - $sql = "DELETE FROM #--users_roles WHERE id_user=".$this->eq($id_user); - $sgbd->query($sql); - } - catch(Exception $e) { return false; } - return true; - } - - function add_user_role($id_user, $id_role){ - $sgbd = $this->sgbd(); - try{ - $sql = - "INSERT INTO #--users_roles(id_user, id_role) VALUES" - ."( ".$this->eq($id_user) - .", ".$this->eq($id_role) - .")"; - $sgbd->query($sql); - } - catch(Exception $e) { return false; } - return true; - } - - function del_user($login){ - if(($user = $this->user($login)) !== false){ - $sgbd = $this->sgbd(); - try{ - $sql = "DELETE FROM #--users_roles WHERE id_user=".$user["id"]; - $sgbd->query($sql); - $sql = "DELETE FROM #--users WHERE login=".$this->eq($login)." AND id=".$user["id"]; - $sgbd->query($sql); - } - catch(Exception $e) { return false; } - } - else return false; - return true; - } - - # ---------------------------------------------------------------------------------------- - # roles - # - - function init_roles(){ - $sgbd = $this->sgbd(); - $this->roles = array(); - try{ - $sql = "SELECT * FROM #--roles"; - $rst = $sgbd->query($sql); - while($v_rst = $sgbd->fetch_assoc($rst)) $this->roles[$v_rst["id"]] = $v_rst; - $sgbd->free_result($rst); - } - catch(Exception $e) { $this->roles = false; } - return $this->roles; - } - - function roles(){ - if(!isset($this->roles)) return false; - return $this->roles; - } - - function add_role($nom, $intitule){ - $sgbd = $this->sgbd(); - try{ - $sql = - "INSERT INTO #--roles(nom, intitule) VALUES(" - ." ".$this->eq($nom) - .", ".$this->eq($intitule) - .")"; - $rst = $sgbd->query($sql); - $id_role = $sgbd->insert_id(); - } - catch(Exception $e) { $id_role = false; } - return $id_role; - } - - function get_role($id){ - if($id === "0") return array( - "id" => 0, - "nom" => "", - "intitule" => "" - ); - $sgbd = $this->sgbd(); - $role = array(); - try{ - $sql = "SELECT * FROM #--roles WHERE id=".$this->eq($id); - $rst = $sgbd->query($sql); - if($v_rst = $sgbd->fetch_assoc($rst)) $role = $v_rst; - $sgbd->free_result($rst); - } - catch(Exception $e) { $role = false; } - return $role; - } - - function set_role($id, $nom, $intitule){ - $sgbd = $this->sgbd(); - try{ - $sql = - "UPDATE #--roles SET" - ." nom=".$this->eq($nom) - .", intitule=".$this->eq($intitule) - ." WHERE id=".$this->eq($id); - $rst = $sgbd->query($sql); - } - catch(Exception $e) { return false; } - return true; - } - - function clear_role_actions($id_role){ - $sgbd = $this->sgbd(); - try{ - $sql = "DELETE FROM #--actions_roles WHERE id_role=".$this->eq($id_role); - $sgbd->query($sql); - } - catch(Exception $e) { return false; } - return true; - } - - function clear_role_users($id_role){ - $sgbd = $this->sgbd(); - try{ - $sql = "DELETE FROM #--users_roles WHERE id_role=".$this->eq($id_role); - $sgbd->query($sql); - } - catch(Exception $e) { return false; } - return true; - } - - function add_role_action($id_role, $action){ - $sgbd = $this->sgbd(); - try{ - $sql = "INSERT INTO #--actions_roles(action, id_role) VALUES(".$this->eq($action).", ".$this->eq($id_role).")"; - $sgbd->query($sql); - $id_action_role = $sgbd->insert_id(); - } - catch(Exception $e) { $id_action_role = false; } - return $id_action_role; - } - - function del_role($id_role){ - $sgbd = $this->sgbd(); - try{ - $sql = "DELETE FROM #--roles WHERE id=".$this->eq($id_role); - $sgbd->query($sql); - } - catch(Exception $e) { return false; } - return true; - } - - function get_user_roles(){ - $user_roles = array(); - $user = $this->get_session_user(); - if($user && isset($user["id"])){ - $sgbd = $this->sgbd(); - try{ - $sql = "SELECT id_role FROM #--users_roles WHERE id_user=".$this->eq($user["id"]); - $rst = $sgbd->query($sql); - while($v_rst = $sgbd->fetch_assoc($rst)) $user_roles[] = $v_rst["id_role"]; - $sgbd->free_result($rst); - } - catch(Exception $_e){ return false; } - } - else $user_roles[] = 0; - if(!$user_roles) $user_roles[] = 0; - return $user_roles; - } - - function init_actions_roles(){ - if(!isset($this->roles)) return false; - $this->actions_roles = $this->read_actions_roles(); - return $this->actions_roles; - } - - function read_actions_roles($params = array()){ - $group_by_action = isset($params["group_by_action"]) ? $params["group_by_action"] : false; - $sgbd = $this->sgbd(); - $actions_roles = array(); - try{ - $sql = "SELECT * FROM #--actions_roles"; - $rst = $sgbd->query($sql); - while($v_rst = $sgbd->fetch_assoc($rst)){ - if($group_by_action){ - if(!isset($actions_roles[$v_rst["action"]])) $actions_roles[$v_rst["action"]] = array(); - $actions_roles[$v_rst["action"]][] = $v_rst["id_role"]; - } - else $actions_roles[$v_rst["id"]] = $v_rst; - } - $sgbd->free_result($rst); - } - catch(Exception $e) { $actions_roles = false; } - return $actions_roles; - } - - function get_action_roles($mod, $controller = "index", $action = "index"){ - $sgbd = $this->sgbd(); - $roles = array(); - try{ - $sql = - "SELECT action, id_role" - ." FROM #--actions_roles" - ." WHERE action=".$this->eq($mod) - ." OR action=".$this->eq($mod."/".$controller) - ." OR action=".$this->eq($mod."/".$controller."/".$action); - $rst = $sgbd->query($sql); - while($v_rst = $sgbd->fetch_assoc($rst)){ - if(!isset($roles[$v_rst["action"]])) $roles[$v_rst["action"]] = array(); - $roles[$v_rst["action"]][$v_rst["id_role"]] = true; - } - $sgbd->free_result($rst); - } - catch(Exception $e) { $roles = false; } - return $roles; - } - - function get_actions($id_role = null){ - $env = $this->env(); - if($actions = $env->get_actions()){ - if(($actions_roles = $this->read_actions_roles(array("group_by_action" => true))) !== false){ - foreach($actions as $module_name => $module){ - if(isset($id_role)) $actions[$module_name]["module_allowed"] = - isset($actions_roles[$module_name]) - && in_array($id_role, $actions_roles[$module_name]); - $actions[$module_name]["is_public"] = - isset($actions_roles[$module_name]) - && in_array(0, $actions_roles[$module_name]); - foreach($module["controleurs"] as $controleur_name => $controleur){ - if(isset($id_role)) $actions[$module_name]["controleurs"][$controleur_name]["controleur_allowed"] = - isset($actions_roles[$module_name."/".$controleur_name]) - && in_array($id_role, $actions_roles[$module_name."/".$controleur_name]); - $actions[$module_name]["controleurs"][$controleur_name]["is_public"] = - isset($actions_roles[$module_name."/".$controleur_name]) - && in_array(0, $actions_roles[$module_name."/".$controleur_name]); - foreach($controleur["als"] as $index_als => $al){ - if($al["actions"]){ - if(isset($id_role)){ - $HAS_ACTION_NOT_ALLOWED = false; - foreach($al["actions"] as $action_name){ - if( - !isset($actions_roles[$module_name."/".$controleur_name."/".$action_name]) - || !in_array($id_role, $actions_roles[$module_name."/".$controleur_name."/".$action_name]) - ){ - $HAS_ACTION_NOT_ALLOWED = true; - break; - } - } - if(!$HAS_ACTION_NOT_ALLOWED){ - $actions[$module_name]["controleurs"][$controleur_name]["als"][$index_als]["action_allowed"] = true; - } - } - $HAS_ACTION_NOT_ALLOWED = false; - foreach($al["actions"] as $action_name){ - if( - !isset($actions_roles[$module_name."/".$controleur_name."/".$action_name]) - || !in_array(0, $actions_roles[$module_name."/".$controleur_name."/".$action_name]) - ){ - $HAS_ACTION_NOT_ALLOWED = true; - break; - } - } - if(!$HAS_ACTION_NOT_ALLOWED){ - $actions[$module_name]["controleurs"][$controleur_name]["als"][$index_als]["is_public"] = true; - } - } - } - } - } - return $actions; - } - } - return array(); - } - - } - -?> \ No newline at end of file