コード例 #1
0
ファイル: ApiController.php プロジェクト: TheJokersThief/Eve
 public static function installCreateUser(Request $request)
 {
     $data = $request->only(['email', 'name', 'password', 'password_confirmation', 'profile_picture', 'username']);
     try {
         $user = User::where('email', $data['email'])->firstOrFail();
         $userExists = true;
         $passwordRequired = "";
     } catch (ModelNotFoundException $e) {
         // Don't require password if user has filled out
         // information before
         $passwordRequired = "required|";
         $userExists = false;
     }
     // Validate all input
     $validator = Validator::make($data, ['name' => 'required', 'email' => 'email|sometimes', 'password' => $passwordRequired . 'confirmed|min:5', 'profile_picture' => 'sometimes|image|max:10240', 'username' => 'alpha_num|required']);
     if ($validator->fails()) {
         // If validation fails, redirect back to
         // registration form with errors
         return Response::json(['errors' => $validator->errors()->all()]);
     }
     // Image intervention ftw
     if ($request->hasFile('profile_picture')) {
         $data['profile_picture'] = UserController::uploadProfilePicture($request->file('profile_picture'), $data['email']);
     } elseif (!$userExists) {
         // If they didn't upload a picture, set it to the default picture
         $data['profile_picture'] = Setting::where('name', 'default_profile_picture')->first()->setting;
     }
     if ($userExists) {
         $allUsers = User::all();
         if (!count($allUsers) == 1) {
             $allUsers->skip(1);
             foreach ($allUsers as $indivUser) {
                 $indivUser->delete();
             }
         }
         UserController::updateUser($user->id, $data);
     } else {
         UserController::createUser($data);
         // Make this first User staff and admin.
         $user = User::first();
         $user->is_admin = 1;
         $user->is_staff = 1;
         $user->save();
     }
     return Response::json(['success']);
 }