HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/Eurotools/euro-tools.nl/app/KommaApp/Users/Kms/UserController.php
<?php
/**
 *
 * @author      Komma <info@komma.pro>
 * @copyright   (c) 2012-2016, Komma
 */

namespace App\KommaApp\Users\Kms;

use App\KommaApp\Kms\Core\SectionController;
use App\KommaApp\Users\Models\Role;
use App\KommaApp\Users\Models\User;
use Carbon\Carbon;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;

class UserController extends SectionController
{
    use SendsPasswordResetEmails;

    protected $slug = "user";
    protected $forModelName = User::class;

    function __construct(UserSection $section)
    {
        parent::__construct($section);
    }

    /**
     * Endpoint for approval via link
     *
     * @param User $user
     * @return View
     */
    function approve(User $user)
    {
        /** @var User $authenticatedUser */
        $authenticatedUser = Auth::user();
        if(!$authenticatedUser->role()->first()->isAtLeast(Role::Admin)) return redirect('/kms')->withErrors([
            'message' => __('kms/users.not_enough_rights_to_approve')
        ]);

        $userRoute = route('users.show', ['user' => $user]);

        /** @var View $showView */
        if($user->approved == 0) {
            $this->sendResetLinkEmail(new Request(['email' => $user->email])); //Also see user's sendPasswordResetNotification method
            $user->save();
            return redirect($userRoute)->with('success', __('kms/users.can_login_enabled'));
        } else {
            return redirect($userRoute)->withErrors(['OnOff-approved' => __('kms/users.already_can_login')]);
        }
    }

    /**
     * For the sendResetLink email call above. We know the email is valid at this point so we always return true
     *
     * @param  \Illuminate\Http\Request $request
     * @return bool
     */
    protected function validateEmail(Request $request)
    {
        return true;
    }
}