Exemple #1
0
         // 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();
         $app->render('admin/admin.edituser.html.twig', ['errors' => $v->errors(), 'request' => $request, 'user' => $user, 'roles' => $roles, 'advisors' => $advisors]);
     }
 } else {
     // No user id provided, so this is a new user
     // Validate everything and create user
     $v->validate(['email|Email' => [$email, 'required|email|max(30)|uniqueEmail'], 'firstname|First Name' => [$firstname, 'required|max(30)'], 'lastname|Last Name' => [$lastname, 'required|max(30)'], 'major|Major' => [$major, 'required|max(100)'], 'advisor|Advisor' => [$advisor, 'required'], 'password|Password' => [$password, 'required|min(6)'], 'password_confirm|Password Confirmation' => [$passwordConfirm, 'required|matches(password)']]);
     if ($v->passes()) {
         $user = User::create(['email' => $email, 'first_name' => $firstname, 'last_name' => $lastname, 'major' => $major, 'id_advisor' => $advisor, 'password' => $app->hash->password($password)]);
         // Remove any existing roles
         $user->roles()->detach();
         // Add user roles if provided
         if (isset($roles) && count($roles)) {
             // Convert the array of strings from the roles post variable to an array of ints
             $rolesArray = [];
             for ($i = 0; $i < count($roles); $i++) {
                 $rolesArray[$i] = intval($roles[$i]);
             }
             // Add the new roles
             $user->roles()->attach($rolesArray);
         }
         $app->flash('global', 'User Info Saved');
         return $app->response->redirect($app->urlFor('admin.editUser', array('id' => $user->id_user)));
     } else {