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";
}
}