middleware(['superadmin', '2fa']); $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(), ]; $user = User::findOrFail(8); /* $MyGoogle2FA = new MyGoogle2FA(); $valid = $MyGoogle2FA->init($user)->check2Fa('676493'); dd($valid); */ 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 = Request::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(Request::all(), $rules); if ($validator->fails()) { return back()->withRequest(Request::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()) { $data = Request::all(); $user = User::findOrFail($id); if (isset($data['action'])) { if ($data['action'] === 'show-user-roles') { $fill = [ 'user' => $user, 'action' => $data['action'], 'groups' => config('permissions.groups'), 'roles' => config('permissions.roles') ]; return view("admin.user_modal", $fill)->render(); } if ($data['action'] === 'show-user-active') { $fill = [ 'user' => $user, 'action' => $data['action'], ]; return view("admin.active_modal", $fill)->render(); } if ($data['action'] === 'show-user-google2fa') { if ($user->isGoogle2Fa()) { $MyGoogle2FA = new MyGoogle2FA(); $MyGoogle2FA->init($user); $fill = [ 'user' => $user, 'action' => 'delete-user-google2fa', 'MyGoogle2FA' => $MyGoogle2FA, ]; return view("admin.google2fa_delete_modal", $fill)->render(); } else { $MyGoogle2FA = new MyGoogle2FA(); $MyGoogle2FA->init($user)->generate(); $fill = [ 'user' => $user, 'action' => 'activate-user-google2fa', 'MyGoogle2FA' => $MyGoogle2FA, ]; return view("admin.google2fa_modal", $fill)->render(); } } } } return false; } public function updateModal($action = false) { if ($action === 'show-user-roles') { $data = Request::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); } if ($action === 'show-user-active') { $data = Request::all(); $user = User::findOrFail($data['id']); $user->active = isset($data['active']) ? true : false; $user->save(); \Session()->flash('alert-save', true); } if ($action === 'activate-user-google2fa') { $data = Request::all(); $user = User::findOrFail($data['id']); $user->google2fa = true; $user->save(); \Session()->flash('alert-save', true); } if ($action === 'delete-user-google2fa') { $data = Request::all(); $user = User::findOrFail($data['id']); $user->google2fa = false; $user->secret_key = null; $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 ''; }) ->addColumn('admin', function (User $user) { return '' . HTMLHelper::getRoleLabel($user->admin, ' Rechte + ', '') . ''; }) ->addColumn('google2fa', function (User $user) { $icon = $user->google2fa ? '' : ''; $color = $user->google2fa ? 'primary' : 'danger'; return ' ' . $icon . ' google2fa'; }) ->addColumn('confirmed', function (User $user) { return $user->confirmed ? '' : ''; }) ->addColumn('active', function (User $user) { $active = $user->active ? '' : ''; return ' ' . $active . ''; }) ->addColumn('action_delete', function (User $user) { return ''; }) ->orderColumn('confirmed', 'confirmed $1') ->orderColumn('active', 'active $1') ->orderColumn('admin', 'active $1') ->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete', 'google2fa']) ->make(true); } }