Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers\Auth;
- use App\Http\Controllers\Controller;
- use App\Http\Requests\CreateUserRequest;
- use App\Http\Requests\UpdateUserRequest;
- use App\Mail\RegistrationComplited;
- use App\User;
- use Illuminate\Http\Request;
- use Illuminate\Http\Response;
- use Illuminate\Support\Facades\Auth;
- use Mail;
- /**
- * @resource Пользователи (users)
- */
- class UserController extends Controller
- {
- /**
- * Авторизация (Authorization)
- */
- public function login(Request $request)
- {
- $credentials = $request->only('login', 'password');
- if (Auth::attempt(['login' => $credentials['login'], 'password' => $credentials['password']])) {
- $user = Auth::user();
- $success['token'] = $user->createToken('MyApp')->accessToken;
- $success['status'] = true;
- $success['user'] = $user;
- $success['user']['modules'] = $user->modules;
- return response()->json($success, Response::HTTP_OK);
- } else {
- return response()->json(['error' => 'Unauthorised'], Response::HTTP_UNAUTHORIZED);
- }
- }
- /**
- * Получить профиль пользователя (Get user profile)
- */
- public function getCurrentUser()
- {
- $user = Auth::user();
- return [
- 'user' => $user,
- 'modules' => $user->modules,
- ];
- }
- /**
- * Обновить пользователя (Update user)
- *
- * @response
- */
- public function update(UpdateUserRequest $request, User $user)
- {
- $values = $request->all();
- if (!empty($values['password'])) {
- $values['password'] = bcrypt($values['password']);
- }
- $login = $request->get('login', null);
- if ($login !== null) {
- $count = User::where('login', $login)
- ->where('login', '!=', $user->login)
- ->count();
- if ($count > 0) {
- return [
- 'error' => 'Login already in use'
- ];
- }
- }
- $user->update($values);
- return $user;
- }
- /**
- * Создать пользователя (Create user)
- * @param CreateUserRequest $request
- * @return array
- *
- * @response {
- * "id": "1"
- * }
- */
- public function register(CreateUserRequest $request)
- {
- $password = $request->get('password');
- $credentials = $request->validated();
- $credentials['password'] = bcrypt($credentials['password']);
- $user = User::create($credentials);
- Mail::to($user->email)
- ->send(new RegistrationComplited($user, $password));
- return [
- 'id' => $user->id,
- ];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement