db_smartone = $this->load->database("onedev", true); } function change_password() { $prm = $this->sys_input; if ( ! $this->isLogin ) { echo json_encode( array("status"=>"ERR", "message"=> "Invalid Token") ); exit; } $sm_password = md5($this->one_salt . $prm["old"] . $this->one_salt); $userID = $this->sys_user["M_UserID"]; $query = $this->db_onedev->query("select * from m_user where M_UserID = ? and M_UserPassword = ?", array($userID, $sm_password) ); if(!$query) { echo json_encode( array("status"=>"ERR", "message"=> "Invalid Password") ); exit; } $rows = $query->result_array(); if(count($rows) == 0 ) { echo json_encode( array("status"=>"ERR", "message"=> "Invalid Password") ); exit; } $new_password = md5($this->one_salt . $prm["new"] . $this->one_salt); $query = $this->db_onedev->query("update m_user set M_UserPassword=? where M_UserID = ?", array($new_password,$userID) ); if(!$query) { echo json_encode( array("status"=>"ERR", "message"=> "Invalid Password") ); exit; } echo json_encode( array("status"=>"OK", "message"=>"")); } function get_bread_crumb_v2() { $prm = $this->sys_input; /* if ( ! $this->is_login ) { echo json_encode( array("status"=>"ERR", "message"=> "Invalid Token","data"=>$data) ); } */ $xpath = parse_url($prm["xref"]); $path = $xpath["path"]; if ( substr($path,-1) == "/" ) $path = substr($path,0, strlen($path) - 1); $path = str_replace("/one-ui-lab/","",$path); $path = str_replace("one-ui-lab/","",$path); echo "path : $path \n"; $user_id = $this->sys_user['M_UserID']; // get bread_crumb $sql = "select fn_sys_breadcrumb(?,?) as breadcrumb"; $qry = $this->db_smartone->query($sql,array($path,$user_id)); $rows = $qry->result(); $breadcrumb = ""; $is_page_allowed = false; $dashboard = "one-ui-lab/test/vuex/one-fo-verification"; if (count($rows) > 0 ) { $breadcrumb = $rows[0]->breadcrumb; if ($breadcrumb != "" ) $is_page_allowed = true; } $data = array( "bread_crumb" => $breadcrumb, "dashboard" => $dashboard, "is_page_allowed" => $is_page_allowed ); echo json_encode( array("status"=>"OK", "data"=>$data) ); } function get_bread_crumb() { $prm = $this->sys_input; /* if ( ! $this->is_login ) { echo json_encode( array("status"=>"ERR", "message"=> "Invalid Token","data"=>$data) ); } */ $xpath = parse_url($prm["xref"]); $path = $xpath["path"]; if ( substr($path,-1) == "/" ) $path = substr($path,0, strlen($path) - 1); $path = str_replace("/one-ui-lab/","",$path); $path = str_replace("one-ui-lab/","",$path); $user_id = $this->sys_user['M_UserID']; // get bread_crumb $sql = "select fn_sys_breadcrumb(?,?) as breadcrumb"; $qry = $this->db_smartone->query($sql,array($path,$user_id)); //file_put_contents("/xtmp/fx-last_query","\n" . $this->db_smartone->last_query() ); $rows = $qry->result(); $breadcrumb = ""; $is_page_allowed = false; $dashboard = "one-ui/test/vuex/one-fo-verification"; if (count($rows) > 0 ) { $breadcrumb = $rows[0]->breadcrumb; if ($breadcrumb != "" ) $is_page_allowed = true; } $data = array( "bread_crumb" => $breadcrumb, "dashboard" => $dashboard, "is_page_allowed" => $is_page_allowed ); $sql = "select * from m_branch where M_BranchIsDefault = 'Y' and M_BranchIsActive ='Y'"; $qry =$this->db_smartone->query($sql); $branch = array(); if ($qry) { $rows = $qry->result_array(); if (count($rows) > 0 ) { $branch = $rows[0]; } } $data["branch"] = $branch; echo json_encode( array("status"=>"OK", "data"=>$data) ); } function get_menuxxxx() { $sql = "CALL sp_sys_menu_user('{$this->sys_user['M_UserID']}')"; // $query = $this->db_smartone->query($sql); $index = 0; $ResultSet = array(); /* execute multi query */ if (mysqli_multi_query($this->db_smartone->conn_id, $sql)) { do { if (false != $result = mysqli_store_result($this->db_smartone->conn_id)) { $rowID = 0; while ($row = $result->fetch_assoc()) { $x = json_decode($row['x']); foreach ($x as $k => $v) { if (!isset($ResultSet[$index]['p_'.$v->parent_id])) $ResultSet[$index]['p_'.$v->parent_id] = []; $ResultSet[$index]['p_'.$v->parent_id][] = $v; } // $ResultSet[$index] = // $rowID++; } } $index++; } while (mysqli_next_result($this->db_smartone->conn_id)); } echo json_encode(["status"=>"OK", "data"=>$ResultSet]); } function get_menu() { $prm = $this->sys_input; $user_id = $this->sys_user['M_UserID']; $xpath = $prm['path']; $xpath = str_replace("/one-ui-lab/", "", $xpath); $xpathx = str_replace("/one-ui-lab/", "", $xpath); $last_char = substr($xpath , -1); if($last_char == "/") $xpath = substr($xpath, 0, -1); $sql = "SELECT S_MenuID, S_MenuName, S_MenuUrl, S_MenuIcon, S_MenuParentS_MenuID, S_MenuLevel, S_MenuIsParent, S_MenuOrder FROM s_privilege JOIN m_user ON M_UserID = ? AND M_UserIsActive = 'Y' AND M_UserM_UserGroupID = S_PrivilegeM_UserGroupID JOIN s_menu ON S_PrivilegeS_MenuID = S_MenuID AND (S_MenuUrl = ? OR S_MenuUrl = ? )AND S_MenuIsActive = 'Y' WHERE S_PrivilegeIsActive = 'Y'"; $qry = $this->db->query($sql, [ $user_id , $xpath, $xpath.'/']); if (!$qry) { echo json_encode(["status" => "ERR", "message" => $this->db->error()]); exit; } $selected_menu = $qry->result_array(); $menu_exist = count($selected_menu); $parent_id = $selected_menu[0]['S_MenuParentS_MenuID']; if($menu_exist == 0){ $sql = "SELECT M_UserGroupDashboard as url_x FROM m_usergroup JOIN m_user ON M_UserID = ? AND M_UserIsActive = 'Y' AND M_UserM_UserGroupID = M_UserGroupID WHERE M_UserGroupIsActive = 'Y'"; $qry = $this->db->query($sql, [ $user_id]); if (!$qry) { echo json_encode(["status" => "ERR", "message" => $this->db->error()]); exit; } $menu_redirect = $qry->row()->url_x; echo json_encode( array("status" => "ERRMENU", "message" => "Not Have Access", "menu" => $menu_redirect) ); exit; } $sql = "SELECT S_MenuID, S_MenuName, S_MenuUrl, S_MenuIcon, S_MenuParentS_MenuID, S_MenuLevel, S_MenuIsParent, IFNULL(S_MenuFavoriteOrder, S_MenuOrder) as S_MenuOrder FROM s_privilege JOIN m_user ON M_UserID = ? AND M_UserIsActive = 'Y' AND M_UserM_UserGroupID = S_PrivilegeM_UserGroupID JOIN s_menu ON S_PrivilegeS_MenuID = S_MenuID AND S_MenuIsActive = 'Y' AND S_MenuParentS_MenuID = ? AND ( S_MenuUrl <> '{$xpath}' AND S_MenuUrl <> '{$xpath}/' ) LEFT JOIN s_menu_favorite ON S_MenuID = S_MenuFavoriteS_MenuID AND S_MenuFavoriteM_UserID = M_UserID AND S_MenuFavoriteIsActive = 'Y' WHERE S_PrivilegeIsActive = 'Y' LIMIT 6"; $qry = $this->db->query($sql, [ $user_id, $parent_id ]); if (!$qry) { echo json_encode(["status" => "ERR", "message" => $this->db->error()]); exit; } //echo $this->db->last_query(); //exit; $rows_favorite = $qry->result_array(); $id_favorite = array_column($rows_favorite, 'S_MenuID'); $id_favorite[] = $selected_menu[0]['S_MenuID']; $id_favorite = implode(',', $id_favorite); $sql = "SELECT S_MenuID, S_MenuName, S_MenuUrl, S_MenuIcon, S_MenuParentS_MenuID, S_MenuLevel, S_MenuIsParent, IFNULL(S_MenuFavoriteOrder, S_MenuOrder) as S_MenuOrder FROM s_privilege JOIN m_user ON M_UserID = ? AND M_UserIsActive = 'Y' AND M_UserM_UserGroupID = S_PrivilegeM_UserGroupID JOIN s_menu ON S_PrivilegeS_MenuID = S_MenuID AND S_MenuIsActive = 'Y' AND S_MenuParentS_MenuID = ? AND S_MenuID NOT IN ($id_favorite) LEFT JOIN s_menu_favorite ON S_MenuID = S_MenuFavoriteS_MenuID AND S_MenuFavoriteM_UserID = M_UserID AND S_MenuFavoriteIsActive = 'Y' WHERE S_PrivilegeIsActive = 'Y' ORDER BY S_MenuOrder ASC LIMIT 10"; $qry = $this->db->query($sql, [ $user_id, $parent_id ]); if (!$qry) { echo json_encode(["status" => "ERR", "message" => $this->db->error()]); exit; } $rows_other_favorite = $qry->result_array(); $sql = "CALL sp_sys_menu_user({$this->sys_user['M_UserID']})"; // $query = $this->db_smartone->query($sql); $index = 0; $ResultSet = array(); /* execute multi query */ if (mysqli_multi_query($this->db_smartone->conn_id, $sql)) { do { $result = mysqli_store_result($this->db_smartone->conn_id); if (false != $result) { $rowID = 0; while ($row = $result->fetch_assoc()) { $x = json_decode($row['x']); foreach ($x as $k => $v) { if (!isset($ResultSet[$index]['p_' . $v->parent_id])) $ResultSet[$index]['p_' . $v->parent_id] = []; $ResultSet[$index]['p_' . $v->parent_id][] = $v; } // $ResultSet[$index] = // $rowID++; } } else { echo mysqli_error($this->db_smartone->conn_id); } $index++; } while (mysqli_next_result($this->db_smartone->conn_id)); } else { echo mysqli_error($this->db_smartone->conn_id); } $dts_menu = array( 'selected_menu' => $selected_menu[0], 'rows_favorite' => $rows_favorite, 'rows_other_favorite' => $rows_other_favorite ); echo json_encode(["status" => "OK", "data" => $ResultSet, 'menu' => $dts_menu, 'user_id' => $user_id]); } } ?>