/** * Store a newly created resource in storage. * * @return Response */ public function store() { $data = Input::all(); $rules = array('Email' => array('required', 'email'), 'Name' => array('required', 'max:15', 'alpha_spaces'), 'Username' => array('required', 'max:10', 'alpha_num', 'unique:users,username'), 'Password' => array('required', 'min:8')); $validator = Validator::make($data, $rules); if ($validator->fails()) { return Redirect::to('signup')->withErrors($validator)->withInput(Input::except('password')); } else { $newEmail = strtolower(trim(Input::get('Email'))); $newName = Input::get('Name'); $newUsername = Input::get('Username'); $newPassword = Input::get('Password'); $avatar = new Avatar(); $avatar->gravatar = 'http://gravatar.com/avatar/' . md5($newEmail); $user = new User(); $user->email = $newEmail; $user->name = $newName; $user->username = $newUsername; $user->password = Hash::make($newPassword); $user->save(); $user->avatars()->save($avatar); if (Auth::attempt(array('username' => $newUsername, 'password' => $newPassword))) { return Redirect::to('forum')->withMessage('Account created successfully'); } return Redirect::to('login')->withMessage('Account created. Please login.'); } }