public function action_create() { $user_input = Input::get('user'); $user = new User(); $user->email = $user_input["email"]; $user->how_hear = $user_input["how_hear"]; $officer = new Officer(Input::get('officer')); if (in_array(strtolower($user->email), Officer::$admin_emails)) { $officer->role = Officer::ROLE_SUPER_ADMIN; } if ($user->validator(false, true)->passes() && $officer->validator()->passes()) { $user->save(); $user->officer()->insert($officer); $user->generate_reset_password_token(); Mailer::send("FinishOfficerRegistration", array("user" => $user)); return Redirect::to('/')->with('notice', 'Please check your email for a link to finish signup.'); } else { Session::flash('errors', array_merge($user->validator(false, true)->errors->all(), $officer->validator()->errors->all())); return Redirect::to_route('new_officers')->with_input(); } }
public static function new_officer_from_invite($email, $invited_by, $project) { if (!preg_match('/\\.gov$/', $email)) { return false; } $user = new User(array('email' => $email, 'invited_by' => $invited_by->id)); $officer = new Officer(); $user->generate_reset_password_token(); $user->officer()->insert($officer); Mailer::send("NewOfficerInvited", array('new_user' => $user, 'invited_by' => $invited_by, 'project' => $project)); return $user; }