-
-
Save Ryahn/4e9a0f32eb11d00319c0e35bdaf863d3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers; | |
use App\Models\User; | |
use Illuminate\Http\Request; | |
use DataTables; | |
class UserController extends Controller | |
{ | |
/** | |
* Display a listing of the resource. | |
* | |
* @return \Illuminate\Http\Response | |
*/ | |
public function index(Request $request) | |
{ | |
if ($request->ajax()) { | |
$data = User::query(); | |
return Datatables::eloquent($data) | |
->addIndexColumn() | |
->editColumn('updated_at', function (User $user) { | |
return $user->updated_at->diffForHumans(); | |
}) | |
->editColumn('created_at', function (User $user) { | |
return $user->created_at->diffForHumans(); | |
}) | |
->addColumn('clan', function (User $user) { | |
return $user->clan(); | |
}) | |
->addColumn('leader', function (User $user) { | |
if ($user->isLeader()) { | |
$html = '<span class="label label-danger label-inline">Yes</span>'; | |
} else { | |
$html = '<span class="label label-success label-inline">No</span>'; | |
} | |
return $html; | |
}) | |
->addColumn('role', function (User $user) { | |
// return $user->roles->map(function($role) { | |
// if($role->name == 'Admin') { | |
// $rname = '<span class="label label-danger label-inline">'. $role->name .'</span>'; | |
// } else { | |
// $rname = '<span class="label label-primary label-inline">'. $role->name .'</span>'; | |
// } | |
// return $rname; | |
// })->implode(' '); | |
$btn = '<button class="btn btn-success btn-sm" id="rolesbtn" data-user-id="' . $user->id . '">Show Roles</button>'; | |
return $btn; | |
}) | |
->addColumn('action', function (User $user) { | |
$btn = ' | |
<a href="' . route('users.addAlt', $user->id) . '" class="edit btn btn-primary btn-sm">Add ALT</a> | |
<a href="' . route('users.edit', $user->id) . '" class="edit btn btn-success btn-sm">Edit</a> | |
<button data-url="' . route('users.delete', $user->id) . '" id="deleteUser" class="delete btn btn-danger btn-sm">Delete</button> | |
'; | |
return $btn; | |
}) | |
->rawColumns(['action', 'role', 'leader']) | |
->toJson(); | |
} | |
$pageData = [ | |
'title' => 'Users', | |
]; | |
return view('user.index', compact('pageData')); | |
} | |
public function rolesModal($id) | |
{ | |
$user = User::findOrFail($id); | |
// return $user; | |
$data = $user->roles->map(function ($role) { | |
if ($role->name == 'Admin') { | |
$rname = '<span class="label label-danger label-inline">' . $role->name . '</span>'; | |
} else { | |
$rname = '<span class="label label-primary label-inline">' . $role->name . '</span>'; | |
} | |
return $rname; | |
})->implode(''); | |
return [ | |
'username' => $user->username, | |
'id' => $user->id, | |
'data' => $data | |
]; | |
} | |
public function login() | |
{ | |
if (env('APP_ENV') === 'local') { | |
$user = App\Models\User::find(env('ADMIN_USER_ID')); | |
Auth::login($user); | |
return redirect('/home'); | |
} | |
$redirect_url = urlencode('http://nga.test/openid/auth'); | |
$url = "https://api.worldoftanks.com/wot/auth/login/?application_id=67942732fd8eb7cca379240d4ee9e31e&redirect_uri=$redirect_url"; | |
return redirect($url, 302); | |
} | |
public function openid() | |
{ | |
if (request()->status !== 'ok') throw new Exception('Could not log in as user!'); | |
$user_id = request()->account_id; | |
$password = Hash::make(str_random(16)); | |
$data = [ | |
'username' => request()->nickname, | |
'access_token' => request()->access_token, | |
'id' => $user_id, | |
'expires_at' => request()->expires_at, | |
'password' => $password | |
]; | |
$u = User::updateOrCreate(['id' => $user_id], $data); | |
Auth::login($u, true); | |
return redirect('/dashboard'); | |
} | |
public function dashboard() | |
{ | |
return redirect('/dashboard'); | |
} | |
/** | |
* 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) | |
{ | |
// | |
} | |
/** | |
* Display the specified resource. | |
* | |
* @param \App\Models\User $user | |
* @return \Illuminate\Http\Response | |
*/ | |
public function show(User $user) | |
{ | |
// | |
} | |
/** | |
* Show the form for editing the specified resource. | |
* | |
* @param \App\Models\User $user | |
* @return \Illuminate\Http\Response | |
*/ | |
public function edit(User $user) | |
{ | |
// | |
} | |
/** | |
* Show the form for editing the specified resource. | |
* | |
* @param \App\Models\User $user | |
* @return \Illuminate\Http\Response | |
*/ | |
public function addAlt(User $user) | |
{ | |
// | |
} | |
/** | |
* Update the specified resource in storage. | |
* | |
* @param \Illuminate\Http\Request $request | |
* @param \App\Models\User $user | |
* @return \Illuminate\Http\Response | |
*/ | |
public function update(Request $request, User $user) | |
{ | |
// | |
} | |
/** | |
* Remove the specified resource from storage. | |
* | |
* @param \App\Models\User $user | |
* @return \Illuminate\Http\Response | |
*/ | |
public function destroy(User $id) | |
{ | |
$id->delete(); | |
// flash('User ' . $id->username . ' has been deleted!')->success(); | |
// return redirect()->back(); | |
return $id->username; | |
} | |
public function deletedUsers(Request $request) | |
{ | |
if ($request->ajax()) { | |
$data = User::onlyTrashed(); | |
return Datatables::eloquent($data) | |
->addIndexColumn() | |
->editColumn('updated_at', function (User $user) { | |
return $user->updated_at->diffForHumans(); | |
}) | |
->editColumn('created_at', function (User $user) { | |
return $user->created_at->diffForHumans(); | |
}) | |
->editColumn('deleted_at', function (User $user) { | |
return $user->deleted_at->diffForHumans(); | |
}) | |
->addColumn('action', function (User $user) { | |
$btn = ' | |
<button data-userid="' . $user->id . '" class="btn btn-warning font-weight-bold btn-sm" id="restoreUserBtn">Restore</button> | |
'; | |
return $btn; | |
}) | |
->rawColumns(['action']) | |
->toJson(); | |
} | |
$pageData = [ | |
'title' => 'Users', | |
]; | |
return view('user.deletedUsers', compact('pageData')); | |
} | |
public function restoreUser(User $id) | |
{ | |
return $id; | |
// if ($id->restore()) { | |
// return "User: " . $id->username . " has been restored!"; | |
// } | |
// return "Could not restart: " . $id->username; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment