public function forgottenPassword()
 {
     $view_data = array();
     $rules = array('email' => 'required|email');
     $validation = Validator::make(Request::all(), $rules);
     if ($_POST && $validation->fails()) {
         FormMessage::set($validation->messages());
     } elseif ($_POST) {
         $email_addr = Request::input('email');
         $user = User::where('email', '=', $email_addr)->first();
         if ($user !== null) {
             if (!Auth::action('account.password', ['user_id' => $user->id])) {
                 FormMessage::add('email', 'You can\'t change the password for this account');
             } else {
                 $code = urlencode(str_random(32) . microtime());
                 $user->tmp_code = $code;
                 $user->tmp_code_created = new Carbon();
                 $user->save();
                 Mail::send('coaster::emails.forgotten_password', array('code' => $code), function ($message) use($email_addr) {
                     $message->from(config('coaster::site.email'));
                     $message->to($email_addr);
                     $message->subject(config('coaster::site.name') . ': Forgotten Password');
                 });
                 $failures = Mail::failures();
                 if (empty($failures)) {
                     $view_data['success'] = 'We have sent an email to you with a link to change your password.';
                 } else {
                     FormMessage::add('email', 'There was an error sending mail, please contact <a href="mailto:support@web-feet.co.uk?Subject=' . config('coaster::site.name') . ': Forgotten Password">support</a>.');
                 }
             }
         } else {
             FormMessage::add('email', 'We couldn\'t find your records.');
         }
     }
     $this->layoutData['title'] = 'Forgotten Password';
     $this->layoutData['content'] = View::make('coaster::pages.forgotten_password', $view_data);
 }
 public function postDelete()
 {
     $v = Validator::make(Request::all(), array('new_role' => 'required|integer'));
     $error = 'Invalid new role ID: ' . Request::input('new_role');
     if ($v->passes()) {
         $error = 'Role does not exist with ID: ' . Request::input('role');
         if ($role = UserRole::find(Request::input('role'))) {
             $error = 'New role ID must be different from the role being deleted';
             if (Request::input('new_role') != $role->id) {
                 User::where('role_id', '=', Request::input('role'))->update(['role_id' => Request::input('new_role')]);
                 return json_encode($role->delete());
             }
         }
     }
     return Response::make($error, 500);
 }