middleware(function ($request, $next) { return $next($request); }); } public function index() { $menu_master = ''; $users = DB::table('emka_'.Auth::user()->database_name.'.users')->get(); $site_projects = SiteProject::all(); $role = Role::orderBy('name')->get(); return view('staff.list-user', compact('users', 'site_projects', 'role', 'menu_master')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // validasi dan create database user yang lagi login $request->validate([ 'username' => 'required|unique:users,username', 'password' => 'required', 'fullname' => 'required|max:50', 'email' => 'required|email|unique:users|max:50', 'level' => 'required', 'active' => 'required', ]); $user = User::create($request->except('site_projects', 'menu_access', 'act', 'id', 'level')); $user->password = bcrypt($request->password); $user->curr_siteproject = $request->site_projects[0]; $name_role = Role::where('id', $request->get('level'))->first()->name; $user->id_role = $request->get('level'); $user->level = $name_role; if ($user) { if ($request->site_projects) { foreach ($request->site_projects as $value) { UserSiteProject::create([ 'id_user' => $user->id, 'id_site_project' => $value, ]); } } $user->save(); } Config::set("database.connections.mysql.database", "emkabinggo"); DB::purge('mysql'); DB::reconnect('mysql'); // validasi dan create database emkabinggo $request->validate([ 'username' => 'required|unique:users,username', 'password' => 'required', 'fullname' => 'required|max:50', 'email' => 'required|email|unique:users|max:50', 'level' => 'required', 'active' => 'required', ]); $user = User::create($request->except('site_projects', 'menu_access', 'act', 'id', 'level')); $user->password = bcrypt($request->password); $user->curr_siteproject = $request->site_projects[0]; $name_role = Role::where('id', $request->get('level'))->first()->name; $user->id_role = $request->get('level'); $user->level = $name_role; if ($user) { if ($request->site_projects) { foreach ($request->site_projects as $value) { UserSiteProject::create([ 'id_user' => $user->id, 'id_site_project' => $value, ]); } } $user->save(); } return redirect()->back(); $name_role = Role::where('id', $request->get('level'))->first()->name; DB::table('emka_'.Auth::user()->database_name.'.users')->insert([ 'username' => $request->username, 'password' => bcrypt($request->password), 'fullname' => $request->fullname, 'email' => $request->email, 'level' => $request->level, 'active' => $request->active, 'id_role' => $request->get('level'), 'level' => $name_role ]); Config::set("database.connections.mysql.database", "emka"); $usersss = DB::table('emka_'.Auth::user()->database_name.'.users')->orderBy('id', 'desc')->first(); $user = User::create($request->except('site_projects', 'menu_access', 'act', 'id', 'level')); $user->password = bcrypt($request->password); $user->database_name = Auth::user()->database_name; $user->curr_siteproject = $request->site_projects[0]; $user->id_role = $request->get('level'); $user->level = $name_role; $user->id_dbdua = $usersss->id; $user->save(); if ($usersss) { if ($request->site_projects) { foreach ($request->site_projects as $value) { DB::table('emka_'.Auth::user()->database_name.'.users_site_project')->insert([ 'id_user' => $usersss->id, 'id_site_project' => $value ]); } $json = [ 'fullname' => $request->fullname, 'email' => $request->email, 'password' => $request->password ]; $ch = curl_init(); $encode = json_encode($json); curl_setopt($ch, CURLOPT_URL, 'https://my.binggo.co.id//api/adduser/emka'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $encode); $headers = [ 'Content-Type: application/json' ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); }else{ echo $result; } curl_close($ch); } return redirect()->route('user.index')->with('msg', 'data berhasil ditambahkan'); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { if (\Request::ajax()) { $user = DB::table('emka_'.Auth::user()->database_name.'.users')->find($id); // $user = User::findOrFail($id); $usite_projectS = UserSiteProject::where('id_user', $id)->get(); $menu_accessS = NULL; return response()->json([ 'user' => $user, 'usite_projectS' => $usite_projectS, 'menu_accessS' => $menu_accessS, ]); } else { abort('404'); } } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { if (\Request::ajax()) { } else { abort('404'); } } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $request->validate([ 'username' => 'required|unique:users,username,' . $id . ',id', 'fullname' => 'required|max:50', 'email' => 'required|email|unique:users,email,' . $id . ',id|max:50', 'level' => 'required', 'active' => 'required', ]); $user = User::where('id_dbdua', $id)->update($request->except('act', 'id', 'site_projects', 'menu_access', '_token', '_method', 'password', 'level')); $user = User::where('id_dbdua', $id)->first(); $name_role = Role::where('id', $request->get('level'))->first()->name; $user->id_role = $request->get('level'); $user->level = strtoupper($name_role); if ($request->site_projects) { $user->UserSiteProjects()->sync($request->site_projects); $user->curr_siteproject = $request->site_projects[0]; } $user->save(); DB::table('emka_'.Auth::user()->database_name.'.users')->where('id',$id)->update([ 'username' => $request->username, 'fullname' => $request->fullname, 'email' => $request->email, 'level' => $request->level, 'active' => $request->active ]); // User data to send using HTTP PUT method in curl $data = array('fullname'=> $request->fullname); // Data should be passed as json format $data_json = json_encode($data); // API URL to update data with employee id $url = 'https://my.binggo.co.id//api/updateuser/emka/'.$request->email; // curl initiate $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json))); // SET Method as a PUT curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // Pass user data in POST command curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Execute curl and assign returned data $response = curl_exec($ch); // Close curl curl_close($ch); return redirect()->route('user.index')->with('msg', 'data berhasil diubah'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $get = DB::table('users')->where('id',$id)->first(); $email = $get->email; $request_body = $email; $ch = curl_init('https://my.binggo.co.id//api/deleteuser/emka/'.$email); curl_setopt($ch, CURLOPT_POSTFIELDS, $request_body); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); $response = curl_exec($ch); $user = User::find($id); $id = $user->id_dbdua; $user->delete(); Config::set("database.connections.mysql.database", "emka"); DB::purge('mysql'); DB::reconnect('mysql'); $user = User::find($id); $user->delete(); return redirect()->route('user.index')->with('msg', 'data berhasil dihapus'); } public function createuser(Request $request){ $user = New User; $db_name = str_replace(" ","_",$request->companyname); $fullname = $request->firstname." ".$request->lastname; $user->fullname = $fullname; $user->username = $request->firstname.$request->lastname; $user->email = $request->email; $user->password = Hash::make($request->password); $user->level = 'SUPERADMIN'; $user->id_role = '1'; $user->active = 'yes'; $user->id_menu_akses = '1'; $user->curr_siteproject = '1'; $user->database_name = $db_name; $user->status = 'trial'; $user->email_buy = $request->email; $user->create_trial = date("Y-m-d"); $user->save(); $createdb = 'emka_'.$db_name; DB::statement('CREATE DATABASE '.$createdb, array('schema' => $db_name)); $connect2 = mysqli_connect("localhost", "root", "d4KeWtAn"); $database1 = $createdb; // destination database mysqli_select_db($connect2, $database1); set_time_limit(0); $database = 'emka_107'; //original database $connect = mysqli_connect("localhost", "root", "d4KeWtAn"); mysqli_select_db($connect, $database); $tables = mysqli_query($connect,"SHOW TABLES FROM $database"); while ($line = mysqli_fetch_row($tables)) { $tab = $line[0]; mysqli_query($connect2,"DROP TABLE IF EXISTS $database1.$tab"); mysqli_query($connect2,"CREATE TABLE $database1.$tab LIKE $database.$tab") or die(mysqli_error()); mysqli_query($connect2,"INSERT INTO $database1.$tab SELECT * FROM $database.$tab"); // echo "Table: " . $line[0] . " Done
"; } return "Success"; } }