Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.81 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers\Auth;
  4.  
  5. use App\Http\Controllers\Controller;
  6. use App\Http\Requests\CreateUserRequest;
  7. use App\Http\Requests\UpdateUserRequest;
  8. use App\Mail\RegistrationComplited;
  9. use App\User;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Http\Response;
  12. use Illuminate\Support\Facades\Auth;
  13. use Mail;
  14.  
  15. /**
  16.  * @resource Пользователи (users)
  17.  */
  18. class UserController extends Controller
  19. {
  20.     /**
  21.      * Авторизация (Authorization)
  22.      */
  23.     public function login(Request $request)
  24.     {
  25.         $credentials = $request->only('login', 'password');
  26.         if (Auth::attempt(['login' => $credentials['login'], 'password' => $credentials['password']])) {
  27.             $user = Auth::user();
  28.             $success['token'] = $user->createToken('MyApp')->accessToken;
  29.             $success['status'] = true;
  30.             $success['user'] = $user;
  31.             $success['user']['modules'] = $user->modules;
  32.  
  33.             return response()->json($success, Response::HTTP_OK);
  34.         } else {
  35.             return response()->json(['error' => 'Unauthorised'], Response::HTTP_UNAUTHORIZED);
  36.         }
  37.     }
  38.  
  39.     /**
  40.      * Получить профиль пользователя (Get user profile)
  41.      */
  42.     public function getCurrentUser()
  43.     {
  44.         $user = Auth::user();
  45.  
  46.         return [
  47.             'user' => $user,
  48.             'modules' => $user->modules,
  49.         ];
  50.     }
  51.  
  52.     /**
  53.      * Обновить пользователя (Update user)
  54.      *
  55.      * @response
  56.      */
  57.     public function update(UpdateUserRequest $request, User $user)
  58.     {
  59.         $values = $request->all();
  60.         if (!empty($values['password'])) {
  61.             $values['password'] = bcrypt($values['password']);
  62.         }
  63.         $login = $request->get('login', null);
  64.         if ($login !== null) {
  65.             $count = User::where('login', $login)
  66.                 ->where('login', '!=', $user->login)
  67.                 ->count();
  68.             if ($count > 0) {
  69.                 return [
  70.                     'error' => 'Login already in use'
  71.                 ];
  72.             }
  73.         }
  74.         $user->update($values);
  75.         return $user;
  76.     }
  77.  
  78.     /**
  79.      * Создать пользователя (Create user)
  80.      * @param CreateUserRequest $request
  81.      * @return array
  82.      *
  83.      * @response {
  84.      *  "id": "1"
  85.      * }
  86.      */
  87.     public function register(CreateUserRequest $request)
  88.     {
  89.         $password = $request->get('password');
  90.  
  91.         $credentials = $request->validated();
  92.         $credentials['password'] = bcrypt($credentials['password']);
  93.         $user = User::create($credentials);
  94.         Mail::to($user->email)
  95.             ->send(new RegistrationComplited($user, $password));
  96.         return [
  97.             'id' => $user->id,
  98.         ];
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement