192 lines
No EOL
5.7 KiB
PHP
Executable file
192 lines
No EOL
5.7 KiB
PHP
Executable file
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
use App\Mail\MailVerifyContact;
|
|
use App\Models\Account;
|
|
use App\Repositories\UserRepository;
|
|
use App\Services\HTMLHelper;
|
|
use App\User;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Input;
|
|
use Request;
|
|
use Validator;
|
|
use DataTables;
|
|
|
|
|
|
|
|
class AdminUserController extends Controller
|
|
{
|
|
protected $userRepo;
|
|
|
|
public function __construct(UserRepository $userRepo)
|
|
{
|
|
$this->middleware('superadmin');
|
|
$this->userRepo = $userRepo;
|
|
|
|
}
|
|
|
|
/**
|
|
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
|
*/
|
|
public function index()
|
|
{
|
|
$data = [
|
|
//'values' => User::where('admin', 0)->get(),
|
|
'values' => User::where('confirmation_code_remider', '!=', 2)->get(),
|
|
];
|
|
return view('admin.users', $data);
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
if($id == "new"){
|
|
$user = new User();
|
|
}else{
|
|
$user = User::findOrFail($id);
|
|
|
|
}
|
|
/*if(!$user->account){
|
|
$user->account = new Account();
|
|
}
|
|
*/
|
|
$data = [
|
|
'user' => $user,
|
|
'isFromAdmin' => 'true',
|
|
];
|
|
return view('admin.user_edit', $data);
|
|
|
|
|
|
}
|
|
|
|
public function store()
|
|
{
|
|
$data = Input::all();
|
|
|
|
if($data['user_id'] == "new"){
|
|
$rules = array(
|
|
'name' => 'required',
|
|
'email' => 'required|string|email|max:255|unique:users',
|
|
'email-confirm' => 'required|same:email',
|
|
);
|
|
}else{
|
|
$rules = array(
|
|
'name' => 'required'
|
|
);
|
|
}
|
|
$validator = Validator::make(Input::all(), $rules);
|
|
if ($validator->fails()) {
|
|
return back()->withInput(Input::all())->withErrors($validator);
|
|
}
|
|
|
|
if($data['user_id'] == "new"){
|
|
$user = User::create([
|
|
'name' => $data['name'],
|
|
'email' => $data['email'],
|
|
'password' => env('APP_KEY'),
|
|
]);
|
|
$unique = false;
|
|
do{
|
|
$confirmation_code = str_random(30);
|
|
if( User::where('confirmation_code', '=', $confirmation_code)->count() == 0){
|
|
$unique = true;
|
|
}
|
|
}
|
|
while(!$unique);
|
|
$user->confirmation_code = $confirmation_code;
|
|
$user->save();
|
|
|
|
Mail::to($user->email)->send(new MailVerifyContact($confirmation_code, $user));
|
|
|
|
|
|
}else{
|
|
$user = User::findOrFail($data['user_id']);
|
|
$user->name = $data['name'];
|
|
$user->save();
|
|
}
|
|
|
|
\Session()->flash('alert-save', true);
|
|
return redirect('/admin/users');
|
|
}
|
|
|
|
public function deleteUser($user_id)
|
|
{
|
|
$user = User::findOrFail($user_id);
|
|
$this->userRepo->deleteUser($user);
|
|
|
|
\Session()->flash('alert-success', "Kontakt gelöscht");
|
|
return redirect('/admin/users');
|
|
|
|
}
|
|
|
|
public function loadModal($id){
|
|
|
|
if(Request::ajax()) {
|
|
$user = User::findOrFail($id);
|
|
|
|
|
|
$data = [
|
|
'user' => $user,
|
|
'groups' => config('permissions.groups'),
|
|
'roles' => config('permissions.roles')
|
|
];
|
|
return view("admin.user_modal", $data )->render();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public function updateModal($step = false){
|
|
|
|
if($step == 'user'){
|
|
$data = Input::all();
|
|
$user = User::findOrFail($data['id']);
|
|
|
|
$user->permissions = isset($data['permissions']) ? $data['permissions'] : [];
|
|
$user->admin = $data['admin'];
|
|
$user->confirmed = isset($data['confirmed']) ? true : false;
|
|
$user->active = isset($data['active']) ? true : false;
|
|
$user->save();
|
|
|
|
}
|
|
|
|
\Session()->flash('alert-save', true);
|
|
return redirect('/admin/users');
|
|
}
|
|
|
|
|
|
|
|
//
|
|
public function getUsers()
|
|
{
|
|
//confirmation_code_remider is delete 2
|
|
$query = User::where('deleted_at', '=', null);
|
|
|
|
return \DataTables::eloquent($query)
|
|
->addColumn('action_edit', function (User $user) {
|
|
return '<a href="' . route('admin_user_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="far fa-edit"></span></a>';
|
|
})
|
|
->addColumn('admin', function (User $user) {
|
|
return '<a href="#" data-url="'.route('admin_user_load_modal', $user->id).'" data-data="'.$user->id.'" class="update_modal_data_show">'.HTMLHelper::getRoleLabel($user->admin).'</a>';
|
|
})
|
|
->addColumn('confirmed', function (User $user) {
|
|
return $user->confirmed ? '<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
|
|
})
|
|
->addColumn('active', function (User $user) {
|
|
return $user->active ? ' <span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
|
|
})
|
|
->addColumn('action_delete', function (User $user) {
|
|
return '<a href="' . route('admin_user_delete', [$user->id]) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="far fa-trash"></span></a>';
|
|
})
|
|
->orderColumn('confirmed', 'confirmed $1')
|
|
->orderColumn('active', 'active $1')
|
|
->orderColumn('admin', 'active $1')
|
|
->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete'])
|
|
->make(true);
|
|
}
|
|
|
|
|
|
|
|
|
|
} |