public function post_signup()
 {
     $input = Input::get();
     //VALIDATION CHECK
     $rules = array('signup_name' => 'required', 'signup_surname' => 'required', 'signup_address' => 'required', 'signup_number' => 'required', 'signup_city' => 'required', 'signup_zip' => 'required', 'signup_state' => 'required', 'signup_country' => 'required', 'signup_cel' => 'required', 'signup_email' => 'required|email|unique:users,email', 'password' => 'required|confirmed|min:6');
     $messages = array('required' => LL('cms::validation.required', CMSLANG)->get(), 'email' => LL('cms::validation.required', CMSLANG)->get(), 'unique' => LL('cms::validation.unique_account', CMSLANG)->get(), 'confirmed' => LL('cms::validation.confirmed', CMSLANG)->get());
     $validation = Validator::make($input, $rules, $messages);
     if ($validation->fails()) {
         return Redirect::to_action('site@signup')->with_input()->with('signup_name_error', $validation->errors->first('signup_name'))->with('signup_surname_error', $validation->errors->first('signup_surname'))->with('signup_address_error', $validation->errors->first('signup_address'))->with('signup_number_error', $validation->errors->first('signup_number'))->with('signup_city_error', $validation->errors->first('signup_city'))->with('signup_state_error', $validation->errors->first('signup_state'))->with('signup_zip_error', $validation->errors->first('signup_zip'))->with('signup_country_error', $validation->errors->first('signup_country'))->with('signup_cel_error', $validation->errors->first('signup_cel'))->with('signup_email_error', $validation->errors->first('signup_email'))->with('signup_password_error', $validation->errors->first('password'));
     }
     // OK, CREATE ACCOUNT
     $role_id = 4;
     // AS cms::settings.roles.user indexof
     $user = new CmsUser();
     $user->role_id = $role_id;
     $user->username = $input['signup_email'];
     $user->email = $input['signup_email'];
     $user->password = Hash::make($input['password']);
     $user->role_level = Config::get('cms::settings.roles.user');
     $user->lang = LANG;
     $user->is_valid = 1;
     $user->save();
     $uid = $user->id;
     // SAVE DETAILS
     $details = new CmsUserDetail();
     $details->user_id = $uid;
     $details->name = $input['signup_name'];
     $details->surname = $input['signup_surname'];
     $details->address = $input['signup_address'];
     $details->info = '';
     $details->number = $input['signup_number'];
     $details->city = $input['signup_city'];
     $details->zip = $input['signup_zip'];
     $details->state = $input['signup_state'];
     $details->country = $input['signup_country'];
     $details->tel = $input['signup_tel'];
     $details->cel = $input['signup_cel'];
     $details->save();
     // SEND MAIL
     // LOAD MAIL VIEW - NEED SWIFTMAILER BUNDLE for Laravel
     $mail_view = View::make('cms::theme.' . THEME . '.partials.mail_signup');
     $mail_view['name'] = $input['signup_name'];
     $mail_view['username'] = $input['signup_email'];
     $mail_view['password'] = $input['password'];
     // GET MAIL TEMPLATE
     $html = View::make('cms::theme.' . THEME . '.templates.mail')->with('content', $mail_view);
     // OK, SEND A MAIL
     $mailer = IoC::resolve('mailer');
     // Construct the message
     $message = Mail::prepare($html, Config::get('cms::theme.email_data.signup_subject'), $to = array($input['signup_email']), $bcc = Config::get('cms::theme.email'));
     // Send the email
     $mailer->send($message);
     Session::flash('account_created', true);
     return Redirect::to_action('site@login')->with_input('only', array('signup_email'));
 }
 public function post_save_details()
 {
     $auth = Auth::check();
     if ($auth and is_numeric(AUTHORID)) {
         $input = Input::get();
         //GRAB DATA
         if (!empty($input['user_id'])) {
             $detail = new CmsUserDetail();
             if (!empty($input['detail_id'])) {
                 $detail = CmsUserDetail::find($input['detail_id']);
             }
             $detail->user_id = $input['user_id'];
             $detail->name = $input['user_name'];
             $detail->surname = $input['user_surname'];
             $detail->address = $input['user_address'];
             $detail->info = $input['user_info'];
             $detail->number = $input['user_number'];
             $detail->city = $input['user_city'];
             $detail->zip = $input['user_zip'];
             $detail->state = $input['user_state'];
             $detail->country = $input['user_country'];
             $detail->tel = $input['user_tel'];
             $detail->cel = $input['user_cel'];
             $detail->save();
             $did = $detail->id;
             $response = 'success';
             $msg = LL('cms::ajax_resp.user_details_success', CMSLANG)->get();
             $backurl = $input['back_url'];
         } else {
             $did = null;
             $response = 'error';
             $msg = LL('cms::ajax_resp.user_nouser_error', CMSLANG)->get();
             $backurl = '#';
         }
     } else {
         $uid = null;
         $response = 'error';
         $msg = LL('cms::ajax_resp.user_details_error', CMSLANG)->get();
         $backurl = '#';
     }
     $data = array('auth' => $auth, 'cls' => 'detail_id', 'id' => $did, 'response' => $response, 'message' => $msg, 'backurl' => $backurl);
     return json_encode($data);
 }