Exemple #1
0
   Route: Admin Reset Password
   Name: admin.resetPassword
*/
$app->post('/admin/user/resetpassword', $authorizationCheck(['ADMIN']), function () use($app) {
    $request = $app->request;
    $userId = strip_tags(trim($request->post('userId')));
    $password = strip_tags(trim($request->post('password')));
    $passwordConfirm = strip_tags(trim($request->post('password_confirm')));
    if (!isset($userId) || !is_numeric($userId)) {
        $app->flash('global', 'User Id invalid or not provided!');
        $app->redirect($app->urlFor('admin.users'));
    }
    $v = $app->validation;
    $v->validate(['password|Password' => [$password, 'required|min(6)'], 'password_confirm|Password Confirmation' => [$passwordConfirm, 'required|matches(password)']]);
    if ($v->passes()) {
        $user = User::updateOrCreate(['id_user' => $userId, 'password' => $app->hash->password($password)]);
        $app->flash('global', 'User Password Saved');
        return $app->response->redirect($app->urlFor('admin.editUser', array('id' => $userId)));
    } else {
        // Retrieve a collection of users that have the 'ADVISOR'
        // role. This will be passed into the view so users can select
        // a valid advisor when registering.
        $advisors = $app->user->whereHas('roles', function ($q) {
            $q->where('name', '=', 'ADVISOR');
        })->get()->sortBy('last_name');
        // Retrieve a collection of all roles
        $roles = Role::all()->toArray();
        $user = User::where('id_user', $userId)->first()->load('roles', 'advisor');
        $app->render('admin/admin.edituser.html.twig', ['errors' => $v->errors(), 'request' => $request, 'user' => $user, 'roles' => $roles, 'advisors' => $advisors]);
    }
})->name('admin.resetPassword');